Generator losowych liczb dziesiętnych
Generuj losowe liczby dziesiętne (float) w zadanym zakresie z kontrolą liczby miejsc po przecinku. Do testów i statystyki.
-
1Wprowadź dane
Wpisz treść, wklej tekst lub załaduj plik z dysku. -
2Kliknij przycisk
Narzędzie natychmiast przetworzy Twoje dane w przeglądarce. -
3Pobierz wynik
Skopiuj gotowy tekst lub zapisz plik na urządzeniu.
return "Wynik gotowy w 0.1s";
}
Wylosowano
Miejsca dziesiętne
Zakres
Średnia
z bieżącego zestawu
Unikalne
Losowanie
- 85,91
- 12,75
- 44,53
- 25,06
- 25,50
- 5,96
- 70,10
- 9,14
- 0,66
- 86,71
- 94,04
- 45,12
- 35,55
- 91,01
- 73,91
- 3,34
- 66,10
- 78,51
- 24,98
- 42,72
Kopiowanie zachowuje kropkę dziesiętną (format wejściowy dla programów i JSON); wersja „z przecinkiem” pasuje do polskiego Excela.
| Miejsca po przecinku | Pula wartości w przedziale [0, 1) | Przykładowa wartość | Typowe zastosowanie |
|---|---|---|---|
| 1 | 10 | 0,5 | Procenty, oceny, tempo wzrostu |
| 2 | 100 | 0,47 | Ceny i kwoty (grosze) |
| 3 | 1 000 | 0,123 | Kursy walut, pomiary |
| 4 | 10 000 | 0,4711 | Wagi, dokładne pomiary |
| 5 | 100 000 | 0,47113 | Współrzędne uproszczone |
| 6 | 1 000 000 | 0,471135 | Symulacje, obliczenia naukowe |
Pula to liczba różnych wartości, jakie mieszczą się w przedziale [0, 1) przy danej precyzji: 2 miejsca = 100 wartości (0,00–0,99), 3 miejsca = 1 000, 4 miejsca = 10 000 i tak dalej. Domyślne ustawienia (zakres 0–100, 2 miejsca) dają 101 × 100 = 10 100 możliwych liczb — tyle samo (maksymalnie) wylosujesz w trybie „Unikalne”.
Warto wiedzieć — losowe liczby dziesiętne w praktyce
Precyzja ogranicza pulę
Każde dodane miejsce po przecinku mnoży pulę możliwych wartości ×10. W przedziale [0, 1) przy 2 miejscach mieszczą się dokładnie 100 wartości (0,00–0,99), a przy 3 miejscach już 1 000 (0,000–0,999). Przy opcji „Unikalne” nie wylosujesz więc więcej liczb, niż wynosi pula — komunikat błędu podpowie, co poszerzyć: zakres, precyzję albo liczbę wartości.
Kropka czy przecinek?
Wynik i pierwsza kopia używają kropki — to format przyjmowany przez programy, JSON i arkusze w wersji angielskiej. Drugi zestaw przycisków („z przecinkiem”) przygotowuje liczby pod polskiego Excela i raporty, gdzie przecinek jest separatorem dziesiętnym.
Bezpieczny czy szybki generator?
Włączony „Bezpieczny generator” losuje przez random_int (generator kryptograficzny) — wybierz go do konkursów, losowań nagród i wszędzie tam, gdzie nieprzewidywalność jest ważna. Wyłączony tryb używa szybszego mt_rand, gdy zakres się mieści; przy bardzo szerokich zakresach narzędzie i tak zawsze przełącza się na bezpieczne losowanie.
Wykluczenia z puli
W polu „Wyklucz” podaj liczby rozdzielone spacją, przecinkiem lub średnikiem (np. 13.37, 50). Wartości spoza zakresu są ignorowane, a wykluczone nie pojawią się w wyniku — przydatne, gdy jakaś liczba ma „trafić się” z definicji nigdy.
Oceń to narzędzie:
Powiązane narzędzia
Inne narzędzia, które mogą Ci się przydaćGenerator losowych liczb dziesiętnych — float i double online
Generator losowych liczb dziesiętnych generuje losowe liczby zmiennoprzecinkowe (float/double) w podanym zakresie z wybraną precyzją (liczbą miejsc po przecinku). Idealne do testowania algorytmów, danych demo i symulacji numerycznych.
Czym są liczby zmiennoprzecinkowe (float)?
Liczby zmiennoprzecinkowe (ang. floating-point numbers) to komputerowa reprezentacja liczb rzeczywistych z częścią dziesiętną. Standardy: float (32-bit) — precyzja ok. 7 cyfr, zakres ±3.4×10^38. double (64-bit) — precyzja ok. 15–16 cyfr, zakres ±1.8×10^308. W JavaScript wszystkie liczby to de facto 64-bitowe double IEEE 754. Problem: niektóre liczby dziesiętne nie mają dokładnej reprezentacji binarnej — np. 0.1 + 0.2 ≠ 0.3 w większości języków (efekt zaokrąglenia IEEE 754).
Jak generować losowe liczby dziesiętne?
JavaScript: Math.random() zwraca liczbę z zakresu [0, 1) — do wybranego zakresu: min + Math.random() * (max - min). Z precyzją: parseFloat((min + Math.random() * (max - min)).toFixed(2)) — 2 miejsca po przecinku. Python: import random; random.uniform(min, max) — losowa liczba float. round(random.uniform(-10, 10), 3) — 3 miejsca. NumPy (Python): np.random.uniform(low=0, max=1, size=100) — tablica 100 wartości. Generator oferuje GUI do ustawienia wszystkich parametrów bez pisania kodu.
Zastosowania losowych liczb dziesiętnych
Losowe floaty są potrzebne w: testowaniu algorytmów numerycznych (sortowania, optymalizacji, ML), generowaniu danych testowych (ceny, wagi, wymiary), symulacjach Monte Carlo (matematyczne obliczenia przez losowe próbkowanie), grafice komputerowej (shading, noise, particle systems), grach komputerowych (ruch cząsteczek, losowe zdarzenia), kryptografii (seed dla CSPRNG — choć Math.random() nie jest kryptograficznie bezpieczny).
Rozkłady statystyczne dla losowych liczb
Math.random() generuje rozkład jednorodny (uniform) — każda wartość ma takie samo prawdopodobieństwo. Inne rozkłady: Normalny (Gaussa) — Box-Muller transform: Math.sqrt(-2*Math.log(Math.random())) * Math.cos(2*Math.PI*Math.random()). Wykładniczy: -Math.log(1-Math.random()) / lambda. Bernoulliego (0 lub 1 z prawdopodobieństwem p): Math.random() < p ? 1 : 0. Generator tworzy liczby z rozkładu jednorodnego — dla innych rozkładów użyj biblioteki statystycznej.
Najczęściej zadawane pytania
Jak wygenerować losową liczbę float w Pythonie?
import random; x = random.uniform(0, 100) — losowa liczba z zakresu [0, 100). Z zaokrągleniem: round(random.uniform(-5, 5), 2). Dla tablicy (NumPy): import numpy as np; arr = np.random.uniform(0, 1, size=1000) — 1000 losowych float z zakresu [0,1). Dla rozkładu normalnego: np.random.normal(mean, std, size=100).
Dlaczego 0.1 + 0.2 ≠ 0.3 w JavaScript?
To efekt IEEE 754 double precision floating point — niektóre ułamki dziesiętne nie mają dokładnej reprezentacji binarnej. 0.1 w binarnym to nieskończony ułamek (jak 1/3 w dziesiętnym). Wynik: 0.1 + 0.2 = 0.30000000000000004. Rozwiązania: parseFloat((0.1+0.2).toFixed(10)) — zaokrągl do 10 miejsc, Math.round((0.1+0.2)*100)/100 — mnóż i dziel, biblioteka Decimal.js dla finansów. Zawsze zaokrąglaj wyniki operacji float przed porównaniem.
Jak wygenerować losowy float w określonym rozkładzie (np. normalnym)?
Rozkład normalny (JavaScript, Box-Muller): function randn(mean, std) { let u = 1 - Math.random(); let v = Math.random(); let z = Math.sqrt(-2*Math.log(u)) * Math.cos(2*Math.PI*v); return mean + z * std; }. Przykład: randn(170, 10) — losowy wzrost (mean 170 cm, std 10 cm). Python: random.gauss(170, 10) lub np.random.normal(170, 10).
Jaka jest różnica między Math.random() a crypto.getRandomValues()?
Math.random(): pseudo-losowy, szybki, NIE kryptograficznie bezpieczny, ziarno zależne od silnika JS. crypto.getRandomValues(): kryptograficznie bezpieczny CSPRNG, wolniejszy, używaj do: tokenów, haseł, kluczy. Przykład crypto: const arr = new Uint32Array(1); crypto.getRandomValues(arr); const rand = arr[0] / 0xFFFFFFFF; — float [0,1). Generator używa Math.random() — dla danych testowych jest wystarczający.
Jak wylosować liczby float bez powtórzeń?
Technicznie niemożliwe dla kontinuum — prawdopodobieństwo powtórzenia precyzyjnego float jest astronomicznie małe. Dla dyskretnych wartości z precyzją N miejsc po przecinku: wygeneruj wszystkie możliwe wartości (np. [0, 0.1, 0.2...] dla N=1), następnie przetasuj (Fisher-Yates shuffle). Praktyczne: przy małej liczbie floatów z małą precyzją (np. 10 liczb z 1 miejscem z zakresu 0-5) — użyj Set i pętli while z dodawaniem dopóki nie masz N unikalnych.