La sfida
Il numero di plastica è un numero correlato al rapporto aureo, con molte proprietà matematiche interessanti. Pertanto, ci sono molti approcci che possono essere utilizzati per calcolare il numero.
Al fine di specificare con precisione il numero ai fini di questa sfida, useremo la seguente definizione (anche se ci sono molte definizioni equivalenti e puoi usare qualsiasi definizione desideri purché si tratti dello stesso numero):
Il numero di plastica è un numero reale ρ tale che ρ ³ = ρ +1.
La tua sfida è scrivere un programma o una funzione che accetta un intero x come input (con x > 1) e produce un'approssimazione a ρ come output, in modo tale che maggiore è il valore di x , più l'output si avvicina a ρ ( con al massimo fin troppe eccezioni, rimanendo allo stesso valore conta come "più vicino" per questo scopo) e per ogni numero positivo δ , c'è un input x nel tuo programma che produce un output che si trova entro δ di ρ .
chiarimenti
- Se si esegue l'output tramite un metodo che genera intrinsecamente stringhe (ad esempio il flusso di output standard), è possibile formattare l'output in decimali (ad esempio
1.3247179572
) o come rapporto di due numeri interi con un/
carattere tra loro. - Se stai fornendo un valore all'interno del tuo linguaggio di programmazione (es. Ritorno da una funzione), deve essere di tipo a virgola fissa, a virgola mobile o razionale. (In particolare, non è possibile utilizzare tipi di dati che memorizzano i numeri in modo simbolico, a meno che non vengano utilizzati solo per contenere il rapporto di due numeri interi. Quindi, se si utilizza Mathematica o un linguaggio simile, è necessario includere codice per generare effettivamente le cifre dell'output.)
- La tua risposta deve funzionare in un'ipotetica variante della tua lingua in cui gli interi possono essere arbitrariamente grandi e la memoria (incluso lo stack) è illimitata. Si può non dare per scontato che in virgola mobile nella tua lingua è arbitrariamente accurata, ma deve invece utilizzare la sua effettiva accuratezza (il che significa che l'emissione di un numero a virgola mobile è solo andare a essere possibile in lingue in cui la precisione dei numeri in virgola mobile può essere controllato in fase di esecuzione).
- x può avere qualsiasi significato tu voglia (purché aumentandolo produca risultati più precisi). Immagino che la maggior parte degli invii controllerà il numero di cifre dell'output da produrre o il numero di iterazioni dell'algoritmo utilizzato dal programma per convergere sul numero di plastica, ma altri significati sono accettabili.
testcase
Ecco le prime cifre del numero di plastica:
1.32471795724474602596090885
Altre cifre sono disponibili su OEIS .
Condizione di vittoria
Come di consueto per il code-golf , il più breve è meglio, misurato in byte. Tuttavia, sentiti libero di pubblicare risposte anche se non vincono, purché aggiungano qualcosa (ad esempio una lingua diversa o un algoritmo diverso) alle risposte esistenti.