[MD-sorular] nxn kare simülasyon
ozcan kasal
ozcankasal at yahoo.com
12 Tem 2009 Paz 12:53:29 EEST
> Cok guzel.
> Simdi limitin 1'e gittigini kanitlayabiliriz...
> 6 x 6 ile 7 x 7 yanitlarindan birinde hata var mi?
> A.
Hata olduğunu zannetmiyorum, tek boyuttan çift boyuta geçişte olasılığın zıplaması normal, çünkü sayılar içindeki çiftlerin teklere oranı birden artıyor. Çiftten teke geçişte ise azalıyor.
Özcan
--- 12/07/09 Pzr tarihinde Ali Nesin <nesin at bilgi.edu.tr> şöyle yazıyor:
>
> -----Original Message-----
> From: md-sorular-bounces at matematikdunyasi.org
> [mailto:md-sorular-bounces at matematikdunyasi.org]
> On Behalf Of
> ozcankasal at yahoo.com
> Sent: Sunday, July 12, 2009 12:03 PM
> To: md-sorular at matematikdunyasi.org
> Subject: [MD-sorular] nxn kare simülasyon
>
>
> Aşağıdaki sonuçları her durum için 1000 kere rastgele
> seçim ile elde ettim.
>
> 3x3: 0,353646353646
> 4x4: 0,722277722278
> 5x5: 0,754245754246
> 6x6: 0,905094905095
> 7x7: 0,905094905095
> 8x8: 0,968031968032
>
> daha büyük boyutlarda ise satır ve sütun çarpımları
> 32bit uzunluğunu
> geçtiğinden işlem yapamadım.
>
> Algoritma şöyle:
>
> %%%%%%%%%%%%%%%%%%%%%%%-Python-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
>
> from __future__ import division
>
> import random
>
> def secim(n):
> s=[random.randint(1,n*n)]
> i=1
> while i<=n*n-1:
> s.append(0)
> i=i+1
>
> j=1
> while j<=n*n-1:
> k=0
> while k==0:
> r=random.randint(1,n*n)
> k=1
> for i in range(0,j):
> if r==s[i]:
> k=0
> if k==1:
> s[j]=r
> j=j+1
>
>
> return s
>
>
> def cift(n):
> result=1
> m=secim(n)
>
> r=[1]
> c=[1]
> i=1
> j=1
> while i<=n-1:
> r.append(1)
> i=i+1
> while j<=n-1:
> c.append(1)
> j=j+1
> l=0
> p=0
> while l<=n-1:
> j=l*n
> while j<=(l+1)*n-1:
> r[l]=r[l]*m[j]
> j=j+1
> l=l+1
>
> while p<=n-1:
> j=p
> while j<=p+(n-1)*n:
> c[p]=c[p]*m[j]
> j=j+n
> p=p+1
>
> result=0
> i=0
> j=0
> while i<=n-1:
> if r[i]%2==1:
> result=1
> i=i+1
> while j<=n-1:
> if c[j]%2==1:
> result=1
> j=j+1
> return result
>
>
>
> dim=3
> number=1000
>
>
>
> while dim<=20:
> deneme=0
> dogru=0
> while deneme <=number:
> k=cift(dim)
> if k==0:
> dogru=dogru+1
> deneme=deneme+1
> print dim,"x",dim,":", dogru/deneme
> dim=dim+1
>
> %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
>
>
>
>
> ___________________________________________________________________
> Yahoo! Türkiye açıldı! http://yahoo.com.tr
> İnternet üzerindeki en iyi içeriği Yahoo! Türkiye
> sizlere sunuyor!
> _______________________________________________
> MD-sorular e-posta listesi
> sorular at matematikdunyasi.org
> http://lists.math.bilgi.edu.tr/cgi-bin/mailman/listinfo/md-sorular
>
>
___________________________________________________________________
Yahoo! Türkiye açıldı! http://yahoo.com.tr
İnternet üzerindeki en iyi içeriği Yahoo! Türkiye sizlere sunuyor!
MD-sorular mesaj listesiyle ilgili
daha fazla bilgi