プログラミングパズルとコードゴルフ

プログラミング愛好家やコードゴルファーのためのQ&A

6
相互ネガティブクイン
これは、触発された、あなたのコードのネガプリントとゴルフ相互QUINE。 以下の制限を満たす文字の長方形を 考えてみましょう。 印刷可能なASCII文字のみで構成されます 両方とも1より大きい寸法 各行と各列には、少なくとも1つのスペースが含まれます。 各行と各列には、少なくとも1つの非スペース文字が含まれています。 たとえば、次は有効な6x4の長方形です。 %n 2e 1 g 3 &* __ 3 この長方形の負の値は、すべてのスペースが非スペース文字で置き換えられ、すべての非スペース文字がスペースで置き換えられた、等しい寸法の長方形であると定義されます。上記の長方形の負の値は次のとおりです。 f ^ 33 > 9 $ ^ }|Q' スペースを置き換えるには、スペース以外の印刷可能なASCII文字を使用できます。 仕事 あなたの仕事は、長方形のソースコードを使用してプログラムを作成し、有効なネガをそれ自体に出力することです。出力されるネガも、オリジナルと同じ言語の有効なプログラムである必要があり、オリジナルのソースを出力する必要があります。 いずれかの出力の末尾にある単一の末尾の改行を除き、末尾の空白は追加または削除できません。これはオプションです。 どちらのプログラムも、どちらのソースコードも読み取ることはできません。また、REPL環境を想定することもできません。 得点 スコアは、コードの次元の積です(つまり、ソースコードが12 x 25の長方形の場合、スコアは12 * 15 = 180です)。さらに、コメントで使用される各文字について、スコアは2増加/* .. */します(コードで1回使用し、コードが10 x 10の長方形にある場合、スコアは10 * 10 + 8 * 2 = 116になります)。 …

