Générateur de nombre décimal aléatoire
Avec les bornes 0 et 1 et la graine 42, vous obtenez toujours 0,2523451748 : mêmes bornes, même graine et mêmes décimales donnent le même tirage. Utile pour les corrigés, les exercices de probabilités et les données d'exemple. Gratuit dans votre navigateur.
- Gratuit
- Fonctionne dans votre navigateur
- Sans inscription
- Vos données restent sur votre appareil
Lancer gratuitement
Exemple résolu
- Minimum
- 0
- Maximum
- 1
- Graine
- 42
- Valeur
- 0,2523451748
- Précision
- 10
- Intervalle unité
- 0,2523451748
Cette capacité renvoie un unique décimal uniforme entre une borne minimale obligatoire et une borne maximale obligatoire. Le tirage provient d'un générateur congruentiel linéaire à graine, de sorte que les mêmes bornes, la même graine et la même précision produisent toujours le même nombre.
Où un tirage décimal rejouable justifie son emploi
Les tests logiciels sont le premier public. Une suite qui a besoin d'un décimal entre 0.15 et 0.85 ne doit pas appeler la source aléatoire de l'hôte puis figer un nombre qui bouge ; elle doit envoyer une graine fixe et affirmer la valeur publiée. Les plateformes d'enseignement sont le deuxième.
Les cours de probabilités demandent aux étudiants un décimal uniforme sur un intervalle puis une moyenne ou une couverture ; un générateur à graine permet à l'enseignant de publier le tirage attendu à côté de la feuille au lieu de discuter de quelle calculatrice a cligné. Les travaux de simulation et de données fictives sont le troisième. Si vous avez besoin de nombreux tirages indépendants, avancez la graine vous-même (seed plus un, seed plus deux) et collectez les valeurs, ou rappelez avec une autre graine documentée.
Gardez les requêtes petites, figez la valeur arrondie dans les tests, et vous obtenez un décimal rejouable sans dresser un runtime statistique à vous.
Cas d’usage
Tirages uniformes en classe
Publiez le décimal attendu à côté d'une feuille de probabilités afin que chaque étudiant et le corrigé partagent un seul tirage à graine.
Séries fictives de capteurs et de prix
Associez l'identifiant d'un scénario à une graine et obtenez une température, un poids ou un prix unitaire stable dans un intervalle numérique documenté.
Questions fréquentes
Pourquoi la borne minimale doit-elle être inférieure à la maximale ?
Un tirage uniforme exige une largeur d'intervalle positive.
S'agit-il d'une source aléatoire cryptographique ?
Non. Le générateur est un flux congruentiel linéaire court et pleinement spécifié, destiné aux tests, à l'enseignement et aux données d'essai. Ne l'utilisez pas pour des clés, des jetons ni rien qui doive rester imprévisible face à un adversaire.
Combien de décimales le nombre peut-il avoir ?
De 0 à 12. Si vous ne choisissez rien, le nombre est donné avec dix décimales. L'arrondi n'intervient qu'à la fin, une fois le tirage placé entre vos deux bornes.
La borne supérieure peut-elle sortir exactement ?
Avant l'arrondi, non : le résultat peut égaler la borne inférieure, mais il reste toujours sous la borne supérieure. Le tirage se fait dans un intervalle qui inclut la première et exclut la seconde.
Comment obtenir plusieurs nombres décimaux aléatoires différents ?
Changez la graine à chaque tirage, par exemple en lui ajoutant un à chaque fois, ou utilisez une autre graine que vous notez. Chaque graine donne un seul nombre : la reprendre redonne le même décimal.
Outils associés
Pour les développeurs — accès API
Tout sur cette page est disponible par programmation. Cette section s'adresse aux équipes qui veulent l'intégrer à leurs systèmes ; les autres peuvent simplement utiliser l'outil ci-dessus.
Endpoint
Authentification par jeton Bearer : un seul POST met la tâche en file d’attente, et le résultat vous parvient par webhook ou lien signé.
Appeler depuis votre 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)Exemple de requête
{
"minimum": 0,
"maximum": 1,
"seed": 42
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "stat.decimal_random_number_generator",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L’API est asynchrone : chaque appel renvoie un task_id immédiatement, puis vous interrogez l’état à raison d’une requête par seconde.
Tarifs
Le prix est publié, sans tokens ni crédits. Une tâche qui échoue n’est pas facturée.
Erreurs
| HTTP | Code | Signification |
|---|---|---|
401 | unauthorized | Clé API absente ou invalide : vérifiez l’en-tête Authorization. |
402 | insufficient_balance | Solde insuffisant : rechargez votre compte pour lancer cette tâche. |
404 | unknown_type | Type de tâche inconnu : vérifiez le champ type de votre requête. |
429 | rate_limited | Trop de requêtes : ralentissez la cadence, puis réessayez. |
Notes techniques
Si la borne minimale n'est pas strictement inférieure à la maximale, la tâche échoue avec invalid_input au lieu d'inventer un ordre.
Comment un générateur congruentiel linéaire à graine devient un décimal
Un générateur de nombre décimal aléatoire que l'on ne peut pas rejouer est un passif dans les tests, les corrigés et les carnets de simulation. Il fait avancer un générateur congruentiel linéaire 32 bits dont les constantes sont le couple 1664525 et 1013904223 de Numerical Recipes, prises modulo deux à la puissance trente-deux. Une étape de la récurrence produit un entier non signé X, que l'on divise par deux à la puissance trente-deux pour obtenir un échantillon u de l'intervalle unité, dans la plage semi-ouverte de zéro inclus à un exclu. La précision facultative arrondit ensuite le décimal affiché entre zéro et douze chiffres fractionnaires afin que les goldens et les tableurs comparent octet pour octet. Cet endpoint refuse donc la source aléatoire de l'hôte et l'horloge système. Cet échantillon unitaire est ensuite mis à l'échelle de l'intervalle de l'appelant par l'application affine valeur égale à minimum plus u fois la largeur maximum moins minimum. Avant tout arrondi, le décimal brut vit donc dans l'intervalle semi-ouvert qui inclut le minimum et exclut le maximum. La même graine, les mêmes bornes et la même précision donnent toujours le même unit_interval et le même value sur tout runtime qui implémente la multiplication-addition 32 bits de la même façon, ce qui est exactement le contrat dont une assertion d'intégration continue a besoin. Rien dans le chemin n'est stochastique au niveau du système d'exploitation ; deux workers auxquels on donne le même corps JSON ne peuvent pas diverger.
Contrat d'entrée, bornes, précision et comportement d'erreur
Les bornes égales et l'intervalle inversé sont tous deux rejetés, car une largeur nulle ou négative ne définit pas un tirage uniforme et inventer un échange cacherait un bogue de l'appelant. L'arrondi après la mise à l'échelle peut tomber exactement sur une extrémité ; traitez la valeur affichée comme un décimal au nombre de décimales demandé, non comme une promesse que la borne supérieure exclusive survive à tout arrondi. L'échec de validation n'est pas facturé. Associez la graine renvoyée à vos propres registres si vous devez prouver qu'une relecture ultérieure a utilisé le même flux. Envoyez par POST un corps JSON avec trois champs obligatoires. minimum est la borne inférieure de l'intervalle et peut aussi arriver comme min, lower ou lo. maximum est la borne supérieure et peut aussi arriver comme max, upper ou hi. seed est la graine du générateur et peut aussi arriver comme key ou salt. Un champ facultatif precision, accepté aussi comme decimals, places ou digits, fixe le nombre de chiffres fractionnaires du décimal renvoyé ; il vaut dix par défaut et doit être un entier de zéro à douze. Chaque champ numérique peut être un nombre JSON ou une chaîne numérique ; les valeurs non finies, les chaînes vides et les champs obligatoires manquants échouent avec invalid_input qui nomme le champ. La règle géométrique dure est que minimum doit être strictement inférieur à maximum. En cas de succès le corps répète le minimum et le maximum analysés, la graine 32 bits non signée qui est réellement entrée dans la récurrence, et la précision appliquée. Il renvoie aussi unit_interval, le u brut arrondi à douze décimales pour inspection, value, le décimal mis à l'échelle arrondi à la précision demandée, et une courte chaîne formula qui reformule l'application affine. Les appels réussis utilisent le tarif de base publié $0.002.
Où un tirage décimal rejouable justifie son emploi
Chaque appel API réussi coûte $0.002 ; une entrée invalide ne consomme pas de solde. L'outil n'est pas une source aléatoire cryptographique, ni un générateur de vecteurs multi-échantillons, ni un remplacement d'une bibliothèque Monte Carlo complète : il renvoie un décimal par requête.
Cas d'intégration
Fixtures de test rejouables
Fixez une graine et des bornes dans l'intégration continue pour qu'un test unitaire attende toujours le même décimal au lieu d'un instantané aléatoire de l'hôte qui change.
Questions techniques
Comment ce générateur de nombre décimal aléatoire choisit-il une valeur ?
Il fait avancer un générateur congruentiel linéaire 32 bits de Numerical Recipes à partir de votre graine, projette l'état suivant sur un échantillon u de l'intervalle unité dans [0, 1), puis renvoie minimum + u × (maximum − minimum), arrondi à la précision demandée.
La même graine produit-elle toujours le même décimal ?
Oui. Le chemin ne lit jamais l'horloge et n'appelle jamais Math.random. Les mêmes minimum, maximum, seed et precision donnent toujours le même unit_interval et le même value.
Combien coûte le générateur de nombre décimal aléatoire ?
L'outil du navigateur est gratuit. Les requêtes API utilisent le solde prépayé KIT à $0.002 par appel réussi ; une entrée invalide n'est pas facturée.