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

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

8
ルービックキューブスクランブル
あなたの仕事は、ランダムな動きのシーケンスを作成することです。これは、ルービックキューブをスクランブルするために使用できます。このようなスクランブルは、正確に25の動きで構成されています。各動きは、UDRLFBオプションでサフィックスの1つが続く文字で構成されます'2。 この表記法は、Singmaster表記法と呼ばれます。UDRLFBは6つの面のいずれかを表し、オプションのサフィックス'2は回転角度を表します。この情報は、タスクを解決するために決して必要ではありません。 スクランブルが「良質」であることを保証するには、次の2つのルールを適用する必要があります。 2つの連続した動きに同じ文字を含めることはできません。これは、連続した移動を禁止UU、DD、RR、LL、FFおよびBBなど、オプションの接尾辞を使用して、すべてのこれらの組み合わせU2UかU'U'。 これらのムーブペアは、1ムーブまたは0ムーブに簡単に減らすことができるため、禁止されています。U2Uと同じ効果がU'ありR'R、と同じ効果があります。 3つの連続した動きは、同じ文字グループのものであってはなりません。文字グループはUD、RLおよびFBです。この規則は、さらに連続して移動を禁止UDU、DUD、RLR、LRL、FBF、BFBなどの任意の接尾辞を使用して、すべてのこれらの組み合わせU2DU、RL'RまたはB2FB'。 グループは、移動軸によって面を並べ替えます。Uそして、D同じ軸の周りの両方のターンので、同じグループに属しています。したがって、U動きはD顔のD部分に影響を与えず、動きはU顔の部分に影響を与えません。したがって、2つの動きは交換できUDU、と同じ効果がUUDあり、これをに減らすことができますU2D。 チャレンジ 1つのランダムなスクランブルを生成するスクリプトまたは関数を作成します。入力はありません。スクリプト/関数は、25の動きを分離せずに印刷するか、1つのスペースで区切るか、対応する文字列を返す必要があります。 プログラムはすべてのスクランブルを作成できる必要があり、上記のルールを満たします。もちろん、乱数生成器は真の乱数であり、擬似乱数ではないと仮定します。 これはコードゴルフです。最短のコード(バイト単位)が勝ちます。 出力例: スクリプト/関数を3回呼び出すと、次のようなものが出力/返されます。 R'B2R2F2R2FB'R2DR2ULFB2RB'U2B'FL'BR'U'RB' U'DBR'B2U'B'U'RUF'B'RDR2U'B'LR'B'F2D2UF2L' BR2F'B'R'D'R'U2B'F2D2R'F2D'F'D2R2B'L2R'UB'R2L'D 移動をそれぞれスペースで区切った場合: R2 L' F2 U2 D' R2 L2 F L' D2 U R B D' U2 L B2 L U B2 D U2 R' D2 U' B R D2 F U2 B' R2 F2 …

13
道路長エンコーディング
米国では、道路上の交通の2つの反対方向は、通過が許可されている場合は黄色の破線で、通過が許可されていない場合は黄色の実線で区切られています。 (片側だけを通過させてその側を通過させることができ、黄色の線は中央やリバーシブルレーンなどの他のことを意味する場合がありますが、これらの場合は関係ありません。) かかるプログラム書くランレングスエンコードされた文字列Pのために渡すとNするために無通過し、対応する道路のASCIIバージョンを出力します。中心線を除き、道路は常に同じパターンを持っています。これは、以下の例から簡単に推測できます。 各入力文字列の前PおよびN入力文字列には正の10進数があります。この数は、長さ定義通過又は無通過する道路の現在の一部の領域を。 例 の入力は、通過しない道路の12N12列を生成します(中心線all ):= ____________ ============ ____________ の入力は12P、通過する道路の12列を生成します(中心線が- 繰り返されます)。 ____________ - - - - - - ____________ 渡すと何の通過は、その後組み合わせることができません、例えば、4N4P9N7P1N1P2N2P生成します: ______________________________ ====- - =========- - - -=-==- ______________________________ これらは、4つの通過しない列、4つの通過、9つの通過なしなどです。 通過ゾーン-は、スペース()ではなく、常に左端のダッシュ()で始まることに注意してください。これは必須です。 詳細 入力に2つのNゾーンまたは2つのPゾーンが連続することはありません。たとえば、4P5P発生することはありません。 先頭に正の数字がない文字をサポートする必要はありません。平野Pは常に1P、平野Nは常にです1N。 道路の最後の列を超えない限り、後続スペースが存在する場合があります。オプションの末尾の改行が1つある場合があります。 プログラムの代わりに、ランレングスでエンコードされた文字列を取り込んで、ASCIIロードを出力または返す関数を作成できます。 任意の標準的な方法(stdin、コマンドライン、関数arg)で入力を受け取ります。 バイト単位の最短コードが優先されます。Tiebreakerは以前の投稿です。