7
長方形で地域をカバーする
入力 このチャレンジでの入力は、整数ペアのリストです。それらは平面上の単位正方形の南西の角を表し、リストは平面のサブセットとしての結合を表します。たとえば、リスト [(0,0),(1,0),(0,1),(1,1),(2,1),(1,2),(2,2)] この図の赤色のセットを表します。 出力 Yor出力は、平面の長方形のサブセットを表す整数の4つのリストです。より明確に、(x,y,w,h)四角は、南西隅がである幅w > 0と高さの長方形を表現h > 0し(x,y)ます。長方形は、各単位正方形がいくつかの長方形のサブセットであり、各長方形が領域のサブセットであるという意味で、入力領域を正確にカバーする必要があり、2つの長方形は境界でのみ重なり合う場合があります。些細な解決策を禁止するために、より大きな長方形にマージできる2つの長方形をカバーに含めることはできません。 たとえば、リスト [(0,0,2,1),(0,1,3,1),(1,2,2,1)] 法的カバーを表します 上記の領域の [(0,0,2,2),(2,1,1,1),(1,2,1,1),(2,2,1,1)] 隣接する1行1列の正方形をマージできるため、違法です。 ルール 完全なプログラムまたは機能を提供できます。入力と出力の正確なフォーマットは、理由の範囲内では重要ではありません。最短バイトカウントが優先され、標準の抜け穴は許可されません。アルゴリズムの説明といくつかの出力例を提供することをお勧めします。 テストケース U字型の領域: [(0,0),(0,1),(0,2),(0,3),(0,4),(0,5),(1,0),(1,1),(1,2),(1,3),(1,4),(1,5),(2,0),(2,1),(3,0),(3,1),(4,0),(4,1),(4,2),(4,3),(4,4),(4,5),(5,0),(5,1),(5,2),(5,3),(5,4),(5,5)] 大きな三角形: [(0,0),(0,1),(0,2),(0,3),(0,4),(0,5),(0,6),(0,7),(0,8),(0,9),(1,0),(1,1),(1,2),(1,3),(1,4),(1,5),(1,6),(1,7),(1,8),(2,0),(2,1),(2,2),(2,3),(2,4),(2,5),(2,6),(2,7),(3,0),(3,1),(3,2),(3,3),(3,4),(3,5),(3,6),(4,0),(4,1),(4,2),(4,3),(4,4),(4,5),(5,0),(5,1),(5,2),(5,3),(5,4),(6,0),(6,1),(6,2),(6,3),(7,0),(7,1),(7,2),(8,0),(8,1),(9,0)] 穴のある正方形: [(0,0),(0,1),(0,2),(0,3),(0,4),(0,5),(0,6),(0,7),(0,8),(1,0),(1,1),(1,2),(1,3),(1,4),(1,5),(1,6),(1,7),(1,8),(1,9),(2,0),(2,1),(2,2),(2,3),(2,4),(2,5),(2,6),(2,7),(2,8),(2,9),(3,0),(3,1),(3,2),(3,4),(3,5),(3,6),(3,7),(3,8),(3,9),(4,0),(4,1),(4,2),(4,3),(4,4),(4,5),(4,6),(4,7),(4,8),(4,9),(5,0),(5,1),(5,2),(5,3),(5,4),(5,5),(5,7),(5,8),(5,9),(6,1),(6,2),(6,3),(6,5),(6,6),(6,7),(6,8),(6,9),(7,0),(7,1),(7,2),(7,3),(7,4),(7,5),(7,6),(7,7),(7,8),(7,9),(8,0),(8,1),(8,2),(8,3),(8,4),(8,5),(8,6),(8,7),(8,8),(8,9),(9,0),(9,1),(9,2),(9,3),(9,4),(9,5),(9,6),(9,7),(9,8),(9,9)] 切断された領域: [(0,0),(0,1),(0,2),(0,3),(0,4),(0,5),(0,6),(0,7),(0,8),(1,0),(1,1),(1,2),(1,3),(1,4),(1,6),(1,7),(1,8),(1,9),(2,1),(2,2),(2,3),(2,4),(2,5),(2,6),(2,7),(2,8),(2,9),(4,0),(4,1),(4,2),(4,4),(4,5),(4,6),(4,7),(4,8),(4,9),(5,0),(5,1),(5,2),(5,3),(5,4),(5,5),(5,6),(5,7),(5,8),(5,9),(6,0),(6,1),(6,2),(6,4),(6,5),(6,6),(6,7),(6,8),(6,9),(8,0),(8,1),(8,2),(8,3),(8,4),(8,5),(8,6),(8,7),(8,8),(8,9),(9,0),(9,1),(9,2),(9,3),(9,7),(9,8),(9,9),(10,0),(10,1),(10,2),(10,3),(10,4),(10,5),(10,6),(10,7),(10,8),(10,9)] 検証者 この Python 2プログラムを使用して、ソリューションを検証します。STDINから、コンマで区切られたタプルのリスト(入力)と4倍のリスト(出力)を受け取ります。 また、この Python 2プログラムを作成して写真を生成しましたが、これも使用できます。STDINからタプルまたは4つのいずれかのリストを取得し、という名前のファイルを生成しますout.png。PILライブラリが必要です。必要に応じて、グリッドセルのサイズとグリッド線の幅も変更できます。

