Paradosso dei compleanni: calcolatrice del giorno condiviso per n persone
In un gruppo di sole 23 persone, la probabilità che due condividano il compleanno è già circa il 50 %, anche se l’anno ha 365 giorni. Inserisci la dimensione del gruppo e il numero di giorni e ottieni la probabilità esatta. Gratis nel tuo browser.
- Gratis
- Funziona nel suo browser
- Senza registrazione
- I suoi dati restano sul dispositivo
Esegui gratis nel browser
Esempio risolto
- N
- 23
- Numero di giorni possibili
- 365
- Probabilità
- 0,5072972343
- Tutti distinti
- 0,4927027657
Il paradosso dei compleanni è il fatto sorprendente che in un gruppo di sole ventitré persone la probabilità che almeno due condividano il compleanno è già di circa il cinquanta per cento, pur essendo l'anno di trecentosessantacinque giorni. La stessa matematica si applica a qualsiasi problema di collisione: bucket di hash, fasce di riunioni, codici casuali o calendari personalizzati con d etichette possibili. Questa calcolatrice prende la dimensione del gruppo n e il numero di giorni d, moltiplica il prodotto complementare secondo cui tutti i compleanni sono distinti e restituisce uno meno quel valore come probabilità decimale stabile. I valori di n o d inferiori a uno vengono rifiutati con un chiaro errore di validazione, così che input incompleti o privi di senso non producano mai una falsa certezza silenziosa. I risultati sono aritmetica completamente deterministica, senza campionamento e senza modello linguistico.
Cosa misura il paradosso dei compleanni e perché sorprende
La maggior parte delle persone stima il rischio di compleanni condivisi confrontando la dimensione del gruppo con la durata dell'anno. Questa intuizione cerca una coincidenza con una persona fissa, quindi sottostima gravemente le collisioni. La domanda corretta è se una qualsiasi coppia del gruppo collide.
Con n persone esistono n su due coppie, e ogni coppia ha una piccola probabilità di coincidere in uno dei d giorni. Questi eventi di coppia non sono indipendenti, quindi la forma chiusa e pulita lavora con il complemento: si parte dalla probabilità che ogni persona cada in un giorno ancora libero e poi si sottrae da uno. Formalmente, fissi un ordinamento arbitrario del gruppo.
La prima persona può avere qualsiasi giorno. La seconda deve evitare il giorno della prima, il che riesce con probabilità (d meno uno) su d. La terza deve evitare entrambi i giorni precedenti quando erano distinti, e così via.
Moltiplicando questi termini successivi si ottiene P(tutti distinti). Uno meno quel prodotto è P(almeno un giorno condiviso). Per il calendario abituale, con d uguale a trecentosessantacinque e n uguale a ventitré, il prodotto scende appena sotto un mezzo, quindi la probabilità del giorno condiviso supera il cinquanta per cento.
Con n uguale a cinquantasette il valore è già oltre il novantanove per cento. La stessa formula funziona per modelli di anno bisestile con trecentosessantasei giorni, settimane lavorative corte con sette fasce o spazi di etichette sintetici come i prefissi PIN a quattro cifre. Comprendere il prodotto complementare basta a demistificare il paradosso senza rumore di Monte Carlo né tabelle di combinazioni di coppie.
Casi d'uso
Intuizione sulle collisioni di hash e identificatori
Gli ingegneri illustrano limiti di compleanno approssimati per codici brevi, chiavi di cache o etichette di bucket impostando d alla dimensione dello spazio delle etichette e scandendo n finché la probabilità di condivisione diventa inaccettabile.
Oracoli deterministici per test e strumenti
Piattaforme di colloqui, app di quiz e suite di CI chiamano un oracolo stabile che rifiuta n o d inferiori a uno e restituisce campi di probabilità identici per input identici.
Domande frequenti
Cosa succede se n o d è inferiore a 1?
Sono richieste almeno una persona e almeno un'etichetta di giorno; i valori zero e negativi vengono rifiutati e non addebitati.
Perché la probabilità è già circa il 50% con 23 persone?
La calcolatrice moltiplica la probabilità che ogni nuova persona eviti tutti i compleanni precedenti tra 365 giorni.
La calcolatrice del paradosso dei compleanni è gratuita?
Lo strumento del browser funziona gratuitamente sul Suo dispositivo.
Usa simulazione o campionamento casuale?
No. Valuta il prodotto complementare chiuso con aritmetica deterministica in virgola mobile (spazio logaritmico per la stabilità). Gli stessi n e d restituiscono sempre la stessa probabilità, senza rumore di Monte Carlo.
Posso usare un numero di giorni diverso da 365?
Sì. Il numero di giorni può essere qualsiasi intero da 1 a 1000000, quindi la stessa formula vale per un anno bisestile, 7 giorni della settimana, fasce orarie di riunione o codici casuali di cui vuoi misurare la probabilità di collisione.
Strumenti correlati
Per sviluppatori — accesso via API
Tutto quello che vedi in questa pagina è disponibile anche via API. Questa sezione è per i team che vogliono integrarlo nei propri sistemi; chi non ne ha bisogno può semplicemente usare lo strumento qui sopra.
Endpoint
Autenticazione con Bearer token: un POST mette in coda l'attività e il risultato arriva via webhook o link firmato.
Chiamala dal tuo stack
curl -X POST https://api.kit.forhosting.com/prob/birthday-paradox \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"n":23,"d":365}'const res = await fetch("https://api.kit.forhosting.com/prob/birthday-paradox", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"n": 23,
"d": 365
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/prob/birthday-paradox",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"n": 23,
"d": 365
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/prob/birthday-paradox", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"n":23,"d":365}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"n":23,"d":365}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/prob/birthday-paradox", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Esempio di richiesta
{
"n": 23,
"d": 365
}Esempio di risposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "prob.birthday_paradox",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L'API è asincrona: ricevi subito un task_id e puoi fare polling fino a 1 richiesta al secondo.
Prezzi
Prezzo pubblicato, senza token né crediti. Se l'attività fallisce, non paghi.
Limiti
max_n | 100000 |
max_d | 1000000 |
Errori
| HTTP | Codice | Significato |
|---|---|---|
401 | unauthorized | Chiave API mancante o non valida: controlla l'header Authorization. |
402 | insufficient_balance | Credito esaurito: ricarica per continuare a eseguire attività. |
404 | unknown_type | Tipo di attività sconosciuto: controlla il campo type della richiesta. |
429 | rate_limited | Troppe richieste in poco tempo: rallenta e riprova tra qualche secondo. |
Note tecniche
Come questa calcolatrice convalida l'input e valuta il prodotto
Chiami la capacità con due interi obbligatori: n, il numero di persone, e d, il numero di giorni possibili o etichette distinte. Il motore verifica che entrambi i valori siano interi finiti entro i limiti pubblicati: n da uno a centomila, e d da uno a un milione. La moltiplicazione in spazio logaritmico tiene i prodotti intermedi lontani dall'underflow prematuro quando i gruppi crescono, restando pura aritmetica double deterministica. Sono accettati gli alias people o group_size per n, e days o labels per d. Campi mancanti, non interi, n inferiore a uno, d inferiore a uno e valori oltre i massimi falliscono con invalid_input e non vengono addebitati. Dopo la convalida, se n è maggiore di d, il principio dei cassetti si applica immediatamente: almeno due persone devono condividere un giorno, quindi probability è uno, all_distinct è zero e guaranteed è true. Altrimenti il motore accumula il logaritmo di ciascun fattore (d meno i) su d per i da uno a n meno uno, esponenzia la somma, riporta il risultato in virgola mobile nell'intervallo unitario e restituisce probability pari a uno meno quel valore di all_distinct. I campi della risposta sono n, d, probability, all_distinct e guaranteed.
Uso pratico, limiti, prezzi e canali di distribuzione
Usi lo strumento del browser quando desidera una probabilità di collisione istantanea mentre insegna probabilità discreta, progetta un gioco di abbinamenti o verifica perché ventitré è la famosa soglia delle aule per trecentosessantacinque giorni. I risultati sono completamente deterministici: gli stessi n e d producono sempre la stessa probabilità, lo stesso complemento e lo stesso flag guaranteed. Non c'è modello linguistico, servizio esterno di probabilità né casualità, quindi la capacità può essere fissata in sicurezza nei controlli di integrazione continua e nei materiali didattici riproducibili. Usi l'API quando uno script, una piattaforma didattica, una sandbox per colloqui, una demo di collisioni di hash o un pianificatore di capacità ha bisogno di JSON stabile per molte coppie (n, d) sotto un unico contratto. Ogni richiesta riuscita è un articolo fatturabile a $0.002; la validazione fallita non consuma saldo. Gli intervalli accettati mantengono il prodotto O(n) limitato per gli isolate Worker, coprendo al contempo calendari scolastici, spazi di etichette pluriennali e bucket sintetici ben più grandi di un solo anno. Colleghi l'endpoint a tutorial di probabilità, oracoli per colloqui di programmazione, stimatori di collisioni di pianificazione o dimostrazioni didattiche di crittografia in cui preferisce il classico prodotto complementare a istogrammi di campionamento approssimati che non si stabilizzano mai del tutto sul valore vero.
Casi di integrazione
Verifiche in aula e sui libri di testo
Docenti e studenti verificano la classica soglia n=23, d=365 ed esplorano come cambiare la durata del calendario sposti l'incrocio del cinquanta per cento senza calcolare a mano lunghi prodotti.
Domande tecniche
Come si calcola la probabilità del paradosso dei compleanni?
Invii un JSON con gli interi n (persone) e d (giorni possibili) a prob.birthday_paradox. La risposta include la probabilità di almeno un giorno condiviso, il complemento all_distinct e un flag guaranteed quando n supera d.