Discussione della polizia
In questo thread, il tuo compito è creare un programma / funzione basato sulla ricorsione per generare qualsiasi serie di numeri interi. I ladri cercheranno di trovare una soluzione non ricorsiva più corta nel thread dei ladri .
Sinossi della sfida
In molte lingue, le funzioni ricorsive possono semplificare in modo significativo un'attività di programmazione. Tuttavia, il sovraccarico della sintassi per una corretta ricorsione può limitare la sua usabilità nel code-golf.
I poliziotti creeranno un programma o una funzione prendendo un singolo intero n, che genererà le prime nvoci di una serie di numeri interi, usando solo la ricorsione 1 . Dovrebbero anche assicurarsi che esista un modo più breve e non ricorsivo per generare la sequenza al fine di contrassegnare la loro voce come sicura.
I ladri proveranno a trovare un programma o una funzione più brevi nella stessa lingua, generando le stesse serie di numeri interi, senza ricorrere alla ricorsione 2 .
Se la presentazione dei poliziotti non viene decifrata entro dieci giorni (240 ore), il poliziotto dimostrerà che era effettivamente possibile avere un approccio non ricorsivo più breve rivelando la propria soluzione. Possono quindi contrassegnare la loro presentazione come sicura .
Il vincitore della sfida degli sbirri sarà l' invio più breve (secondo code-golf ) basato sulla ricorsione contrassegnato come sicuro.
Il vincitore della sfida dei ladri sarà il ladro che ha decifrato il maggior numero di soluzioni.
1: deve solo essere ricorsivo nella sintassi; non devi preoccuparti, ad esempio, dell'ottimizzazione delle chiamate di coda.
2: Ancora una volta, non ricorsivo nella sintassi; quindi non puoi pubblicare una soluzione ricorsiva e rivendicarne la compilazione in un ciclo grazie all'ottimizzazione delle chiamate di coda.
Requisiti per la presentazione
Ogni invio prenderà un singolo numero intero n(zero o basato su uno). L'invio quindi produrrà o restituirà le prime nvoci di una serie intera di scelta. (nota che questa serie di numeri interi non deve dipendere da n). Il metodo di input e output può differire tra l'approccio ricorsivo e non ricorsivo. Le serie intere possono essere qualsiasi serie deterministica con una lunghezza di almeno 5. Le serie devono essere spiegate correttamente.
Il tuo invio non deve funzionare per arbitrari di grandi dimensioni n, ma dovrebbe funzionare almeno per n=5. L'approccio non ricorsivo deve essere in grado di funzionare almeno allo stesso nmodo dell'approccio ricorsivo o n=2^15-1, a seconda di, quale sia il più piccolo.
ricorsione
Per il bene di questa sfida, la ricorsione è definita come la creazione della sequenza desiderata usando una funzione (o un costrutto simile a una funzione ) che chiama se stessa (o chiama una sequenza di funzioni che finisce per chiamarsi; questo include costrutti come il combinatore Y). La profondità di ricorsione dovrebbe andare all'infinito così come nall'infinito. L'approccio non ricorsivo è tutto ciò che non è ricorsivo.
nse teoricamente corretto, ma non può essere eseguito a causa di vincoli di tempo o di memoria?
n=5deve essere calcolato
xforsia disponibile attraverso un qualche tipo di importazione?), Quindi forse questa lingua non può competere.
forviene fatto da ricorsivo dietro, èforricorsivo o loop?