Verilen:
- Bir doğal sayı S .
- 1'e karşılık gelen N rasyonel ağırlığın W listesi .
N negatif olmayan tamsayıların L listesini döndürün, böylece:
(1) sum(L) = S
(2) sum((S⋅W_i - L_i)^2) is minimal
Başka bir deyişle, S⋅W_i
tamsayılarla yaklaşık s mümkün olduğunca yakın.
Örnekler:
1 [0.4 0.3 0.3] = [1 0 0]
3 [0 1 0] = [0 3 0]
4 [0.3 0.4 0.3] = [1 2 1]
5 [0.3 0.4 0.3] = [2 2 1] or [1 2 2] but not [1 3 1]
21 [0.3 0.2 0.5] = [6 4 11]
5 [0.1 0.2 0.3 0.4] = [1 1 1 2] or [0 1 2 2]
4 [0.11 0.3 0.59] = [1 1 2]
10 [0.47 0.47 0.06] = [5 5 0]
10 [0.43 0.43 0.14] = [4 4 2]
11 [0.43 0.43 0.14] = [5 5 1]
Kurallar:
- Herhangi bir girdi biçimini kullanabilir veya girdiyi bağımsız değişken olarak kabul eden bir işlev sağlayabilirsiniz.
Arka fon:
Bu sorun, türlere göre farklı oranlarda W i cinsinden farklı türde öğelerin S gösterilmesi sırasında ortaya çıkar .
Bu sorunun bir başka örneği orantılı siyasi temsildir , bkz. Paylaştırma paradoksu . Son iki test vakası Alabama paradoksu olarak bilinir.
Bir istatistikçi olarak, bu sorunu tabakalı bir örnek yürütürken örnek boyutlarının tanımlanmasında karşılaşılan bir probleme denk kabul ettim. Bu durumda, numunedeki her tabakanın oranını popülasyondaki her tabakanın oranına eşit yapmak istiyoruz. - @tomi
round(A + B) != round(A) + round(B)
kısa bir çözüm burada neler olduğuna dair bir fikir gerektiriyor.
L[i] - S*W[i]
kural 2 ve kural 3 yerine kare mesafelerin toplamını en aza indirmek için kuralları değiştirin S*W[i]
.
[0 1 2 2]
başka bir olası çözüm5 [0.1 0.2 0.3 0.4]