9
「素数文字」を使用せずに素数を見つける
受け入れることを選択した場合のタスクは、整数Nを入力として受け入れるプログラム/関数を作成することです。プログラム/関数は、最初のN個の素数のリストを出力/返す必要があります。ただし、ここで問題があります。コードでプライム文字を使用することは許可されていません。素数文字とは、Unicodeコードポイントが素数である文字です。印刷可能なASCIIの範囲では、次のとおりです。 %)+/5;=CGIOSYaegkmq ただし、コードで非ASCII文字が使用されている場合、この規則は非ASCII文字にも適用されます。 有効な入力は、整数N 0 <N <= Tあなたが選ぶことができ、Tを、それは以上10000に等しくなるように持っているTは有限である必要はありません。 無効な入力(非整数、範囲外の整数)の場合は、例外をスローするか、何も出力しないかnullを返します。 入力として先頭/末尾の空白を含む整数は無効と見なされます。 +入力として符号記号を持つ整数は無効と見なされます。 入力として先行ゼロを含む整数は有効と見なされます。 言語で入力として既に解析された整数を渡すことができる場合、intは既に解析されているため、上記の解析ルール(範囲1を除く)は適用されません。 入力は常にbase-10です。 組み込みの素数ジェネレーターおよび素数テスター(素因数分解関数を含む)の使用は許可されていません。 ソースの制限はUnicode文字に課されますが、スコアのバイトカウントは、必要に応じて別のエンコードにすることができます。 出力には単一の末尾改行を含めることができますが、これは必須ではありません。 素数リストを文字列として出力/返す場合、すべての素数は1つまたは複数の非数字文字で区切る必要があります。使用する区切り文字を選択できます。 これはコードゴルフの挑戦であり、バイト単位の最短コードが勝ちます。 コードを確認するためのスタックスニペット 以下のスタックスニペットを使用して、コードにプライム文字が含まれていないことを確認できます。 var primes=[],max=10000;for(var i=2;i<=max;i++){primes.push(i);}for(var N=2;N<Math.sqrt(max);N++){if(primes.indexOf(N)===-1){continue;}primes=primes.filter(function (x){return x===N||x%N!==0;});}function setText(elem,text){var z=('innerText' in elem)? 'innerText' : 'textContent';elem[z]=text;}function verify(inputCode,resultSpan){var invalidChars=[];var success=true;for(var i=0;i<inputCode.length;i++){var cc = inputCode.charCodeAt(i);if (cc>max){setText(resultSpan,"Uh oh! The char code was bigger than the …

3
フランス語で男性名詞と女性名詞を100文字以内で区別する
100文字以内の非常に小さなプログラムを作成します。プログラムは、男性と女性のフランス語の名詞を区別する必要があります。出力unは、男性的なものでありune、女性的なものでなければなりません。多くの場合、従うことができる特定の統計ルールがあります(たとえば、「e」で終わる場合は、男性より女性的である可能性が高い)。 入力: フランス語の単語。小文字のアクセントと小文字を含むダッシュとダッシュで構成されます。 入力例: ami 出力: un単語が男性的でありune、単語が女性的である場合。 出力例: un すべての単語を正しくする必要はありません。あなたの目標は、可能な限り正確であることです。 得点:あなたの答えは 100文字以内でなければなりません。以下のようなステートメントprintやconsole.logかではalertないではない、あなたの総バイト数の一部としてカウントされます。このタスクを実行する関数またはメソッドを作成することもできます。その場合f=x=>、関数宣言の一部である最初の数バイト(例:)は合計には含まれません。合計スコアは、不正解の数です。ネクタイはコードサイズによって壊れます。 テストする名詞: un ami un café un chapeau un concert un crayon un garage un garçon un lit un livre un mari un musée un oncle un ordinateur un pantalon un piano un pique-nique un portable un père un …

6
タイムトラベリングストックトレーダー
ストーリー かなり前に、ボビーは1サトシ(1e-8 BTC、最小通貨単位)でビットコインウォレットを作成し、それを忘れていました。他の多くの人と同じように、彼は後に「くそー、もし私がもっともっと投資すれば...」。 空想にとどまらず、彼は時間とお金のすべてをタイムマシンの構築に捧げます。彼は自分の時間の大部分をガレージで過ごし、世間の出来事や彼についての噂を知らない。彼は、支払いを逃し、電気が切れようとする1日前にプロトタイプを完成させました。ワークベンチから見上げると、彼は警察のバンが彼の家に引っ張っているのを見ます。 テストを実行する時間がないため、彼は過去数年間の為替レートのデータをUSBスティックで取得し、Flux CapacitorをQuantum Discombobulatorに接続して、自分がウォレットを作成した日に戻されていることに気付きました。 タスク 為替レートデータが与えられたら、ボビーが稼ぐことができる金額を調べます。彼は非常に単純なルールに従います:「低価格で購入-高価格で販売」そして彼は無限に小さな資本でスタートするので、彼の行動は将来の為替レートに影響を与えないと仮定します。 入力 プログラムにコマンドライン引数として渡される、テキストファイルまたはSTDINから読み取られる、またはパラメーターとして渡される、単一の文字(改行、タブ、スペース、セミコロン、任意の文字)で区切られた文字列としての0以上のfloatのリスト関数に。文字列の代わりに数値データ型または数値配列を使用できます。これは、基本的に角括弧付きの文字列だからです。 アウトプット ボビーズの資本に取引の終了を掛けた係数。 例 Input: 0.48 0.4 0.24 0.39 0.74 1.31 1.71 2.1 2.24 2.07 2.41 為替レート:0.48 $ / BTC、下落しそうなため、すべてのビットコインを4.8ナノドルで販売します。係数= 1為替レート:0.4、何もしない 為替レート:0.24 $ / BTCおよび上昇:すべての$を2 Satoshisに変換します。係数= 1(ドルの値はまだ変更されていません) 為替レート:0.39-2.1 $ / BTC:何もしない 為替レート:2.24 $ / BTC:下落する前にすべてを売ります。44.8ナノドル、ファクター= 9.33 為替レート:2.07 $ / BTC:2.164 …

2
ブックスタックソート
本を積み重ねるときは、通常、一番大きいものを一番下に、一番小さいものを一番上に置きます。しかし、潜在的なOCDのおかげで、2冊の本があり、一方の本の高さは短く、他方の本よりも幅が広い場合、非常に不安になります。どの順序で配置しても、一番上の本は一番下の本を超えて一面に広がります。 例として、ある本には次元が(10,15)あり、別の本には次元があるとしましょう(11,14)。どのように配置しても、オーバーハングが発生します。ただし、寸法が(4,3)、の書籍がある場合は(5,6)、前者の下に後者を配置することで張り出しを回避できます。 この挑戦の目的のために、私たちはすぐ下の本に関してオーバーハングを考えるでしょう。例えば、私は、スタックを持っている場合は(5,5)、(3,3)、(4,4)(まともな人はそれを行うだろうということではない)、オーバーハングなどのトップ帳の数は、それが下の本を超えて拡張しませんが。同様に、スタックは(3,3)、(3,3)、(4,4)また、下の1を越えて延びるトップ帳にもかかわらず、唯一のオーバーハングを有します。 チャレンジ ブックの寸法の整数ペアのリストが与えられたら、オーバーハングの数が最小になるようにそれらのペア/ブックをソートします。本を回転させてはいけません-すべてのスパインを同じ方向に向けてください。オーバーハングの数が同じソリューションが複数ある場合は、そのような順序を選択できます。ソートアルゴリズムは安定している必要はありません。実装では、ブックの寸法がそれぞれ2 16未満であると想定する場合があります。 時間の複雑さ:これをもう少し面白くするには、アルゴリズムの漸近的な最悪の複雑さをスタックのサイズの多項式にする必要があります。そのため、可能なすべての順列をテストすることはできません。アルゴリズムの最適性と複雑さの簡単な証明と、オプションで大きなランダム入力のスケーリングを示すプロットを含めてください。もちろん、O(1)でコードを実行する引数として入力の最大サイズを使用することはできません。 プログラムまたは関数を作成し、STDIN、ARGV、または関数引数を介して任意の便利な(前処理されていない)リスト形式で入力し、結果を出力または返すことができます。 これはコードゴルフなので、最短の回答(バイト単位)が勝ちです。 多項式解が存在すると確信していますが、間違いを証明できる場合は、ゴルフの提出の代わりにそのような証明を提出できます。この場合、P≠NPと仮定できます。私は最初の正しいそのような証明を受け入れ、それに賞金を授与します。 例 In: [[1, 1], [10, 10], [4, 5], [7, 5], [7, 7], [10, 10], [9, 8], [7, 5], [7, 5], [3, 1]] Out: [[10, 10], [10, 10], [9, 8], [7, 7], [7, 5], [7, 5], [7, 5], [4, 5], [3, …

12
8つの数字を出力する8つの方法でコードを読み取る
英語とほとんどのプログラミング言語は、左から右、上から下に書かれ、読まれますが、そうである必要はありません。 実際、テキストのブロック用 ABC DEF 関連する8つの読み方を考えることができます。 左から右、上から下(LTR-TTB): ABCDEF 上から下、左から右(TTB-LTR): ADBECF 左から右、下から上(LTR-BTT): DEFABC 下から上、左から右(BTT-LTR): DAEBFC 右から左、上から下(RTL-TTB): CBAFED 上から下、右から左(TTB-RTL): CFBEAD 右から左、下から上(RTL-BTT): FEDCBA 下から上、右から左(BTT-RTL): FCEBDA チャレンジ 選択した言語の8つの単一行プログラムとして、上記の8つの方法のそれぞれで読み取れる長方形のテキストブロックを記述します。これらのプログラムはそれぞれ、1〜8の異なる整数を出力する必要があります。 どの読み取り方向がどの番号を出力するかは問題ではなく、上記の番号と一致する必要はありません。たとえば、テキストブロックがまだ ABC DEF その後、プログラムのABCDEFかもしれない出力5とFEDCBAかもしれない出力2、および他の6つのプログラムが出力だろう1、3、4、6、7、および8いくつかのためです。 テキストブロックには、行末記号以外の文字を含めることができます。 言語に適切な標準出力がない場合、出力は標準出力または同様の代替になります。入力はありません。プログラムはREPL環境で実行されていると想定できます。 Pietu1998は、テキストブロックが与えられたときに8つの異なる単一行プログラムを提供するJSFiddleを慈善的に作成しました。スタックスニペットにしました。 <script>function f(n){n=n.split("\n");var e=n.map(function(n){return n.length}).sort()[n.length-1];n=n.map(function(n){return(n+Array(e+1).join(" ")).substring(0,e)});var t=n[0].split("").map(function(e,t){return n.map(function(n){return n[t]}).join("")});n=[n.join(""),n.reverse().join(""),t.join(""),t.reverse().join("")],n=n.concat(n.map(function(n){return n.split("").reverse().join("")})),document.getElementById("a").innerHTML=n.map(function(n,e){return document.getElementById("b").checked?n+" "+"LLTTRRBB"[e]+"T"+"RRBBLLTT"[e]+"-"+"TBLRBTRL"[e]+"T"+"BTRLTBLR"[e]:n}).join("\n")}</script><textarea onkeyup="f(this.value)" id="c" placeholder="Code"></textarea><br/><input type="checkbox" id="b" onchange="f(document.getElementById('c').value)" checked/> <label for="b">Show directions</label><br/><pre …

10
0-1最大位相カウンター
たとえば、ビットの配列を考えます 1 1 1 0 0 0 0 1 0 0 1 0 1 1 1 1 1 0 1 0 ビットの少なくとも85%が同じであり、最初のビットと最後のビットの両方がマジョリティビットに等しい場合、長さが5以上の連続するサブアレイをフェーズと呼びます。さらに、他のフェーズの厳密なサブアレイでない場合、フェーズを最大と呼びます。 上記の例の最大フェーズは次のとおりです。 1 1 1 0 0 0 0 1 0 0 1 0 1 1 1 1 1 0 1 0 ------------- ------------- ------------- ご覧のとおり、3最大のフェーズがあります。一方、これ 1 1 1 …

3
2D衝突検出
この挑戦は、私が最近簡単なゲームのために書かなければならなかった実際の衝突検出に基づいています。 2つのオブジェクトが与えられたときに、2つのオブジェクトが衝突(交差)しているかどうかに応じて、真偽値を返すプログラムまたは関数を作成します。 次の3種類のオブジェクトをサポートする必要があります。 線分:2つの端点、つまり(x 1、y 1)と(x 2、y 2)を示す4つの浮動小数点で表されます。エンドポイントが同一ではないと想定することができます(したがって、ラインセグメントは縮退していません)。 ディスク:塗りつぶされた円。3つのフロートで表され、中心(x、y)に2つ、半径rに 1(正)で表されます。 キャビティ:これらはディスクを補完するものです。つまり、空洞は、中心と半径で指定された円形の領域を除き、すべての2D空間を満たします。 プログラムまたは関数は、2つのそのようなオブジェクトを(選択した)識別整数の形式で受け取り、それらの3つまたは4つのフロートを受け取ります。STDIN、ARGV、または関数引数を介して入力を取得できます。入力は、前処理されていない便利な形式で表すことができます。たとえば、8〜10個の個別の数値、2つのコンマ区切りの値リスト、2つのリストなどです。結果を返すか、STDOUTに書き込むことができます。 オブジェクトは少なくとも10 -10の長さの単位で離れているか、その分だけ交差していると仮定することができるため、浮動小数点型の制限について心配する必要はありません。 これはコードゴルフなので、最短の回答(バイト単位)が勝ちです。 テストケース リストベースの入力フォーマットを使用して0、ラインセグメントを、ディスク、1およびキャビティで2表現すると、次のすべてが真の出力を生成するはずです。 [0,[0,0],[2,2]], [0,[1,0],[2,4]] # Crossing line segments [0,[0.5,0],[-0.5,0]], [1,[0,0],1] # Line contained in a disc [0,[0.5,0],[1.5,0]], [1,[0,0],1] # Line partially within disc [0,[-1.5,0.5],[1.5,0.5]], [1,[0,0],1] # Line cutting through disc [0,[0.5,2],[-0.5,2]], [2,[0,0],1] # Line outside …

14
ナノコア戦争
これは、20世紀に遡るプログラミングKOTH であるCore Warの適応です。具体的には、主に元の提案に基づいて非常に単純化された命令セットを使用しています。 バックグラウンド コア戦争には、コンピューターの制御のために戦っている2つのプログラムがあります。各プログラムの目標は、相手のプログラムを見つけて終了することで勝つことです。 戦闘はコンピューターのメインメモリ内で行われます。このメモリはコアと呼ばれ、8192個のアドレスが含まれています。戦闘が始まると、各競技者(戦士と呼ばれる)のコードがランダムなメモリチャンクに配置されます。プログラムの実行は戦士間で交互に行われ、それぞれ1つの命令を実行します。各命令はコアの一部を変更できるため、プログラムを自己変更する可能性があります。 目標は、対立するプログラムを終了することです。プログラムは、無効な命令(任意のDAT命令)を実行しようとすると終了します。 命令セット 各プログラムは一連の低レベルの命令で構成され、各命令はAおよびBフィールドと呼ばれる2つのフィールドを取ります。 この命令セットは、元の仕様から大きく引き出されます。主な変更点は、1)コマンドの追加/減算の明確化、および2)#どこでも使用できるようにするためのアドレス指定モードの変更です。Core Warsのほとんどのフルバージョンには、20を超えるオペコード、8つのアドレス指定モード、および「命令修飾子」のセットがあります。 オペコード 各命令には、7つの異なるオペコードのいずれかが必要です。 DAT A B-(データ)-これは単に数字Aとを保持しますB。重要なのは、DAT命令を実行しようとするとプロセスが停止することです。 MOV A B-(移動)-これにより、メモリ位置の内容がメモリ位置Aに移動しますB。以下は、前後のデモンストレーションです。 MOV 2 1 ADD @4 #5 JMP #1 -1 MOV 2 1 JMP #1 -1 JMP #1 -1 ADD A B-(追加)-これは、メモリロケーションの内容をメモリロケーションAに追加しますB。両方の最初の2つのフィールドが追加され、2番目のフィールドが追加されます。 ADD 2 1 MOV @4 #5 JMP #1 -1 ADD …

9
クリスマスギフトを積み重ねる
誰かが急いでクリスマスプレゼントを積み上げており、それは非常に混乱しています。 ======================== | | ======================== ============= | | | | | | | | | | | | ============= ======= | | | | | | ======= =================== | | | | | | =================== ================= | | | | | | | | ================= ======= | | | | …

2
グラフの緊張、パートI:波状のひも
ドメイン[ -3,3 ]で関数f(x)= sin(πx)+ 0.5 sin(3πx)をプロットしてみましょう。これは、ボード上にあるゆるいひもとして解釈できます。それでは駆動させ、N位置でボードに釘を(X 1、Y 1)と(X N、Y N)、X I ∈(-3,3)とY iは ∈[-1,1] 。文字列の最後に位置(-3,0)と(3,0)にある2つのアイレットがあると想像してください。これで、紐の端を取り、紐がぴんと張るまでアイレットに通すことができます。これにより、グラフが区分的線形関数に変形されます。 いくつかの写真が役立つ場合があります。で8本の釘を取り、(-0.5、0.8)、(0.5、0.4)、(1.2、-0.9)、(-2.5、-0.9)、(-1.2、0.2)、(-2.8、-0.7) (1.5、-0.6)、(1.8、-0.8) 。次の3つのプロットは、上記のプロセスを示しています。 大きなバージョンの場合:右クリック->新しいタブで開く また、文字列を視覚化するのが困難な場合のストリングの引き締めのアニメーションを次に示します。 チャレンジ 「爪」のリスト(これは必ずしもソートされているわけではありません)が与えられた場合、上記の関数fの形状から始まる場合、それらの爪とピンと張った文字列をプロットします。 プログラムまたは関数を作成し、STDIN、ARGV、または関数引数を介して入力を取得できます。結果を画面に表示するか、画像をファイルに保存できます。 結果がラスタライズされる場合、少なくとも幅300ピクセル、高さ100ピクセルである必要があります。(-3、-1.1)から(3,1.1)までの座標範囲は、画像の水平および垂直範囲の少なくとも75%をカバーする必要があります。xとyの長さスケールは同じである必要はありません。爪(少なくとも3x3ピクセルを使用)と文字列(少なくとも1ピクセルの幅)を表示する必要があります。軸を含めても含めなくてもかまいません。 色は選択できますが、少なくとも2つの区別できる色が必要です。1つは背景用、もう1つは爪と文字列用です(ただし、色は異なる場合があります)。 すべての釘はfから少なくとも10 -5ユニット離れていると仮定できます(そのため、浮動小数点の不正確さを心配する必要はありません)。 これはコードゴルフなので、最短の回答(バイト単位)が勝ちです。 その他の例 さらに2つの(簡単な)例があります。 {{-2.5, 1}, {-1.5, -1}, {-0.5, 1}, {0.5, -1}, {1.5, 1}, {2.5, -1}} (文字列はx軸と一致します。) {{-2.7, -0.5}, {-2.3, -0.5}, {-1.7, 0.5}, {-1.3, …

1
ホラー映画検索パーティー
プロット:ジミーがいない 私たちは彼を見つけなければなりません。分割する必要があります。 プロットのねじれ:ジミーはすでに死んでいます。 しかし、私たちのキャストはそれを知らないので、とにかくエリア全体を検索する必要があります。N列x M行(1 <= M、N <= 256)のセルグリッドがあり、開始点 "。"に対して "S"としてマークされています。オープンスペースの場合、または障害物の場合は「#」。これが地図です。 0 <= p <= 26 コスタル、0 <= q <= 26 エキストラ、1 つ星があります。最初は全員がSとマークされたセルにいます。 ルール 各人の視界半径は次のとおりです。 ... ..... ..@.. ..... ... 星は「@」で示され、共演者は「A」で始まる大文字で、余りは「a」で始まる小文字で示されます。最初に、開始点を囲む視界半径はすでに検索済みとしてマークされています。これがマップのオープンスペース全体を構成する場合、ゲームは終了します。次の順序で各ターン: 各人が同時にキングを動かします(静止するか、8つの隣接するセルのいずれかに移動します)。 各人の視界内のすべてのセルが検索対象としてカウントされます。 共演者が他の人を見ることができない場合、彼女は死にます。エキストラが共演者、スター、または少なくとも2つの他のエキストラを見ることができない場合、彼は死にます。これらは同時に起こります。つまり、1ターンでの死の連鎖反応はあり得ません。上記の条件がチェックされ、死にかけようとしている人は全員死にます。 マップ上のすべてのオープンスペースが検索された場合、検索は終了します。 ノート 複数の人がいつでも同じ広場にいることができ、これらの人はお互いを見ることができます。 障害物は視界を妨げることはなく、動きのみを妨げます。人々は、溶岩を越えてお互いを見ることができます...溶岩? マップ上のオープンスペースは、キングムーブによって接続されることが保証されています。 また、最初の「S」は障害物ではなく、オープンスペースと見なされます。 オープンスペースに着地するキングムーブは有効です。たとえば、次の動きは合法です: .... .... .@#. ---> ..#. .#.. .#@. .... .... …

6
最大の壊れやすい素数を見つける
positionの数字から始まる数字から数字Remove(n, startIndex, count)を削除する関数を考えます。例:countnstartIndex Remove(1234, 1, 1) = 234 Remove(123456, 2, 3) = 156 Remove(1507, 1, 2) = 07 = 7 Remove(1234, 1, 4) = 0 可能なすべてのRemove操作が素数でない場合、素数Xを脆弱と呼びます。たとえば、80651は脆弱な素数です。これは、次の数値がすべて素数ではないためです。 651, 51, 1, 0, 8651, 851, 81, 8, 8051, 801, 80, 8061, 806, 8065 ゴール 最大の壊れやすい素数を見つけるプログラムを作成します。編集:比較的公正な方法で回避できるため、時間制限を削除しました。 スコアは、プログラムで見つかった脆弱な素数です。同点の場合、以前の提出が優先されます。 ルール 任意の言語およびサードパーティライブラリを使用できます。 自分のハードウェアでプログラムを実行します。 確率的素数テストを使用できます。 すべてがベース10にあります。 主要なエントリー Qualtaghによる6629桁(Java) …

30
コードの最初のN文字を印刷します
N入力として正の整数を受け取り、Nコードの最初の文字を出力するプログラムまたは関数を作成する必要があります。場合Nあなたが周期的に出力をあなたのコードを継続すべきであるあなたのコードの長さよりも大きくなっています。 ソースコードの読み取り、およびファイル、stdioなどからの読み取りは禁止されています。 例 (コードがであると仮定yourcode) 入力=>出力: 5=> yourc 10=> yourcodeyo 22=>yourcodeyourcodeyour 明確化 プログラムは少なくとも1バイトの長さが必要です。
21 code-golf  quine 

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