kombinasyon çözümü için !lütfen yardım

Katılım
1 Şubat 2007
Mesajlar
22
Excel Vers. ve Dili
Excel 2003 Türkçe
Selamlar herkese,
Uzun bir süredir çözmeye çalıştığım fakat yapamadığım kombinasyon problrminde yardımcı olmanızı çok ama çok rica ediyorum.
Bir torbada 30 tane (1 den 30 a kadar) sayı var.Rasgele ve sırayla 14 tane sayı çekiyorum.öyle ki,Yapacağım 7 li kombinasyonda enaz bir kombinasyonunda 7 sininde doğru olduğu tüm kombinasyon listesini nasıl elde edebilirim.
kombinasyon örneği:
1 3 8 15 22 29 30
2 6 8 12 14 17 18
3 5 9 25 26 28 29
....
......
......
......
gibi giden liste.bu 7 li kombinasyonun enaz biri çekilen 14 topun içinde olmalı.İşte böyle bir soru.
Şimdiden ilginize ve yardımlarınıza teşekkür ediyorum.
 

xternet

Altın Üye
Katılım
12 Kasım 2004
Mesajlar
455
Excel Vers. ve Dili
2010 Tr
Altın Üyelik Bitiş Tarihi
12-10-2028
Sanırım sorunuz tam anlaşılamadığı için yorum yapılmamış. Biraz daha açarsanız belki yardımcı olabilirim.
 
Katılım
23 Ekim 2007
Mesajlar
1,135
Excel Vers. ve Dili
Excel 2003 TR
Bu eğer tombolaya benziyorsa forumda hazır dosya var,araştır.
 
Katılım
16 Kasım 2007
Mesajlar
700
Excel Vers. ve Dili
Office 2003 - Tr
Aynı konuda benim soruma da yanıt alamadım.
 

Zeki Gürsoy

Uzman
Uzman
Katılım
31 Aralık 2005
Mesajlar
4,354
Excel Vers. ve Dili
Office 365 (64 bit) - Türkçe
Sonuçları inceleyin.

Kod:
Sub Rastgele()
Dim i As Byte, j As Byte, k As Byte, m As Byte, R As Byte
Dim AkSh As String, Sh As Worksheet
 
Randomize
 
AkSh = Sheets(1).Name
 
For i = 1 To 14
 
    Do Until j = 7
 
        R = Int((Rnd() * (30 - 1)) + 1)
        If WorksheetFunction.CountIf(Sheets(AkSh).Columns(i), R) = 0 Then
            j = j + 1
            Sheets(AkSh).Cells(j, i) = R
        End If
 
    Loop
 
    j = 0
Next i
 
For k = 1 To 14
    Sheets(AkSh).Columns(k).Sort Key1:=Sheets(AkSh).Cells(1, k)
Next k
 
On Error Resume Next
 
Do
    Err.Clear
    m = m + 1
    Set Sh = Worksheets.Add(After:=Sheets(Sheets.Count))
    Sh.Name = "Sonuc " & m
    If Err = 0 Then Exit Do
Loop
 
Sheets(Sh.Name).Range("a1:g14") = _
Application.Transpose(Sheets(AkSh).Range("a1:n7"))
 
Sheets(Sh.Name).Columns("a:g").AutoFit
 
End Sub
 
Son düzenleme:
Katılım
1 Şubat 2007
Mesajlar
22
Excel Vers. ve Dili
Excel 2003 Türkçe
Teşekkür ediyorum sayın anemos.Eklediğim dosyada biraz daha açıklama yaptım.Rica etsem bir gözatabilirmisiniz?
Hoşçakalın.
 
Katılım
1 Şubat 2007
Mesajlar
22
Excel Vers. ve Dili
Excel 2003 Türkçe
Sayın anemos ilgili soru için yaptığınız kodları kullandım.Yeni bir dosya ekleyerek durumu izah etmeye çalıştım.Şöyleki kombinasyon (30,7) listesi içinden çekilen 14 sayı için kombinasyon (14,7) listesini nasıl bulmak?Asıl soru bu.Rasgele kombinasyon yapmak değil yani.Her yeni çekilişte 30 sayının 7 li kombinasyonu değişmiyeceğinden her çekilişte değişen 14 sayının 7 li kombinasyonunun en az ve doğru olan 1 kombinasyonu bulabilmeliyim. MinİMUM Toplam kombinasyon sayısı 594 kadar benim hesabıma göre.
C(30,7)=30!/(7!(30-7)!)=2035800
C(14,7)=14!/(7!(14-7)!)=3432

