[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