@ECMAlover: fajne jak masz 10 wartości możliwych, przy 50 czy 100 już mniej, a budowanie if else na dwie strony... Doszedłem do wniosku, że do moich potrzeb wystarczy jak będę generował wg przesuniętej i przyciętej krzywej gaussa i może jeszcze skompresuję część. A przyszedł mi do głowy inny algorytm, ale dość zachłanny. Generuję jakąś funkcję i pożądanym przebiegu. A potem generuję parę liczb x,y. y jest ograniczone maksymalną wartością funkcji.
@Rasteris: no możesz zawsze wrzucać kilka tych samych liczb do listy. Chcesz mieć dokładność do pierwszego miejsca po przecinku to robisz tablice 1000 elementów i jak chcesz żeby 4 miało 10% szansy to dodajesz 100 czwórek do listy
@Infamiee: poszedłem inną drogą. Generuję pięc licz losowych. Z różnych zakresów trochę. Np
r1 = rnd(5,10) r2 = rnd(1,70), r3 = rnd(5,15)....
Potem dodaję do siebie wygenerowane liczby i dzielę przez 5. Ważne, żeby suma górnych zakresów wynosiła 5 * wymagany zakres. Każde losowanie ma wagę 20%. Liczbą zakresów i liczbą losowqń mozna manipulować tak, żeby uzyskać pożądany zakres. Nawet 10 losowqń zajmie mniej czasu niż budowa wielkiej tablicy. Tablicę
fajen bo udało się naprawić lapka, laptop 13 lat, wiatraczek głośnio chodził, chrzęścił, zamówiłem nowy, zamontowałem, wymieniłem też pastę na procku na nową i śmiga cichutko, temperaturki fajne, umiem coś
public class Random { public static void main(String [] args) { double d = Math.random(); if (d < 0.53) { //53% szansy } else if (d < 0.85) { //32% szansy } else if (d < 0.95) { //10% szansy } else { //5% szansy } }
A przyszedł mi do głowy inny algorytm, ale dość zachłanny. Generuję jakąś funkcję i pożądanym przebiegu. A potem generuję parę liczb x,y. y jest ograniczone maksymalną wartością funkcji.
r1 = rnd(5,10) r2 = rnd(1,70), r3 = rnd(5,15)....
Potem dodaję do siebie wygenerowane liczby i dzielę przez 5. Ważne, żeby suma górnych zakresów wynosiła 5 * wymagany zakres. Każde losowanie ma wagę 20%. Liczbą zakresów i liczbą losowqń mozna manipulować tak, żeby uzyskać pożądany zakres. Nawet 10 losowqń zajmie mniej czasu niż budowa wielkiej tablicy. Tablicę