10
グリッドルーティングバトル
注:試合を実行するために必要な言語をインストールできないため、この課題は現在無効です。他の誰かがそれをする時間と興味を持っているなら、私は反対しません。 リーダーボードについては、投稿の下部をご覧ください。 これは、ボットが2次元グリッドグラフを介してパスを構築する、準協力的なキングオブザヒルチャレンジです。最もトラフィックの多いノードを制御するボットが勝者です。ただし、実際に接続パスを構築するには複数のボットのリソースが必要なので、ボットはある程度連携する必要があります。 ゲームプレイ 以下ではN > 0、プレイ中のボットの数をみましょう。 グリッド ゲームは、サイズの2次元整数グリッドで再生されます。そのグリッドの左下座標はです。各座標と3点の座標への発信エッジ有し、およびその上、-coordinatesはモジュロを取られるが 。これは、グリッドが東端と西端で折り返されることを意味します。すべての下部座標はソースであり、すべての上部座標はシンクです。⌊4/3N2⌋ × ⌊4/3N2⌋(0,0)(x,y)0 ≤ y < ⌊4/3N2⌋-1(x-1,y+1)(x,y+1)(x+1,y+1)x⌊4/3N2⌋(x,0)(x,⌊4/3N2⌋-1) 次の図は8 × 8グリッドを示しています。 グラフの各頂点は、非アクティブ、アクティブ、または破損しています。すべての頂点は非アクティブで開始され、ボットによってアクティブ化できます。ボットはその後、所有者になります。また、ボットは頂点を破壊する可能性があり、修復できません。 順番を変える ターンは破壊フェーズと活性化フェーズで構成されます。破壊フェーズでは、各ボットが1つの非アクティブな頂点を破壊する場合があります。その頂点はそれ以降壊れていて、だれもアクティブにできない可能性があります。アクティブ化フェーズでは、各ボットが1つの非アクティブな頂点をアクティブ化できます。それ以降、彼らはその頂点を所有し、他の誰もそれを再アクティブ化することはできません。複数のボットが1つの頂点を所有している場合がありますが、それらがすべて同じターンにアクティブ化される場合です。各フェーズでは、頂点の選択が同時に行われます。 得点 1ラウンドは正確なターンの間続きます。この後、ラウンドは次のように採点されます。アクティブな各ソース頂点から、アクティブな頂点に沿ってランダム化された深さ優先探索を実行します(つまり、各頂点の子がランダムな順序でアクセスされます)。ソースからシンクへのパスが見つかった場合、そのパスに沿ったすべての頂点について、頂点のすべての所有者が1ポイントを取得します。N2N ゲーム全体は100ラウンド続き、全体で最もポイントの多いボットが勝者となります。スコアの分散が高すぎる場合、この数を増やすことができます。 追加の規則 コントローラや他の提出物をいじることはありません。 出場者ごとに最大1つの提出。 1つのプライベートテキストファイルを除き、ゲームの開始時に完全に消去された外部リソースはありません。 特定の敵を倒したりサポートしたりするようにボットを設計しないでください。 ボットをコンパイルして実行するコマンドを提供します。Debian Linuxで自由に利用できるコンパイラ/インタープリターはすべて受け入れられます。 コントローラー コントローラーはPython 3で作成されており、GitHubにあります。詳細な手順については、READMEファイルを参照してください。開始するためのAPIは次のとおりです。 ボットは各ラウンドの開始時に開始され、ラウンドの終了まで持続します。改行で終了するメッセージを使用して、STDINおよびSTDOUTを介してコントローラーと通信します。 BEGIN [num-of-bots] [num-of-turns] [side-length] 先頭に入力されます。 DESTROY [turn]各破壊フェーズの開始時に入力されます。ボットはVERTEX x,y、頂点を選択するか、で応答しますNONE。 BROKEN [turn] [your-choice] [other-choices]各破壊フェーズの終わりに入力されます。他のボットの順序は各ゲームの開始時にランダム化されますが、その間は固定されたままです。選択肢はx,yまたはとして表示されNます。 ACTIVATE [turn]およびOWNED …

