Successione diatomica di Stern / Stern–Brocot
Ottenga qualsiasi termine della successione diatomica di Stern dal suo indice: s(10) vale 3, calcolato con passaggi interi che dimezzano l'indice, così anche gli indici grandi restano esatti. Gratis nel suo browser.
- Gratis
- Funziona nel suo browser
- Senza registrazione
- I suoi dati restano sul dispositivo
Esegui gratis nel browser
Esempio risolto
- N
- 10
- Valore Stern
- 3
- Ricorrenza
- s(0)=0; s(1)=1; s(2k)=s(k); s(2k+1)=s(k)+s(k+1)
La successione diatomica di Stern è una successione intera classica strettamente legata all’albero Stern–Brocot dei razionali positivi. Si definisce con due semi e una regola di scissione sulla parità dell’indice: s di zero è zero, s di uno è uno; quando l’indice è pari e uguale a due k il termine vale s di k; quando è dispari e uguale a due k più uno il termine vale s di k più s di k più uno. L’elenco risultante inizia zero, uno, uno, due, uno, tre, due, tre, uno, quattro, tre, cinque, due, cinque, tre, quattro, e prosegue con la proprietà notevole che termini consecutivi sono sempre coprimi.
Cos’è la successione diatomica di Stern e come funziona la ricorrenza pari/dispari
Inizi con i semi s di zero uguale a zero e s di uno uguale a uno. Per ogni indice successivo la regola dipende solo dalla parità. Se n è pari, scriva n uguale a due k e ponga s di n uguale a s di k — lo stesso valore compare a metà indice.
Se n è dispari, scriva n uguale a due k più uno e ponga s di n uguale a s di k più s di k più uno. Svolgere alcuni passi produce zero, uno, uno, due, uno, tre, due, tre, uno, quattro, tre, cinque, due, cinque, tre, quattro, uno, cinque, quattro, sette, tre, e così via.
Le coppie adiacenti sono sempre coprime, ogni razionale positivo compare esattamente una volta come rapporto consecutivo s di m su s di m più uno percorrendo la successione, e quella enumerazione è esattamente l’albero Stern–Brocot appiattito in ampiezza. La stessa ricorrenza a volte si chiama successione di Calkin–Wilf o Stern–Brocot a seconda della presentazione; questo strumento usa la forma diatomica standard con s di zero uguale a zero.
Poiché ogni passo è addizione intera esatta o un puro dimezzamento di indice, non c’è errore di arrotondamento né dipendenza dall’orologio o da semi casuali. Quando le serve solo un termine, invii l’indice n; la risposta ecoa n, il valore di Stern, una breve stringa di formula per i casi pari e dispari, e la descrizione completa dei semi di ricorrenza così valutatori e studenti ricalcolano a mano o su carta.
Consigli pratici, limiti e ricerche correlate
In valutazione, asserisca sia il campo stern sia la stringa formula così una ricorrenza sbagliata o una confusione con Fibonacci è facile da diagnosticare. Pagine sorelle di questo kit coprono altre intenzioni di successione e figurati come numeri di Padovan, triangolari, poligonali e somme di serie aritmetiche; questa pagina è specificamente per chi cerca una calcolatrice della successione Stern–Brocot, numeri diatomici di Stern o l’n-esimo termine della successione di Stern.
Non tratti l’intero da solo come scatola nera — lo abbini alle regole pari e dispari documentate nell’insegnamento così offset OEIS alternativi non si confondono con la convenzione s di zero uguale a zero usata qui. Limiti n a un miliardo affinché ogni richiesta resti limitata; se le servono indici maggiori, passi a strumenti di interi grandi fuori da questo percorso gratuito di parse.
Casi d'uso
Validatori per gare di programmazione e colloqui
Asserisca soluzioni candidate a problemi di successione di Stern o albero Stern–Brocot senza reimplementare la ricorrenza in ogni banc di prova di linguaggio.
Demo didattiche di coppie consecutive coprime e enumerazione razionale
Proietti n, stern, formula e recurrence in classe così gli apprendenti vedono i semi, le regole pari e dispari e come i rapporti consecutivi coprono i razionali positivi.
Domande frequenti
Cos’è la successione diatomica di Stern?
La successione definita da s(0)=0, s(1)=1, s(2k)=s(k) e s(2k+1)=s(k)+s(k+1). Inizia 0, 1, 1, 2, 1, 3, 2, 3, 1, 4, 3, 5, … ed è legata all’albero Stern–Brocot.
Perché si chiama Stern–Brocot?
Percorrere coppie consecutive s(n)/s(n+1) enumera ogni razionale positivo esattamente una volta — la stessa struttura dell’albero Stern–Brocot di frazioni. La successione stessa è la diatomica di Stern.
Cosa sono s(0) e s(1)?
Nella convenzione usata qui, s(0)=0 e s(1)=1. Ogni termine successivo segue le regole di indice pari e dispari. La risposta ecoa sempre la ricorrenza così i semi sono espliciti.
La calcolatrice della successione Stern–Brocot è gratuita?
Lo strumento browser è gratuito e gira in locale.
Come si calcola s(10) a mano?
Dimezzi l'indice finché è pari e lo scomponga quando è dispari. Poiché 10 è pari, s(10) è uguale a s(5); 5 è dispari, quindi s(5) è s(2) più s(3), cioè 1 più 2, che fa 3.
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/math/stern-brocot \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"n":10}'const res = await fetch("https://api.kit.forhosting.com/math/stern-brocot", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"n": 10
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/math/stern-brocot",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"n": 10
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/math/stern-brocot", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"n":10}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"n":10}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/math/stern-brocot", 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": 10
}Esempio di risposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "math.stern_brocot",
"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 | 1000000000 |
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
Questa capacità restituisce l’esatto n-esimo valore di Stern come oggetto JSON deterministico — senza pacchetto di algebra computazionale, senza approssimazione in virgola mobile, senza chiamata di rete — così correttori di compiti, validatori di gare e demo didattiche vedono lo stesso risultato intero puro nell’esecutore gratuito del browser e sul percorso API prepagato.
Cos’è la successione diatomica di Stern e come funziona la ricorrenza pari/dispari
Gli indici negativi non fanno parte di questa successione classica non negativa: il gestore li rifiuta con invalid_input anziché inventare un’estensione con segno.
Come chiamare l’API e cosa torna
Una risposta di successo include n ecoato, stern uguale a s di n, formula uguale alle regole compatte pari e dispari, e recurrence che documenta i semi insieme a s di due k uguale a s di k e s di due k più uno uguale a s di k più s di k più uno. La usi da pipeline di compiti, validatori di gare di programmazione, sandbox di preparazione ai colloqui, job di arricchimento di notebook o qualsiasi flusso che necessiti di un termine di Stern riproducibile senza installare pacchetti di successioni specializzati su ogni macchina. Per indici multiprecisione oltre quel limite, usi uno stack di interi grandi dedicato al posto di questa capacità leggera di parse. Invii un corpo JSON con un solo campo obbligatorio n: un intero non negativo al più un miliardo, l’indice del termine di Stern desiderato. Gli alias index e order sono accettati con lo stesso significato. Validazione fallita — n mancante, non intero, frazione, valore sopra il limite pubblicato di un miliardo, o qualsiasi numero negativo — restituisce invalid_input e non viene mai addebitata. Il prezzo è un $0.002 fisso per richiesta riuscita con item unitario e prezzo marginale zero. Mantenga n entro il tetto pubblicato; il cammino pari/dispari è logaritmico in n, quindi una singola richiesta resta economica sul Worker e nel browser.
Consigli pratici, limiti e ricerche correlate
Preferisca esempi di classe accoppiati: n uguale a zero dà zero; n uguale a uno dà uno; n uguale a dieci dà tre; n uguale a quindici dà quattro; e un n negativo dimostra il rifiuto rigoroso con invalid_input. Poiché termini consecutivi sono sempre coprimi, gli studenti possono controllare il mcd di s di n e s di n più uno a mano per n piccoli e allinearsi all’API. I task falliti che restituiscono invalid_input non consumano saldo prepagato, il che mantiene economici gli script esplorativi quando gli utenti digitano valori errati imparando il contratto.
Casi di integrazione
Compiti: calcolare l’n-esimo termine diatomico di Stern
Dia agli studenti un indice e confronti il valore di Stern calcolato a mano con un risultato deterministico dell’API o del browser gratuito con la stessa ricorrenza pari/dispari e gli stessi semi.
Domande tecniche
Quali input vengono rifiutati?
N mancante, non interi, valori sopra 1_000_000_000 e qualsiasi numero negativo restituiscono invalid_input. Quei fallimenti non vengono addebitati.