警官のスレッド
このスレッドでのタスクは、再帰ベースのプログラム/関数を作成して整数系列を生成することです。強盗は、強盗のスレッドでより短い非再帰的な解決策を見つけようとします。
チャレンジの概要
多くの言語では、再帰関数はプログラミングタスクを大幅に簡素化できます。ただし、適切な再帰の構文オーバーヘッドにより、コードゴルフでの使いやすさが制限される場合があります。
COPSは、単一の整数服用プログラムや関数作成するn
最初の生成され、n
整数系列のエントリをのみ再帰使用1。また、エントリを安全としてマークするために、シーケンスを生成する短い非再帰的な方法があることを確認する必要があります。
強盗は見つけようとします短く、同じ整数シリーズを生成し、同じ言語でプログラムまたは機能を一切再帰使用していない2。
警察官の提出物が10日(240時間)以内にクラックされない場合、警察官は独自の解決策を明らかにすることにより、より短い非再帰的アプローチが実際に可能であったことを証明します。その後、提出物を安全とマークすることがあります。
copsチャレンジの勝者は、安全とマークされた最短の(code-golfによる)再帰ベースのサブミッションです。
強盗チャレンジの勝者は、ほとんどのソリューションをクラックした強盗です。
1:構文が再帰的であれば十分です。テールコールの最適化などを心配する必要はありません。
2:繰り返しますが、構文は非再帰的です。そのため、末尾呼び出しの最適化のおかげで、再帰的なソリューションを投稿し、ループにコンパイルされたと主張することはできません。
提出要件
各提出には、単一の整数n
(ゼロベースまたは1ベース)が必要です。送信するとn
、選択した整数シリーズの最初のエントリが出力または返されます。(この整数系列はに依存してはならないことに注意してくださいn
)。入力方法と出力方法は、再帰的アプローチと非再帰的アプローチで異なる場合があります。整数シリーズは、長さが5以上の任意の確定的シリーズです。シリーズは適切に説明する必要があります。
あなたの提出は任意の大規模n
で働く必要はありませんが、少なくとも働くはずn=5
です。非再帰的アプローチは、少なくともn
再帰的アプローチと同じか、最大でn=2^15-1
、どちらか小さい方まで機能する必要があります。
再帰
この課題のために、再帰は、それ自体を呼び出す関数(または関数に似た構造)を使用して目的のシーケンスを作成することとして定義されます(または、それ自体を呼び出すことになる関数のシーケンスを呼び出します。これには、Yコンビネーターのような構造が含まれます)。再帰の深さは、無限大になるn
につれて無限大になるはずです。非再帰的アプローチは、再帰的ではないものです。
n
理論的には正しいが、時間やメモリの制約のために実行できない場合ますか?
n=5
計算する必要があります
xfor
何らかのインポートで利用できます)。したがって、おそらくこの言語は競合できません。
for
背後で再帰によって行われる、for
再帰またはループですか?