9
与えられた方程式が真である基底を決定する
3つの整数が与えられた場合、最初の2つの整数が3番目の整数に乗算するための可能な最小の基底を決定します。生命、宇宙、そしてすべての究極の質問に対する答えを考えるなら、6 * 9 == 42はベース13に当てはまります。 入力には、数字が0〜9、a〜z、およびA〜Zを使用する任意の数字を含めることができます。ここで、a基数10では10、基数10ではZ61です。 入力は任意の方法で入力する必要があり(ハードコーディングを除く)、個々の関数またはプログラム全体を記述できます。 考慮しなければならない最大ベースはベース62、最小ベースはベース2です。 最初の2つの値は3番目の値よりも小さいと仮定できます。また、最小基数は入力の最上位桁/文字よりも1つ大きいと結論付けることができます(たとえば、入力がの3 1a 55場合、最小基数はa最上位桁であるためBase 11になります)。 そのようなベースがない場合、選択したジャンク値を返します。 これはコードゴルフなので、最短のコードが勝ちます。 テストケース 6 9 42 --> 13 a a 64 --> 16 aA bB 36jk --> 41 2 3 20 --> <junk value> 10 10 100 --> 2

9
シーザーサイファーマニア
シーザーサイファーは、各文字が固定された(AとZの周りにループ)オフセットだけシフトされた非常に単純な換字式暗号です。同様に、印刷可能なASCII文字のセットに対してCaesar暗号を使用することもできます。これらは、コードポイント0x20から0x7Eまでの95文字です。与えられたoffsetに対してd、コードポイントCを (C - 32 + d) % 95 + 32 これは、すべての文字をaだけシフトdし、~からスペースにループします。この範囲外の文字(改行、タブ、ASCII範囲外の文字などの制御文字)は影響を受けません。 オフセットdと文字列をとる2つのプログラムまたは関数を(場合によっては異なる言語で)作成します。最初のプログラムは、入力のシーザー暗号を返すか印刷する必要があります。2番目のプログラムは、逆シーザー暗号を返すか印刷する必要があります(つまり、offsetを使用-d)。STDIN、コマンドライン引数、または関数引数を介して入力を受け取ることができます。 物事をより面白くするために、2番目のプログラムは最初のプログラムのシーザー暗号でなければなりません。つまり、最初のプログラムのソースコードを自身に渡す場合、ゼロ以外のオフセットのd場合、出力は2番目のプログラムでなければなりません。 両方のプログラムと入力文字列には、印刷可能なASCII文字、改行、タブのみを含める必要があります。どちらのプログラムにもコメントを含めたり、独自のソースコード、ファイル名、プロセスIDを直接または間接的に読み取ることはできません。 これはコードゴルフなので、最短の回答(バイト単位)が勝ちです。両方のプログラムのサイズは同じである必要があるため、カウントする必要があるのは一度だけです。

5
オニオンプログラミング
印刷可能なASCII(16進コード20から7E)のみを使用して、4つのレイヤーに囲まれたコメントなしの正方形のN×N コアプログラムを記述し、(N + 8)×(N + 8)正方形プログラムを作成します(N> 0) 。N = 3の場合、レイアウト(実際のコードに置き換えられる)は次のようになります。 44444444444 43333333334 43222222234 43211111234 4321CCC1234 4321CCC1234 4321CCC1234 43211111234 43222222234 43333333334 44444444444 Cはコア3×3プログラムを表します。 1は1番目のレイヤーを表し、2は2番目のレイヤーを表します。 プログラムは常に、0 -1 31 -1 2 2 2stdin などのようなスペースで区切られた整数の文字列を使用します(単なる数字で、引用符や角かっこなどは使用できません)。出力は、レイアウトのどの部分が実行されたかによって異なります。 プログラムを実行するには5つの方法があります(実行には改行が含まれます)。それぞれがリストとは異なることを行います: コアのみを実行します。 CCC CCC CCC これにより、入力リスト要素の絶対値の最大値が計算さCOREれ、何度も新しい行に出力されます。最大値が0の場合、何も出力されません(改行で問題ありません)。 以下のための出力0 -1 31 -1 2 2 2になります CORE CORE ... 31回。 レイヤー1でコアを実行します。 11111 …

