• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

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

  • Konbuyu başlatan Konbuyu başlatan jalji
  • Başlangıç tarihi Başlangıç tarihi
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.
 
Sanırım sorunuz tam anlaşılamadığı için yorum yapılmamış. Biraz daha açarsanız belki yardımcı olabilirim.
 
Bu eğer tombolaya benziyorsa forumda hazır dosya var,araştır.
 
Aynı konuda benim soruma da yanıt alamadım.
 
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:
Teşekkür ediyorum sayın anemos.Eklediğim dosyada biraz daha açıklama yaptım.Rica etsem bir gözatabilirmisiniz?
Hoşçakalın.
 
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.
 
=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:
&#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.
 
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.
 
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.
 
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
 
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!!!
 
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???
 
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???
 
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.
 
Geri
Üst