Aktywne Wpisy
LSkiper +678
Nie wiem co mnie skłoniło aby pisać takie rzeczy na portalu ze śmiesznymi obrazkami, ale trudno. Jakoś muszę to z siebie wyrzucić.
Dzisiaj po godz. 3 odeszła ode mnie moja wieloletnia dziewczyna. Byliśmy ze sobą ponad 10 lat - ta dekada była wypełniona ogromnym szczęściem, które mnie spotkało z jej strony - najpierw spotykaliśmy się, aby w ogóle ocenić czy się lubimy, potem codzienne pisanie po 100-200 sms/dzień, potem sama świadomość o
Dzisiaj po godz. 3 odeszła ode mnie moja wieloletnia dziewczyna. Byliśmy ze sobą ponad 10 lat - ta dekada była wypełniona ogromnym szczęściem, które mnie spotkało z jej strony - najpierw spotykaliśmy się, aby w ogóle ocenić czy się lubimy, potem codzienne pisanie po 100-200 sms/dzień, potem sama świadomość o
Amatorro +796
Mamy jakąś liczbę typu double nazwijmy ją X,
Mamy arraylistę Doubli,
jak elegancko i prawidłowo, rozbić liczbę X, proporcjonalnie do zawartości arraylisty, aby na wyjściu
dostać drugą arralistę Doubli której suma elementów równa się X.
Mam nadzieję, że w miarę jasne o co chodzi ( ͡° ͜ʖ ͡°).
#naukaprogramowania (najlepiej ) #java (albo coś równie czytelnego, a nie brainfucki itp.
Ps.
W spoileraj poproszę kod aby innych nie sugerować :)
X = 1000.0
elementy arraylisty 40.0 i 60.0
wynik
arraylista 400.0 i 600.0
Komentarz usunięty przez autora
Czy to jest właśnie to złe rozwiązanie :P ?
I mogę to udowodnić ;)
Implementacja w C:
http://ideone.com/4x7yG4
Dla np. X = 1000, 40 i 60 z powyżej działa poprawnie.
@LowcaG: spełnia wyżej zdefiniowane wymaga, jeśli uważasz inaczej - repo jest publiczne, możesz śmiało dopisać testy, które pokażą że się sypie, albo nie bluźnij ( ͡° ͜ʖ ͡°)
package lp.wypok;
public class RozbijatorWagowy {
public double[] rozbij(double wartosc, double... wagi) {
double sumaWag = 0;
for (double waga : wagi) {
sumaWag += waga;
}
for (int i = 0; i < wagi.length; ++i) {
wagi[i] *= wartosc / sumaWag;
}
return wagi;
}
}