• DİKKAT

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

Kombinasyon

Listedeki rakam sayısını 20 değilde 25 bile yapsam kodda kilitlenme oluyor.
 
Hafıza sorunu ortaya çıkıyor.

25'te sonuç aldım. Ancak biraz sabır. Beklemek gerekiyor.


.
 
20 ile 30 arasında hız açısından inanılmaz fark oluşuyor.İçiçe döngüsel kıyaslamadan kaynaklanıyor değilmi.? max 30 galiba?
 
Arkadaşlar solver eklentisiyle probleme bir çözüm bulmaya çalıştım, sayı sınırlamasını da aşabiliriz bu yöntemle.
 

Ekli dosyalar

Sn.Janveljan
Harika Çözümünüz ve ilginiz için çok teşekkürler...şimdilik sorun çıkmıyor gözüküyor ve çok sevindirici bir durum...çünkü dün incelememde ortalama 20 satır ve max.70 satır gibi bir durum ortaya çıktı,
Sn.yurttaş sağolsun..çok güzel bir sistem geliştirmişti ancak 25'den sonrada sıkıntı oluyordu hatta son sistem bir PC'de denedim..yine 25 üzerindeki satırlarda bir hayli sürüyor.

biraz daha üzerinde çalışacağım ve detaylı yorumu tekrar yapacağım.

tekrar elinize sağlık
 
süper...ek'teki dosyada 70 adet satıra kadar yükselttim...gayet hızlı çalışıyor ve hatasız ...tekrar çok teşekkürler...sadece ufak bir detay kaldı dosyada izah ettim...ondada yardımcı olursanız çok memnun olurum...

Sn.janveljan ve Yurttaş arkadaşlara katkılarından dolayı tekrar teşeşkkür eder,,,Allah'da sizlerin olan yada olacak olan sıkıntılarınızı feraha erdirsin inş..
 
özür...sabah mahmurluğu herhalde..sorumda yanlışlık var...sadece 1 ve 0 değerleri var...yani üçüncü seçenek yok...burada kademeli "çöz" olabilirmi bilemiyorum...yani ilk çözde en yüksek değeri atama yapar..daha sonra II çöz 'de kalan sıfır değerlerini ikinci değeri atar ve ensonda kalanlar üçüncü değer olur..
böyle bir şey yapılabilirmi?
 
Sn.Barons ben anladığımı yazayım, önce bir mutabık kalalım isterseniz daha sonra üzerinde çalışalım. G,H ve I sütunlarındaki A,B,C lerden önce en büyüğüne göre 0 ve 1 ler ayarlanacak daha sonra atanmamış olan sayılardan ikinci büyüğe atamalar yapılacak ve en son da en küçük değerlere atanmış olacak, ben bu şekilde anladım, bu şekilde denemeye başlıyorum.
 
Sn.Janveljan
Örneği inceledim..değişik rakamlar girerek test ettim ...çok teşekkürler..ancak istediğim bu değil...
Kusura bakmayın anlatma yeteneğim zayıftır.
İzlenmesi gereken mantık şu şekilde;
Kusuratsız örnek vereyim daha kolay olması için...
elimde 3 adet ünite var var toplam iş yüklerini dağıtmak istiyorum.
örnek: A ünitesi 7 iş yüküne sahip
 
yanlışlıkla gönderdim eksik gitti devam ediyorum baştan

İzlenmesi gereken mantık şu şekilde;
Kusuratsız örnek vereyim daha kolay olması için...
elimde 3 adet ünite (A,B ve C adlarında) var.Bu ünitelere toplam iş yüklerini dağıtmak istiyorum.
örnek: A ünitesi 7 iş yüküne sahip
B=4
C=3