3
「展開」された回数を出力する正方形プログラムを作成する
1より大きい奇数の整数Nに対して、テキストの正方形のブロック、幅N文字、高さNを考えます。 例として、N = 5とし、テキストを次のようにします。 MLKJI NWVUH OXYTG PQRSF ABCDE これは、左下隅から反時計回りに螺旋状になったアルファベット(Zを除く)であることに注意してください。まるで丸いカーペットのようなものです。 テキストを時計回りに4分の1回転だけ「展開」FGHIすると、次のABCDE結果と同じレベルになります。 PONM QXWL RYVK STUJ ABCDEFGHI この展開は、テキストが1行になるまでさらに7回実行できます。 SRQP TYXO UVWN ABCDEFGHIJKLM UTS VYR WXQ ABCDEFGHIJKLMNOP WVU XYT ABCDEFGHIJKLMNOPQRS XW YV ABCDEFGHIJKLMNOPQRSTU YX ABCDEFGHIJKLMNOPQRSTUVW Y ABCDEFGHIJKLMNOPQRSTUVWX ABCDEFGHIJKLMNOPQRSTUVWXY チャレンジ 課題は、展開パターンに再配置して実行したときに、1/4回転で「展開」した回数を出力するテキストのN×Nブロックであるプログラムを作成することです。 ここには本当に2つのコンテストがあります:(うまくいけば乱雑になりません) 最小のNでこれを行います(N = 3の制限まで) 最大のNでこれを行います(制限なし) 受け入れられる回答はありませんが、これらの各カテゴリの勝者には、少なくとも50の報奨金が返されます。同点の場合、最も古い回答が勝ちます。 例 コードブロックが MyP rog ram そのまま実行すると、0が出力されます。 …

9
ASCIIピアノの音楽クイン
標準のピアノには88個のキーがあり、印刷可能なASCII文字は95 個あります(16進コード20〜7E): !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ (「文字」とは、これから印刷可能なASCII文字を指します) で、このJSFiddle Iというの利点を取られ、使用したピアノ曲を生成する単純な構文行ったAudioSynthを。(リンク可能な本物のピアノの音のセットに誰かが私を導くことができれば、私は感謝します。) 入力文字列の各文字は、() 01+-ピアノキーに対応しています。 CHARACTER: ! " # $ % & ' * , . / 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O …

13
KOTH:戦う町
最終結果はこちら! 前書き ゲームテイクは、マヌーのゲームオブタウンに強く触発されています。剣と魔法の世界で行われます。大陸全体を支配していた王が亡くなり、多くの都市国家の領主たちが領土をめぐって戦っている。あなたはこれらの領主の一人であり、あなたの目標はすべての町を征服し、支配することです。 原理 人々は8つのクラスに分かれています: Warlocks : Fighter (magic) Crusaders : Fighter (melee) Amazons : Fighter (range) Corsairs : Utility (steal, guard, transport) Bishops : Utility (convert, exorcize) Necromancers : Utility (resurrect) Architects : Utility (build) Peons : Resource (income, recruits) ゲームが始まると、1つの町を支配します。各町には100人がいます。これらの8つのカテゴリにそれらを分割する必要があります。 その後、実際のゲームが始まります。これはターンベースです。ターンは12段階で構成され、そのうち7 段階は対話型です(ボットにコマンドを要求します)。次のフェーズは、前のフェーズがすべての町で実行されたときに始まります(フェーズ1:タウン1、タウン2、タウン3 ...;フェーズ2:タウン1、タウン2、タウン3 ...): 1. Raise Taxes - …