C(30,7)/C(16,7)=593
Bu 593 kombinasyonları hangileridir,Çekilişler ne olursa olsun 14 sayı için öyle bir kombinasyon listesi yapılmalıki EN AZ biri 30 un 7 li kombinasyonu içinde olabilsin.
Hoşçakalın.
 

Zeki Gürsoy

Uzman
Uzman
Katılım
31 Aralık 2005
Mesajlar
4,354
Excel Vers. ve Dili
Office 365 (64 bit) - Türkçe
=KOMBİNASYON(14;7) = 3.432 dizi. Aşağıdaki prosedur, bu listeyi verecektir.

Kod:
Sub Komb()
Dim X As Byte, z As Integer
Dim a As Byte, b As Byte, c As Byte, d As Byte, e As Byte, f As Byte, g As Byte
 
DoEvents
X = 14
For a = 1 To X
    For b = 1 To X
        For c = 1 To X
            For d = 1 To X
                For e = 1 To X
                    For f = 1 To X
                        For g = 1 To X
                                If a <> b And a <> c And a <> d And a <> e And _
                                        a <> f And a <> g And _
                                    b <> c And b <> d And b <> e And b <> e And _
                                        b <> f And b <> g And _
                                    c <> d And c <> e And c <> f And c <> g And _
                                    d <> e And d <> f And d <> g And _
                                    e <> f And e <> g And _
                                    f <> g Then
 
                                    z = z + 1
                                    Cells(z, 1) = a
                                    Cells(z, 2) = b
                                    Cells(z, 3) = c
                                    Cells(z, 4) = d
                                    Cells(z, 5) = e
                                    Cells(z, 6) = f
                                    Cells(z, 7) = g
                                    Application.StatusBar = "Toplam : " & z
                                    If z = Application.Combin(X, 7) Then _
                                        Exit Sub
                            End If
                        Next g
                    Next f
                Next e
            Next d
        Next c
    Next b
Next a
End Sub
 
Son düzenleme:
Katılım
1 Şubat 2007
Mesajlar
22
Excel Vers. ve Dili
Excel 2003 Türkçe
&#304;yi ak&#351;amlar say&#305;n anemos,
Bu (14,7)=3432 kombi. listesinden 593 l&#252;k kombi listesini nas&#305;l bulucam.Bu hala me&#231;hul.Kombi. 30,7 listesi ile kar&#351;&#305;la&#351;t&#305;r&#305;l&#305;p kesi&#351;en bu 593 diziyi nas&#305;l bulaca&#287;&#305;m.
 
Katılım
1 Şubat 2007
Mesajlar
22
Excel Vers. ve Dili
Excel 2003 Türkçe
Sayın anemos
sizden önemle rica ederek bir sorumu eklemek istiyorum.En son yaptığınız 14,7 lik kombinasyon dizisinde ,14,8 veya 15,5 gibi kombinasyonları denemek istedim fakat olmadı.vba kodları kırmızıya döndü.Acaba bunu nasıl düzenlemek için ne yapabilirsiniz,kodlarda nasıl bir değişiklik önerirsiniz.
Hoşçakalın.
 
Katılım
1 Şubat 2007
Mesajlar
22
Excel Vers. ve Dili
Excel 2003 Türkçe
Yeni farkettim sayın Anemos,
14,7 kombi. dizi sayısı doğru fakat sıralama problemi var.Bütün dizilerde 1 sayısı var.Oysa kombinasyon için 1 sayısının olmadığı dizilerde olması gerekir.Ekli dosyanın sayfa 2 sinde ve ayrıca benim düzenlediğim kodlardada var.Dosya eklemede sorun çıktı.Fakat sanırım anladınız.
Hoşçakalın.
 

Zeki Gürsoy

