rastgele bir sayı dizisinden eşit büyüklükte sayı gruplarını seçmek

oy
0

i 100 numaralarının listesini söylüyorlar, ben sayıların ortalamaya yakın her grup içinde toplamını sahip 5 grup halinde bölmek istiyorum.

En basit çözüm yüz numaralarını sıralamak ve maksimum sayısını alıp toplamı avg ötesinde kadar en küçük sayılar ekleyerek tutmaktır.

Açıkçası bu iyi sonuçlar getirmesini gitmiyor. i biz BFS veya DFS veya başka arama algo kullanabilirsiniz sanırım. A * gibi iyi sonucu almak için.

Herkes orada basit bir çözüm var mı? sahte kod yeterince iyi değil. Teşekkürler!

Oluştur 09/09/2010 saat 05:06
kaynak kullanıcı
Diğer dillerde...                            


2 cevaplar

oy
0

Bu bir varyasyon gibi geliyor sırt çantası sorunu ve sizi doğru yorumlayarak ediyorsam, o olabilir çoklu sırt çantası sorunu . Eğer kolay bir sorun ile gelip olmaz mı? :)

Cevap 09/09/2010 saat 05:40
kaynak kullanıcı

oy
0

kullanılabilecek Verimli bir algoritma (çözelti) bin ambalaj algoritmasının En Fit bir çeşididir. Biz grupların en küçük numarayı kullanarak arayan yerine istediğiniz Ancak, biz sayıların özellikle 5 farklı gruplarına sahip olduğu bir varyasyonu uygulayarak gerekecekti.

Algoritma her 100 sayı listesi ortalama bularak başlar. Bu ortalama biz içine numaraları uydurmaya çalışan gruplara (kutuları) tüm 5 maksimum kapasite olarak kullanılacaktır. Sonra Grubumuzun maksimum kapasitesini aşan ve ilk grubuna atamaz 100 sayı listemizde büyük sayısını bulmak. (Biz bir kendini dengeleyen ikili arama ağacı kullanabilirsiniz çünkü günlük (n) zamanında bu bulabilirsiniz). Biz how parça mevcut grubudur dolu tutmak. Sonra mevcut gruba uyan biz ya max kapasiteye ulaşana kadar veya bu grubun maksimum kapasiteye ulaşmak sağlayacak başka hiçbir sayıların bulunduğunu sonraki en büyük sayısını bulmak. Her iki durumda da biz bir sonraki gruba geçmek ve sayı bizim listesinde sol sayılarla algoritmayı tekrarlayın. biz bir grup ilerledikten sonra biz de bu grubun şimdiki toplamı izlemek zorundadır. Hepimizin 5 gruplar için en yüksek kapasiteye ulaşana kadar devam ediyoruz. herhangi sayılar sol varsa biz (biz gittik olarak biz bu toplamlar izini tuttuğu için) en düşük toplam miktar olan gruplar koyun. Bunun nedeni bin paketleme durumları için aslında zaman çalışan basmakta q (nlogn) ile aç gözlü bir algoritmadır.

Cevap 03/12/2019 saat 02:31
kaynak kullanıcı

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more