olsun...
toplam 14 işyükü
şimdi ilk önce en büyük olanı yani A ünitesini (Bu B yada C'de olabilirdi) 7 yüke eşit yada en yakın olacak şekilde dağıtımı yapılıyor.Bu 7 işyükü A ünitesine dağıldıktan sonra geriye 7 ünite daha kalıyor.
Kritik nokta burası; Kalan 7 iş yükünüde A'dan sonra en büyük hangisi ise B yada C ,dağıtılıyor yani 4.
Geriye kalan 3 ünitede en az yükü olana dağıtılıyor.
Satır sayısı değişebiliyor.
örnek sizin gönderdiğiniz dosyada bir deneme yaptım..C yüksek çıktı ve A'ya hiç atama yapmadı.Dosya ektedir.
 

Ekli dosyalar

birde dosya açıp kapatınca compile hatası veriyor.Reference'de missing solver.xla gözüküyor.bunu kaldırıyorum ve dosyayı kapatıp açıyorum.Bu seferde solver reset hatası veriyor...biraz mucadeleden sonra eklentilerden solver.xla tekrar aktif hale getirince düzeliyor.
 
Öncelikle makronun doğru çalışması için A sütunundaki sıra numaraları B sütnundaki sayılar nerde bitiyor ise oraya kadar olmalı yani bu örnekte 20, diğer husus problemi çözme mantığı eşit değer bulma üzerine yani sayıların arasındaki 8,33 sayısı bütün mantığı çökertir, eğer sayıların arasında bu şekilde örnek olarak 7,2 den büyük rakam varsa mantığı farklı kurmak lazım. Üzerinde çalışacam.
 
Sn.Janveljan
Aklıma şöyle bir çözüm geldi olabilirmi acaba...ilk çöz butonuna bastık ve en büyük harfi dağıttı. bu dağılımı yapılanları başka bir sayfaya aktarsak veya bu harfle başlayan bir sayfa oluşturup oraya aktarsak.
daha sonra kalan rakamları yine en büyük olana dağılımını yapsak ve onuda başka sayfaya aktarsak...en son kalanda yerinde kalabilir zaten...
böylece hem daha rahat çalışabilir sistem hemde içiçe mantıksal örgüye gerek kalmaz diye düşünüyorum...
 
Sn.Barons şimdi hazırladığım dosyanın mantığını anlatayım ve eksikliklerini belirteyim, siz de denersiniz.
En büyüğe atama yaparken öncelikle şuna bakıyor, sayıların arasında iş yükünden büyük sayı varsa bunu ona direk atıyor. Yani en büyük iş yükü 7,2 ancak sayıların arasında 8,33 varsa direk 8,33 ü atıyor ve ikinci büyüğe geçiyor, eğer 8,33 gibi daha büyük bir değer yoksa solver problemi çözüyor atamaları yapıyor.
İkinci büyüğe sıra gelince yine bakıyor büyük değer varsa onu direk atıyor yoksa solver problemi çözüyor.
Geri kalan değerleri de direk en küçüğe atıyor.

Şimde şöyle bir durum var;
Mesela en büyük değer 7,2 ve sayılar arasında
7,1
0,01
0,1
0,09
sayıları var normal atama 7,1 ve 0,1 şeklinde mi olması lazım yoksa 7,1 / 0,01 / 0,09 şeklinde atama yapması problem çıkarmaz mı?

Solver ile ilgili de Vb editöründe tools menüsünde references var, burada Solverın işaretli olması lazım ve excel de Solver eklentisinin aktif hale getirilmiş olması lazım.
 

Ekli dosyalar

Son düzenleme:
Sn.Janveljan
Değerli vaktinizi harcadığınız ve emeğiniz için gerçekten size minnettarım.
Öncelikle sorunuzu cevaplayayım.Aslında buradaki mantık bir ünite devreye alındığında arka arkaya çalışması daha uygundur.Yani 7,1/0,01/0,09 sistemin çalışmasına daha uygundur.Sorun yok ancak ben bir kaç deneme yaptım..mesela..satır sayısını 40 yaptım ve aynı verileri kopyalayıp yapıştırdım.A makinasına hiç atama yapmadı ama daha sonra A makinasının değerini büyüttüm ..bu sefer dağıtımı yaptı.bu haliyle örnek ektedir.
Tam olarak size dönebilmem için biraz daha sistem üzerinde denemeler yapmalıyım.
 

Ekli dosyalar

Sn.Janveljan
Dengesiz ve pik değerler verdildiğinde sistem dağılımda bazen bir harfi pas geçiyor ama ben şu anlamda doğru çalıştığını düşünüyorum.Burada deneme amaçlı dengesiz yükler veriyoruz oysa gerçekte bu kadar dengesiz değerler olmayacaktır.
Yarın sistem üzerinde reel değerlerle çalışıp size sonucu bildireceğim ...
 
Geri
Üst