Bizim ilk temel matematik odevlerinden biri,
lisanstayken, dogal sayilarin tum altkumelerinin
kumesinin reel sayilar kumesine (kardinalite
bakimindan) denk oldugunu gostermekti. Boyle 0-1'ler
ile yapiliyor o da. Ama kucuk bir fark var: orada
.01111111111111... ile 0.1000... ayni sayiyi
gosteriyor. Ama sorun degil. Dun gibi hatirliyorum
simdi :)
--- [EMAIL PROTECTED] wrote:
> ---- Bulent Murtezaoglu <[EMAIL PROTECTED]> demiÅ ki:
> > (defun make-set-converter (set)
> > (let* ((set-size (length set))
> > (set-array (make-array set-size
> :initial-contents set)))
> > (compile nil
> > `(lambda (num)
> > (declare
> > (optimize (speed 3) (debug 0) (safety 0)))
> > (loop for i fixnum from 0 below ,set-size
> > for bits of-type (unsigned-byte ,set-size)
> = num then (ash bits -1)
> > when (oddp bits) collect (svref ,set-array
> i))))))
> >
> >
> > CL-USER> (defvar set100 (loop for i from 1 to 100
> collect i))
> > SET100
> > CL-USER> set100
> > (1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
> 20 21 22 23 24 25 26 27 28 29
> > 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
> 46 47 48 49 50 51 52 53 54 55
> > 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71
> 72 73 74 75 76 77 78 79 80 81
> > 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97
> 98 99 100)
> > CL-USER> (defvar hizli-conv)
> > HIZLI-CONV
> > CL-USER> (setf hizli-conv (make-set-converter
> set100))
> > ;;temizlik
> > #<FUNCTION {B256BCD}>
> > CL-USER> (format t "~b~%" 31337357)
> > 1110111100010101110001110
> > CL-USER> (set-converter 31337357 set100)
> > (1 3 4 8 9 10 12 14 18 19 20 21 23 24 25)
> > CL-USER> (funcall hizli-conv 31337357)
> > (1 3 4 8 9 10 12 14 18 19 20 21 23 24 25)
> > CL-USER> (time (dotimes (i 10000) (set-converter
> 31337357 set100)))
>
> Bitleri sayı kümesi ile eÅleÅtirmek gerçekten
> süper bir fikir! Böylece, biraz çaba ile,
> iÅlemcinin bitwise operatörlerdeki yeteneÄinden
> de yararlanabiliriz. Ãok teÅekkürler hocam. Ben
> bunu biraz daha kurcalayım.
>
> Bu arada bu yöntemin genel bir adı var mı? Hani
> wikipedia'da daha ayrıntılı bir Åeyler
> bulabileceÄimiz Åekilde...
>
>
> İyi çalıÅmalar.
>
> _______________________________________________
> cs-lisp mailing list
> [email protected]
> http://church.cs.bilgi.edu.tr/lcg
> http://cs.bilgi.edu.tr/mailman/listinfo/cs-lisp
>
__________________________________________________
Do You Yahoo!?
Tired of spam? Yahoo! Mail has the best spam protection around
http://mail.yahoo.com
_______________________________________________
cs-lisp mailing list
[email protected]
http://church.cs.bilgi.edu.tr/lcg
http://cs.bilgi.edu.tr/mailman/listinfo/cs-lisp