14
丸められていない分数
分数を10進数に変換し、その数値を格納する場合、特定の量のメモリのみを使用するため、多くの場合、丸める必要があります。5桁の10進数しか保存できないとすると、5/3は1.6667になります。2桁の10進数しか保存できない場合は、1.7になります(常に0〜9.99の間にあると仮定します...)。 1.7でそのプロセスを逆にしようとして、端数を取り戻したい場合、1.7は丸められた数値にすぎないことがわかっているため、それは難しい場合があります。もちろん、17/10を試すこともできますが、それは「エレガントな」5/3と比べてかなり「ugい」部分です。 そのため、目標は、分母bが最小の分数a / bを見つけることです。これにより、正しく丸められたときに丸められた10進数が得られます。 詳細 入力には、0(含む)から10(含まない)の「。」の1から5桁までの数字の文字列が含まれます。最初の数字の後。n桁数を表すとしましょう。出力は[numerator, denominator]、分子が非負で分母が正である2つの整数のリスト/配列または合理的なデータ型(独自に作成するか、組み込みを使用できます)である必要があります。分数の分子/分母は、n数字(n-1小数点以下の数字を意味する)に正しく丸められる場合、入力と等しくなければなりません。 制限:許可されるループステートメントは1つだけです。つまり、コード全体で単一のループステートメント(foror whileまたはgotoetcなど、およびリスト/配列のすべての要素にコードを適用する、mapまたはfoldそのような機能ループ)のみを使用できますが、それを「乱用」することは自由ですまたは再帰などを使用します 関数を作成する必要があります。言語に関数がない場合(またはある場合でも)、入力が変数(またはstdin経由の入力)に格納されていると仮定して、結果を出力するか、ファイルに書き込むことができます。最も少ないバイト数が優先されます。 丸め 丸めは「従来の」丸め規則に従う必要があります。つまり、切り捨てられる最後の数字が5以上の場合、切り上げ、他の場合は切り捨てます。たとえば、 四捨五入すると4.5494になります 1桁:5 2桁:4.5 3桁:4.55 4桁:4.549 例 次のテストケースとその他の「興味深い」テストケースを含めてください。 Input 1.7 Output 5/3 Input 0. Output 0/1 Input 0.001 Output 1/667 Input 3.1416 Output 355/113

2
手書き数字を認識する
あなたの仕事は、手書きの数字を含む画像を読み取り、数字を認識して印刷することです。 入力: 28 * 28のグレースケールイメージ。スペースで区切られた0から255までの784のプレーンテキスト番号のシーケンスとして指定されます。0は白を意味し、255は黒を意味します。 出力:認識された数字。 スコアリング:MNISTデータベーストレーニングセット(ASCII形式に変換)からの1000枚の画像でプログラムをテストします。既に画像を(ランダムに)選択していますが、リストは公開しません。テストは1時間以内に終了する必要がありn、正しい答えの数を決定します。 nプログラムが対象となるには、少なくとも200である必要があります。ソースコードのサイズがの場合、sスコアはとして計算されs * (1200 - n) / 1000ます。最低スコアが勝ちます。 ルール: プログラムは標準入力から画像を読み取り、標準出力に数字を書き込む必要があります 組み込みOCR機能なし サードパーティライブラリなし 外部リソース(ファイル、プログラム、Webサイト)はありません プログラムは、自由に利用可能なソフトウェアを使用してLinuxで実行可能である必要があります(必要に応じて、ワインを使用できます) ソースコードはASCII文字のみを使用する必要があります 回答を修正するたびに、推定スコアと一意のバージョン番号を投稿してください 入力例: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 …

2
DNA:デオキシリボ核酸ASCII
アデニン、シトシン、グアニン、およびチミンの塩基のシーケンス(としてエンコードACGT)を指定すると、対応するDNAの2本鎖のASCIIアート表現を生成することになります。 ストランドは垂直に伸びます。左側のストランドは、入力として指定されたストランドです。右側の鎖はその補数になります。DNAに精通していないものについては、Aと対になっているTとCして対になっていますG。さらに、すべての塩基で同一である二本鎖の両側に骨格構造があります。したがって、入力が与えられた場合TAGCAT、ASCIIアートの大規模な構造は次のようになります。 BTAB BATB BGCB BCGB BATB BTAB ここでBバックボーンを表します。これらの文字はそれぞれ分子全体を表していて、実際の分子構造を再現しています。 拠点 各塩基に対して次のテンプレート1を使用します(各塩基は、相補的な塩基と2つの骨格分子とともに表示されます)。 1 ASCIIレイアウトを手伝ってくれたPeter Taylorの功績。 アデニン O O \\ / P / \ --O O / | < N NH2 ..... O * | \ // \ / \\ / | +--O // ---- ---- | | \ | // \\ …