Uzman
Uzman
Katılım
31 Aralık 2005
Mesajlar
4,354
Excel Vers. ve Dili
Office 365 (64 bit) - Türkçe
Yukarıdaki döngüler hatalıymış. Onları unutun gitsin.
Kod:
Sub Komb_Son()
Dim X As Byte, z As Long
Dim a As Byte, b As Byte, c As Byte, d As Byte, e As Byte, f As Byte, g As Byte
 
X = 14
 
For a = 1 To X
    For b = a + 1 To X
        For c = b + 1 To X
            For d = c + 1 To X
                For e = d + 1 To X
                    For f = e + 1 To X
                        For g = f + 1 To X
                            z = z + 1
                            Cells(z, 1) = a
                            Cells(z, 2) = b
                            Cells(z, 3) = c
                            Cells(z, 4) = d
                            Cells(z, 5) = e
                            Cells(z, 6) = f
                            Cells(z, 7) = g
                        Next g
                    Next f
                Next e
            Next d
        Next c
    Next b
Next a
 
End Sub
 
Katılım
27 Ocak 2008
Mesajlar
3
Excel Vers. ve Dili
office2003
arkada&#351;lar ben yeni &#252;yeyim ve bu konuda yeniyim.
bu kodlar&#305; otomatik &#231;al&#305;&#351;t&#305;racak bir program laz&#305;m san&#305;r&#305;m bana &#231;&#252;nk&#252; bunlar&#305; nereye nas&#305;l yazacag&#305;m&#305; dahi bilmiyorum.
benim sorum &#351;u 175 tane say&#305; var. 2li 3l&#252; 4l&#252; 5li......13l&#252; 14l&#252; 15li gruplar&#305; excelde g&#246;rebilir miyim.Ayr&#305;ca bu 175 say&#305;dan kullad&#305;g&#305;m&#305; &#231;&#305;kar&#305;cam gruptan, yani 2 tane kullanm&#305;&#351;sam bu seferde 173 tane say&#305;n&#305;n 1den 15e kadar gruplanm&#305;&#351; halini g&#246;rmem gerek.
say&#305;n &#252;stadlar yard&#305;mlar&#305;n&#305;z&#305; bekliyorum l&#252;tfen!!!
 
Katılım
27 Ocak 2008
Mesajlar
3
Excel Vers. ve Dili
office2003
san&#305;r&#305;m bu i&#351; imkans&#305;z bi&#351;ey &#231;&#252;nk&#252; 147 say&#305; varm&#305;&#351; toplam, bunun i&#231;inden herhangi 15 tanesi alman&#305;n 33basamakl&#305; bir say&#305; kadar de&#287;i&#351;ik kombinasyonu var galiba. 15tane 147yi &#231;arp&#305;nca &#246;le &#231;&#305;kt&#305;,emin de de&#287;ilim dogru yapt&#305;g&#305;ma,
excelde o kadar kombinasyonu yazacak sat&#305;r ve s&#252;tun varm&#305;ki???
 
Katılım
27 Ocak 2008
Mesajlar
3
Excel Vers. ve Dili
office2003
asl&#305;nda benim tam arad&#305;g&#305;m &#351;ey buda de&#287;il.hani KAKURO diye bi oyun var ona benzer bir bulmacay&#305; &#231;&#246;zmeme yard&#305;m edecek bir pro&#287;ram laz&#305;m.
&#351;imdi 147 adet say&#305;(baz&#305;lar&#305; + baz&#305;lar&#305; - ) var elimde ve istiyorumki
bu 147 say&#305;dan 6 tanesinin toplam&#305; -79 olsun, bu ko&#351;ulu sa&#287;layan ka&#231; farkl&#305; kombinasyon varsa g&#246;rmek istiyorum.
yada 8 tanesinin toplam&#305; 88 olsun,3tanesinin toplam&#305; 162 olsun,7 tanesinin toplam&#305; -43 olsun gibi ko&#351;ullar&#305; sa&#287;layan kombinasyonlar&#305; g&#246;sterebilecek bir pro&#287;ram var m&#305; acaba d&#252;nyada???
 
Katılım
1 Şubat 2007
Mesajlar
22
Excel Vers. ve Dili
Excel 2003 Türkçe
Say&#305;n anemos gecikmi&#351; te&#351;ekk&#252;r&#252;m&#252; l&#252;tfen kabul edin.&#304;yi &#231;al&#305;&#351;malar.
 
Üst