Generador de número decimal aleatorio
Con los límites 0 y 1 y la semilla 42 obtendrá siempre 0,2523451748: los mismos límites, la misma semilla y los mismos decimales repiten el mismo sorteo. Útil para claves de respuestas, ejercicios de probabilidad y datos de ejemplo. Gratis en su navegador.
- Gratis
- Funciona en su navegador
- Sin registro
- Sus datos no salen de su equipo
Ejecutar — gratis
Ejemplo resuelto
- Mínimo
- 0
- Máximo
- 1
- Semilla
- 42
- Valor
- 0,2523451748
- Precisión
- 10
- Intervalo unitario
- 0,2523451748
Un generador de número decimal aleatorio es la herramienta que se abre cuando se necesita una sola muestra real dentro de un intervalo numérico: una temperatura simulada, un precio unitario de prueba, un sorteo de aula en el intervalo unidad o un accesorio de prueba que debe permanecer estable byte a byte entre ejecuciones de integración continua. Esta capacidad devuelve un único decimal uniforme entre un límite mínimo obligatorio y un límite máximo obligatorio. El sorteo proviene de un generador congruencial lineal con semilla, de modo que los mismos límites, la misma semilla y la misma precisión producen siempre el mismo número.
Cómo un generador congruencial lineal con semilla se convierte en un decimal
Un generador de número decimal aleatorio que no se puede repetir es un lastre en pruebas, claves de deberes y cuadernos de simulación. Por eso este extremo rechaza la fuente aleatoria del anfitrión y el reloj del sistema. Avanza un generador congruencial lineal de 32 bits cuyas constantes son el par 1664525 y 1013904223 de Numerical Recipes, tomadas módulo dos a la treinta y dos.
La semilla de entrada se reduce a una palabra de 32 bits sin signo: un entero finito se toma módulo ese módulo, y una cadena no numérica se mezcla con el hash FNV-1a para que una etiqueta de laboratorio, como el nombre de un accesorio, siga siendo una semilla estable. Un paso de la recurrencia produce un entero sin signo X, que se divide entre dos a la treinta y dos para obtener una muestra u del intervalo unidad, en el rango semiabierto de cero inclusive a uno exclusive.
Antes de cualquier redondeo, el decimal bruto vive por tanto en el intervalo semiabierto que incluye el mínimo y excluye el máximo. La precisión opcional redondea después el decimal mostrado a entre cero y doce cifras fraccionarias para que los goldens y las hojas de cálculo comparen byte a byte.
Dónde un sorteo decimal reproducible justifica su uso
Las pruebas de software son el primer público. Una suite que necesita un decimal entre 0.15 y 0.85 no debe llamar a la fuente aleatoria del anfitrión y luego fijar un número que se mueve; debe enviar una semilla fija y afirmar el valor publicado. Las plataformas docentes son el segundo.
Los cursos de probabilidad piden a los estudiantes un decimal uniforme en un intervalo y luego una media o una cobertura; un generador con semilla permite al docente publicar el sorteo esperado junto a la hoja en lugar de discutir qué calculadora parpadeó. Los trabajos de simulación y de datos de prueba son el tercero. Si necesita muchos sorteos independientes, avance la semilla usted mismo (seed más uno, seed más dos) y recoja los valores, o vuelva a llamar con otra semilla documentada.
Mantenga las peticiones pequeñas, fije el valor redondeado en las pruebas y obtendrá un decimal reproducible sin levantar un entorno estadístico propio.
Qué puede hacer con ella
Accesorios de prueba reproducibles
Fije una semilla y unos límites en la integración continua para que una prueba unitaria espere siempre el mismo decimal en lugar de una instantánea aleatoria del anfitrión que cambia.
Sorteos uniformes de aula
Publique el decimal esperado junto a una hoja de probabilidad para que cada estudiante y la clave de respuestas compartan un único sorteo con semilla.
Series ficticias de sensores y precios
Asocie el identificador de un escenario a una semilla y obtenga una temperatura, un peso o un precio unitario estable dentro de un intervalo numérico documentado.
Preguntas frecuentes
¿Por qué el límite mínimo debe ser menor que el máximo?
Un sorteo uniforme necesita una anchura de intervalo positiva.
¿Es esta una fuente aleatoria criptográfica?
No. El generador es un flujo congruencial lineal breve y plenamente especificado, pensado para pruebas, docencia y datos de ensayo. No lo use para claves, tokens ni nada que deba ser impredecible frente a un adversario.
¿Cuántos decimales puede tener el número?
Entre 0 y 12. Si no elige ninguno, el número sale con diez decimales. El redondeo se aplica al final, después de situar el sorteo entre sus dos límites.
¿Puede salir exactamente el valor máximo?
Antes de redondear, no: el resultado puede coincidir con el mínimo, pero siempre queda por debajo del máximo. El sorteo se hace en un intervalo que incluye el límite inferior y excluye el superior.
¿Cómo obtengo varios decimales aleatorios distintos?
Cambie la semilla en cada sorteo, por ejemplo sumándole uno cada vez, o use otra semilla que deje anotada. Cada semilla da un único número, así que repetirla repite el mismo decimal.
Herramientas relacionadas
Para desarrolladores — acceso por API
Todo lo de esta página está disponible por programación. Esta sección es para equipos que quieren integrarlo en sus sistemas; el resto puede usar la herramienta de arriba sin más.
Endpoint de API
¿Prefiere automatizarlo? Un POST autenticado crea la tarea; el resultado llega por webhook o enlace firmado. La misma capacidad también se ejecuta aquí en la web, por email y desde Telegram — y pronto también desde nuestra app.
Llámela desde su stack
curl -X POST https://api.kit.forhosting.com/stat/decimal-random-number-generator \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"minimum":0,"maximum":1,"seed":42}'const res = await fetch("https://api.kit.forhosting.com/stat/decimal-random-number-generator", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"minimum": 0,
"maximum": 1,
"seed": 42
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/stat/decimal-random-number-generator",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"minimum": 0,
"maximum": 1,
"seed": 42
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/stat/decimal-random-number-generator", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"minimum":0,"maximum":1,"seed":42}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"minimum":0,"maximum":1,"seed":42}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/stat/decimal-random-number-generator", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Ejemplo de solicitud
{
"minimum": 0,
"maximum": 1,
"seed": 42
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "stat.decimal_random_number_generator",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}La API es asíncrona: la llamada devuelve un task_id al instante y el resultado llega por webhook. El polling está limitado a 1 req/s por tarea.
Precio
Precio publicado — sin tokens ni créditos inventados. Una tarea fallida no se cobra.
Errores
| HTTP | Código | Significado |
|---|---|---|
401 | unauthorized | API key ausente o inválida. |
402 | insufficient_balance | El saldo no cubre el precio de la tarea. |
404 | unknown_type | El tipo de tarea no existe. |
429 | rate_limited | Demasiadas peticiones. Use el webhook en vez de sondear. |
Notas técnicas
Si el límite mínimo no es estrictamente menor que el máximo, la tarea falla con invalid_input en lugar de inventar un orden.
Cómo un generador congruencial lineal con semilla se convierte en un decimal
Esa muestra unitaria se escala luego al intervalo del llamador mediante el mapa afín valor igual a minimum más u por la anchura maximum menos minimum. La misma semilla, los mismos límites y la misma precisión producen siempre el mismo unit_interval y el mismo value en todo entorno que implemente la multiplicación-suma de 32 bits del mismo modo, que es exactamente el contrato que necesita una aserción de integración continua. Nada del camino es estocástico a nivel del sistema operativo; dos workers con el mismo cuerpo JSON no pueden discrepar.
Contrato de entrada, límites, precisión y comportamiento de error
Los límites iguales y el intervalo invertido se rechazan, porque una anchura nula o negativa no define un sorteo uniforme e inventar un intercambio ocultaría un error del llamador. El redondeo posterior a la escala puede caer exactamente en un extremo; trate el valor mostrado como un decimal con las cifras pedidas, no como una promesa de que el extremo superior exclusivo sobrevive a todo redondeo. La validación fallida no se cobra. Empareje la semilla ecoada con sus propios registros si necesita demostrar que una repetición posterior usó el mismo flujo. Envíe por POST un cuerpo JSON con tres campos obligatorios. minimum es el límite inferior del intervalo y también puede llegar como min, lower o lo. maximum es el límite superior y también puede llegar como max, upper o hi. seed es la semilla del generador y también puede llegar como key o salt. Un campo opcional precision, aceptado además como decimals, places o digits, fija el número de cifras fraccionarias del decimal devuelto; vale diez por omisión y debe ser un entero de cero a doce. Cada campo numérico puede ser un número JSON o una cadena numérica; los valores no finitos, las cadenas vacías y los campos obligatorios ausentes fallan con invalid_input que nombra el campo. La regla geométrica dura es que minimum debe ser estrictamente menor que maximum. En caso de éxito el cuerpo ecoa el minimum y el maximum analizados, la semilla de 32 bits sin signo que de verdad entró en la recurrencia y la precisión aplicada. También devuelve unit_interval, la u bruta redondeada a doce cifras para inspección, value, el decimal escalado redondeado a la precisión pedida, y una cadena formula breve que reescribe el mapa afín. Las llamadas correctas usan el precio base publicado $0.002.
Dónde un sorteo decimal reproducible justifica su uso
Cada llamada correcta a la API cuesta $0.002; la entrada inválida no consume saldo. La herramienta no es una fuente aleatoria criptográfica, ni un generador de vectores de muchas muestras, ni un recambio de una biblioteca Monte Carlo completa: devuelve un decimal por petición.
Preguntas técnicas
¿Cómo elige un valor este generador de número decimal aleatorio?
Avanza un generador congruencial lineal de 32 bits de Numerical Recipes desde su semilla, proyecta el estado siguiente a una muestra u del intervalo unidad en [0, 1) y devuelve minimum + u × (maximum − minimum), redondeado a la precisión pedida.
¿La misma semilla produce siempre el mismo decimal?
Sí. El camino no lee el reloj ni llama a Math.random. Los mismos minimum, maximum, seed y precision producen siempre el mismo unit_interval y el mismo value.
¿Cuánto cuesta el generador de número decimal aleatorio?
La herramienta del navegador es gratuita. Las peticiones a la API usan saldo prepago de KIT a $0.002 por llamada correcta; la entrada inválida no se cobra.