20
コードを組み合わせロックにクラックする
写真のような標準の組み合わせロックを考えてみましょう。ロックを解除する方法は、組み合わせ行のコードの4つの数字を揃えることです。長年の忠実なサービスの後、あなたはロック工場から解雇され、ロックを送り出す前にジャムをしないことで正確な復geを決定しました。 また、他の行の数字の順序を確認することで、組み合わせ行にある数字を決定することができることを知っています(したがって、ロックを解除する組み合わせがあります)。 ロックのすべての行に、組み合わせ行(ロックを解除する行)の行0から行9までの番号が与えられている場合。たとえば、行4の番号がの場合、5336ロックを解除する組み合わせはになります1992。 残念ながら、ロックはすでにパッケージ化されており、各ロックの表示が不明瞭になっているため、ロックの異なる行の数字しか見ることができません。 チャレンジ 整数の最初の桁が行番号を表し、2番目の桁がその行に表示される番号を表す4桁の数字が与えられたら、ロックへの組み合わせを計算します。たとえば、次を入力した場合: 57 23 99 45 次に、出力する必要があります: 2101 または 25 78 63 15 そして 3174 入力は常に `25 64 72 18の形式の4つの正の整数であると仮定します。 これはcode-golfであるため、バイト数の最も短いプログラムが優先されます。 また、これは私の最初の質問ですので、フィードバックを歓迎します。
22 code-golf 

1
2次元リストを45度回転する
仕事 目標は、2次元のリストを45度回転するプログラムを作成することです。リストを返す前に、これを最大7 * 45(一度に)実行できる必要があります。リストは必ずしも正方形または長方形であるとは限りません。回答に例の出力を含める必要があります。また、円、三角形などの例にないケースでも機能する必要があります。既存の関数を使用してすべてを行うことはできません。 すべてのリストには、少なくとも1つの対称軸(N、S、E、W)があります。すべてのサブリストは中央揃えであると想定されます。奇数/偶数リストは、適切に整列するために左にシフトします。サブリストの中央のギャップについては、例4を参照してください。 入力 プログラムはl、リストを含むという名前の変数と、リストのn回転量を指定するという名前の変数(n * 45)を使用します(n常に7未満で、0にすることができます)。l印刷可能なデータ型(10進数、List、int、String [] ..など)のサブリストを含むことを受け入れる必要がありますが、サブリストには一度に1つのデータ型しか含まれません。 コンソール入力を受け入れる必要も、stdinを使用する必要もありません。lおよびのテスト値を指定する行nは、文字カウントには含まれませんが、送信されたコードに含める必要があります。 出力 プログラムは正しい向きでリストを印刷する必要があります。必要に応じてリストをパディングするためにNILを使用できますが、パディングは必要ありません(ただし、パディングされている場合は笑顔が得られます)。サブリストは、例のようにインデントしたり、改行で区切る必要はありません。 例 1 IN l= [[0 , 1 , 2], [3 , 4 , 5], [6 , 7 , 8]] n=1 OUT [ [0], [3 , 1], [6 , 4 , 2], [7 , 5], [8] ] …
22 code-golf 

3
エピサイクロゴンの描画
外サイクロイドは、それは別の円の周りを転がるよう円周上の点が作る曲線です。cyclogonは上の点形状である正多角形は、それが面を横切って転がるようになります。epicyclogonは、それが他の周りに転がるように、1つの正多角形上の点でトレースした曲線です。 与えられたepicyclogonを描画するプログラムを書きますr、r1、r2、n1、n2: r = number of clockwise revolutions rolling polygon makes around stationary polygon (any real number as limited by float values) r1 = distance from center of stationary polygon to each of its vertices (positive real number) r2 = distance from center of rolling polygon to each of its …

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.