Merhabalar,
Python ve Qt kullanarak, şanzıman iletim hesabında kullanılacak bir program yazıyorum. Belli dişlilerden hareket aktarılıyor. Ancak duruma göre dişliler farklı yedek dişliler ile değiştirilebiliyor. tek olarak hesaplamada sorun yok ama bu değişkenlerin tamamını da hesaplarken ortaya çıkacak kkombinasyonların içinden çıkamadım.

İki adet tablom var. Birinci tabloda dişli diş sayıları ve ikinci tabloda da değişken dişlilerin diş sayıları var. İşin tuhafı değişken olabilecek dişlilerin sayısı ve hangi dişli grubuna takılabilecekleri kesin değil. Yazacağımız algoritma her durumda çalışmlalı. Tablolar şöyle:

Ana Dişli Tablosu

*Sıra No
*       *Diş Sayısı
*
10
        15
20
        22
30
        0
40
        10
50
        12
60
        18
70
        0
80
        21
90
        50


Yukarıda görüldüğü gibi dişlilerinbulunduğu bir şanzıman düşünün. Ancak "0" (Sıfır) ile belirtilen yerlere değişken dişliler takılabiliyor. Değişken Dişliler tablosu da şöyle:

*Kaynak Sıra No
*       *Grup Diş Sayısı
*
30
        15
30
        20
30
        25
70
        25
70
        30
70      35
70      40
70      45
70      50


30 sıra numarası ile gele dişliler sıra ile takıldığında bundan sonra gelen 70 numaralı dişli grupları da sıra ile takılmalıdır. Kombinasyona göre mesela 30. dişli her değişmesinde 70 sıra numaralı gruplar da değişmelidir. Yani 30. grup bir kere değişdiğinde 70. grup sıra ile değişmeli ve 70. grupda son dişliye ulaştığında 30. dişli grubu ikinci dişlisine geçmelidir. Böyle bir akış ile tüm dişli gruplarının en az bir kere yazıldığı bir sıralamanın oluşması gerekiyor. Şanzımandaki grup dişliler her zamanaynı olmayabilir. yerleri ve grup sayıları değişebilir. Yani "0" (sıfır) ile ifade edlen grup birden fazla ve herhangi bir adımda olabilir.


Çıkamadım içinden... Her türlü öneriye açığım. Merak eden arkadaşlara yaptığım kodu ve veritabanını da gönderebilirim... Program sorunsuz olarak tek hesaplama yapıyor. Yani "grupdaki şu dişliyi kullanacaksın" dediğinde sorunsuz hesaplıyor. Ama kombinasyon ile tüm dişilileri sıra ile hesapla dediğimizde içinden çıkamadım... :(




--
Kolay gelsin,
Mucip:)

_______________________________________________
Linux-programlama mailing list
[email protected]
https://liste.linux.org.tr/mailman/listinfo/linux-programlama
Liste kurallari: http://liste.linux.org.tr/kurallar.php

Cevap