[MD-sorular] Yan: 3x3 python çıktısı da benden :)

ozcan kasal ozcankasal at yahoo.com
11 Tem 2009 Cmt 21:57:35 EEST


100.000 denemede 0.3576 gibi bir sayıya ulaştı. Deneme süresince de 0.357 civarında dolaştı. 5/14 sonucu ile uyumlu.

kodu da aşağıda.

Özcan



%%%%%%%%%%%%%%%%%%%%%%%%-Python Kodu-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

from __future__ import division

import random

def secim():
    
    s=[random.randint(1,9),0,0,0,0,0,0,0,0]
    
    j=1
    while j<=8:
        k=0
        while k==0:
            r=random.randint(1,9)
            k=1
            for i in range(0,j):
                if r==s[i]:
                    k=0
            if k==1:
                s[j]=r        
        j=j+1

    m=[[s[0],s[1],s[2]],[s[3],s[4],s[5]],[s[6],s[7],s[8]]]
    return m


def cift():
    result=1
    n=secim()
    r0=n[0][0]*n[0][1]*n[0][2]
    r1=n[1][0]*n[1][1]*n[1][2]
    r2=n[2][0]*n[2][1]*n[2][2]
    c0=n[0][0]*n[1][0]*n[2][0]
    c1=n[0][1]*n[1][1]*n[2][1]
    c2=n[0][2]*n[1][2]*n[2][2]

    if r0%2==0 and r1%2==0 and r2%2==0 and c0%2==0 and c1%2==0 and c2%2==0:
        result =0
    return result

deneme=0
dogru=0

while deneme <=100000:
    n=cift()
    if n==0:
        dogru=dogru+1
    deneme=deneme+1
    print dogru/deneme

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%


--- 11/07/09 Cts tarihinde Kadir GÜLEÇ <kadir.gulec at spk.gov.tr> şöyle yazıyor:

> Kimden: Kadir GÜLEÇ <kadir.gulec at spk.gov.tr>
> Konu: [MD-sorular] 3x3 bilgisayar programı ve çözüm
> Kime: md-sorular at matematikdunyasi.org
> Tarihi: 11 Temmuz 2009 Cumartesi, 21:06
> 
>  
>  
>  
> 
> Excel’de son derece
> basit çözüm aşağıda
> Hatalara açığım
> ama
> Sonuç 45*5!*4! İle
> uyumlu
> 
> 
> 
> 
> 129600 
> 
> 362880 
> 
> 0,357143 
>   
> benim mainada 7-8 dakika
> sürdü 
>   
> Sub
> hazırla() 
>   
>    Dim i1 As
> Integer 
>    Dim i2 As
> Integer 
>    Dim i3 As
> Integer 
>    Dim i4 As
> Integer 
>    Dim i5 As
> Integer 
>    Dim i6 As
> Integer 
>    Dim i7 As
> Integer 
>    Dim i8 As
> Integer 
>    Dim i9 As
> Integer 
>    Dim cift As
> Integer 
>    Dim ciftsay As
> Double 
>    Dim toplam As
> Double 
>    Dim p As
> Double 
>     
>    toplam = 1 
>    For i1 = 1 To
> 9 
>      toplam = toplam *
> i1 
>    Next i1 
>    ciftsay = 0 
>    For i1 = 1 To
> 9 
>      For i2 = 1 To
> 9 
>        For i3
> = 1 To 9 
>         
> For i4 = 1 To 9 
>           
> For i5 = 1 To 9 
>         
>    For i6 = 1 To
> 9 
>              
> For i7 = 1 To 9 
>                
> For i8 = 1 To 9 
>                  
> For i9 = 1 To 9 
>                    
> If Not ( _ 
>                      
> i1 = i2 Or i1 = i3 Or i1 = i4 Or i1 = i5 Or i1 = i6
> Or i1 = i7 Or i1 = i8 Or i1 = i9 Or _ 
>                      
> i2 = i1 Or i2 = i3 Or i2 = i4 Or i2 = i5 Or i2 = i6
> Or i2 = i7 Or i2 = i8 Or i2 = i9 Or _ 
>                      
> i3 = i1 Or i3 = i2 Or i3 = i4 Or i3 = i5 Or i3 = i6
> Or i3 = i7 Or i3 = i8 Or i3 = i9 Or _ 
>                      
> i4 = i1 Or i4 = i2 Or i4 = i3 Or i4 = i5 Or i4 = i6
> Or i4 = i7 Or i4 = i8 Or i4 = i9 Or _ 
>                      
> i5 = i1 Or i5 = i2 Or i5 = i3 Or i5 = i4 Or i5 = i6
> Or i5 = i7 Or i5 = i8 Or i5 = i9 Or _ 
>                      
> i6 = i1 Or i6 = i2 Or i6 = i3 Or i6 = i4 Or i6 = i5
> Or i6 = i7 Or i6 = i8 Or i6 = i9 Or _ 
>                      
> i7 = i1 Or i7 = i2 Or i7 = i3 Or i7 = i4 Or i7 = i5
> Or i7 = i6 Or i7 = i8 Or i7 = i9 Or _ 
>                      
> i8 = i1 Or i8 = i2 Or i8 = i3 Or i8 = i4 Or i8 = i5
> Or i8 = i6 Or i8 = i7 Or i8 = i9 Or _ 
>                      
> i9 = i1 Or i9 = i2 Or i9 = i3 Or i9 = i4 Or i9 = i5
> Or i9 = i6 Or i9 = i7 Or i9 = i8) Then 
>               
>          r1
> = i1 * i2 * i3 Mod 2 
>                        
> r2 = i4 * i5 * i6 Mod 2 
>                        
> r3 = i7 * i8 * i9 Mod 2 
>                        
> c1 = i1 * i4 * i7 Mod 2 
>                        
> c2 = i2 * i5 * i8 Mod 2 
>                        
> c3 = i3 * i6 * i9 Mod 2 
>                        
> cift = r1 + r2 + r3 + c1 + c2 + c3 
>                        
> If cift = 0 Then ciftsay = ciftsay +
> 1 
>                      
> End If 
>                  
> Next i9 
>                
> Next i8 
>              
> Next i7 
>            
> Next i6 
>           
> Next i5 
>         
> Next i4 
>        Next
> i3 
>      Next
> i2 
>    Next i1 
>     
>    Cells(1, 1) =
> ciftsay 
>    Cells(1, 2) =
> toplam 
>    Cells(1, 3) = ciftsay /
> toplam 
>    MsgBox
> ("Bitti") 
>     
> End Sub
>  
> -----Satır İçi Eki Var-----
> 
> _______________________________________________
> 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