[MD-sorular] Yan: YNT: nxn kare simülasyon
ozcan kasal
ozcankasal at yahoo.com
12 Tem 2009 Paz 16:48:32 EEST
> Daha büyük boyutları da yapabilirsiniz
> bir satır çarpımının çift olduğunu bulmak için
> çarpma yapmaya gerek yok
> satır veya sütun içinde en az bir çift sayının
> geçmesi yeterli
> yani çarpım önemli değil
> önemli olan çarpıma giren tek tek elemanlar
> benim şu ara keyfim yok
> bir de sizin hazır algoritmanız var
> küçük bir iki değişiklikle
> daha büyük boyutlar için çalışır hale getirirsiniz
> kolay gelsin
>
> Kadir Güleç
Haklısınız, kodu girerken beynim sulanmış. 15'e kadar test ettim. sonuçlar şöyle,
3 x 3 : 0.359664033597
4 x 4 : 0.703529647035
5 x 5 : 0.774822517748
6 x 6 : 0.89101089891
7 x 7 : 0.926807319268
8 x 8 : 0.962703729627
9 x 9 : 0.977102289771
10 x 10 : 0.987901209879
11 x 11 : 0.992300769923
12 x 12 : 0.997500249975
13 x 13 : 0.998700129987
14 x 14 : 0.999200079992
15 x 15 : 0.999400059994
kod şöyle
%%%%%%%%%%%%%%%%%%%%%%%%%%-Pyhton 2.6.1-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
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:
if m[j]%2==0:
r[l]=0
j=j+1
l=l+1
while p<=n-1:
j=p
while j<=p+(n-1)*n:
if m[j]%2==0:
c[p]=0
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=15
number=10000
while dim<=15:
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 mesaj listesiyle ilgili
daha fazla bilgi