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

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

13
ブルートフォース数独ソルバーを実装する
推測を使用して最短の数独ソルバーを実装します。いくつかのリクエストを受け取ったので、ブルートフォースの数独ソルバーを実装したい人のための代替の質問としてこれを追加しました。 数独パズル: | 1 2 3 | 4 5 6 | 7 8 9 -+----------------------- A| 3 | 1 | B| 6 | | 5 C| 5 | | 9 8 3 -+----------------------- D| 8 | 6 | 3 2 E| | 5 | F| 9 3 | 8 | …

30
付加的な永続性
すべての可能性を渡す最短のコードが勝ちです。 数学では、数値の持続性は、特定の一定の条件に達するまで特定の操作をその数字に適用する必要がある回数を測定します。整数の桁を追加して繰り返すことにより、正の整数の相加持続性を決定できます。1桁の数字が見つかるまで、合計の数字を追加し続けます。その1桁の数字に達するまでにかかった繰り返しの回数は、その数字の付加的な持続性です。 84523を使用した例: 84523 8 + 4 + 5 + 2 + 3 = 22 2 + 2 = 4 It took two repetitions to find the single digit number. So the additive persistence of 84523 is 2. 相加持続性を計算する必要がある正の整数のシーケンスが与えられます。各行には、処理する異なる整数が含まれます。入力は、任意の標準I / Oメソッドで行うことができます。 整数ごとに、整数を出力する必要があります。その後に単一のスペースが続き、その後にその持続性が続きます。処理される各整数は、独自の行にある必要があります。 テストケース 入出力 99999999999 3 10 1 8 0 …

30
カスタムアルファベットを印刷
チャレンジ コンソール入力から読み取った特定の文字のアルファベットを表示します。文字が大文字の場合、アルファベットを大文字で表示する必要があります。印刷されるアルファベットは、挿入されたアルファベットの前の文字で終わる必要があります。追加のパラメーターが入力(単純なドット.)に追加される場合、アルファベットは各行に1文字ずつ印刷される必要があります。そうでない場合は、アルファベットを同じ行に印刷し、単純なスペースで区切る必要があります。間違った入力がプログラムに送信された場合、何も印刷されません。 入力例: 入力: c プログラムの出力: d e f g h i j k l m n o p q r s t u v w x y z a b 入力 H. プログラムの出力: I J K L M N O P Q R S T U V W X …
20 code-golf  string 

7
一部のテキストをダイヤモンド化する
長さの入力文字列が与えられた2以上のアルファベット文字のみからなる[A-Z]か、[a-z](あなたの選択、それらはすべて大文字またはすべて小文字なら)、出力ダブルダイヤモンドパターンを形成する文字の連続文字列を。 入力文字列は中心線から始まり、入力文字列の最後に到達するまで対角線で上下に伸びます。次に、入力文字列の長さから1を引いた値まで中心線から遠く離れるまで、パターンは斜めに上下に続きます。左、次に上下(中央の文字の「後ろ」に移動)、最後に左下に移動して開始文字に戻ります。 それは少し冗長であり、いくつかの例でより良く示されています: "YOU" U Y Y O U O Y O U O Y U Y U O ^ ^ ↙ ↖ ↗ ↘ ↘ ↗ > ↘ ↗ ↖ ↙ V V どのように参照してくださいYOU、それが戻って最初にループするまで、など、中心線から始まり、次のダウンと右、そしてアップと右。特に、Y左上部分が「背後」にあるOため表示されていないことに注意してください。 さらにいくつかの例: "HI" I I H H H I I "TEST" E E S T T …

20
Code Golf Measurer©2019
Code Golf Measurer©2019 使用されるHexdumpsはxxd次のようになります。 00000000: 666f 6f20 6261 7220 7370 616d 2065 6767 foo bar spam egg 00000010: 730a s. あなたの仕事は、この形式の16進ダンプを使用バイト数に変換することです。 ルール: 通常の抜け穴は禁止されています。 これはcode-golfであるため、バイト単位の最短の有効な回答が優先されます。 テキストの最後に改行を含める場合も含めない場合もあります(0a)。これは、hexdumpが改行(0a)で終わる場合、その入力の出力が1つ減る可能性があることを意味します。 空の入力(文字通り何もない:空のリスト/文字列など)は0を出力する必要があります。 入力は任意の形式で取得できます 入力は制御文字のない有効なASCIIです 入力には、hexdump全体が含まれている必要があります テストケース: 00000000: 4865 6c6c 6f2c 2077 6f72 6c64 2120 4865 Hello, world! He 00000010: 6c6c 6f2c 2077 6f72 6c64 210a llo, …

19
いくつかの首相
(ランダムに触発/mathpro//q/339890) (関連:1、2) 異なる素数の入力リスト(例[2, 5, 7]:)と整数を指定すると、それらの素数のみを除数として含むものnよりも厳密に小さいすべての正の整数を出力nします。入力の場合[2, 5, 7]、n=15これはの出力を意味します[2, 4, 5, 7, 8, 10, 14]。 さらなる例 [list] n | output [2, 5, 7] 15 | [2, 4, 5, 7, 8, 10, 14] [2, 5, 7] 14 | [2, 4, 5, 7, 8, 10] [2] 3 | [2] [2] 9 | [2, 4, …
20 code-golf  primes 

16
迷宮を脱出せよ!
この5x5の迷宮に閉じ込められています-各部屋には1〜25のラベルが付けられ、出口は部屋1にあります。 現在の部屋の入力として与えられます。あなたの仕事は、部屋1に到達するために必要な移動の最短シーケンス(北、東、南、西)を出力することです。 文字を使用する限り、移動は任意の形式(リスト、文字列、配列...)で出力できますn,w,e,s。 すべてのテストケースは次のとおりです。 1 => empty string/list 2 => w 3 => ww 4 => swwnw 5 => wswwnw 6 => seenwnw 7 => nw 8 => wnw 9 => wwnw 10 => swwnwnw 11 => eenwnw 12 => enwnw 13 => nwnw 14 => wnwnw 15 => wwnwnw …

27
*の通訳を書く
タスクは簡単です。言語*のインタープリターを作成します。 wikiへのより大きなリンクがあります。 有効なプログラムは3つだけです: * 「Hello World」を印刷します * 0〜2,147,483,647の乱数を出力します *+* 永遠に実行します。 3番目のケースは、この質問の仕様に従った無限ループでなければなりません 入力: 入力は、標準のI / Oルールで受け入れ可能な任意の入力方法で取得できます。 上記のプログラムのいずれかになります 出力: 最初のケースではHello World、末尾の改行の有無にかかわらず、正確に印刷する必要があります。 2番目の場合、言語の整数の最大値が2,147,483,647より小さい場合は、言語の整数の最大値を使用します 最初と2番目のケースは、標準のI / Oルールで受け入れ可能な出力に出力できます。 3番目のケースでは、出力は行われません。 得点: これはcode-golfであるため、バイト単位の最短回答が勝ちです。
20 code-golf  interpreter  code-golf  array-manipulation  sorting  code-golf  halting-problem  code-golf  javascript  code-golf  algorithm  code-golf  arithmetic  code-golf  math  counting  code-golf  math  code-golf  decision-problem  radiation-hardening  code-golf  conversion  bitwise  code-golf  number  decision-problem  code-golf  string  decision-problem  code-golf  random  game  code-golf  ascii-art  graphical-output  code-golf  decision-problem  binary-tree  tree-traversal  code-challenge  array-manipulation  code-challenge  graphical-output  path-finding  test-battery  algorithm  code-golf  integer  factorial  code-golf  binary-tree  code-golf  grid  graph-theory  code-golf  regular-expression  quine  code-golf  encoding  code-golf  king-of-the-hill  javascript 

1
トレースレスビジービーバー
それらの忙しいビーバーはすべて非常に混乱しました。彼らはテープ全体に書いた。このレートでは、私たちの隣人は私たちに無制限のテープの貸し出しを停止します。 忙しいビーバーゲームをプレイする新しい方法が必要です。これは、使用するすべてのテープを破壊するものではありません。 ルール Brainfuckのみ。メモリテープはどちらの方法でも制限されません。入力命令は常にを読み取るため、値をクリアするために使用できます。000 50バイトのソース制限。 実行の終了時には、メモリはすべてなければなりません。000 スコアは、メモリポインターの開始位置と最終位置の間の距離です。それらの間を移動するのに移動命令が必要な場合、スコアはnです。高いほど良い。可能な場合は正確な値を提供し、そうでない場合は推定値を提供します。nnnnnn 例 32バイト、2255− 12255−12^{255}-1 -[-[[>]+>+[<]>-[[>]<+<+[<]>-]]>] 説明 - Initialize the list to [255]. [ ] Repeat as long as the list is not empty. [- ] Decrement the left end. We need to shrink the numbers so it ends eventually. [ [ ] ] Skip …

12
Codegolfパーマ
課題は、行列のパーマネント用のcodegolfを書くことです。 永久n行列のn行列A=( ai,j)は以下のように定義されます ここでS_nのすべての順列の集合を表します[1, n]。 例として(wikiから): コードは必要に応じて入力を受け取り、適切な形式で出力できますが、コードに入力を提供するための明確な指示を含む完全に機能する例を回答に含めてください。課題をもう少し面白くするために、マトリックスに複素数を含めることができます。 入力行列は常に正方形で、最大で6 x 6 です。また、パーマネント1を持つ空の行列を処理できるようにする必要があります。空の行列を処理する必要はありません(多すぎる原因でした)問題)。 例 入力: [[ 0.36697048+0.02459455j, 0.81148991+0.75269667j, 0.62568185+0.95950937j], [ 0.67985923+0.11419187j, 0.50131790+0.13067928j, 0.10330161+0.83532727j], [ 0.71085747+0.86199765j, 0.68902048+0.50886302j, 0.52729463+0.5974208j ]] 出力: -1.7421952844303492+2.2476833142265793j 入力: [[ 0.83702504+0.05801749j, 0.03912260+0.25027115j, 0.95507961+0.59109069j], [ 0.07330546+0.8569899j , 0.47845015+0.45077079j, 0.80317410+0.5820795j ], [ 0.38306447+0.76444045j, 0.54067092+0.90206306j, 0.40001631+0.43832931j]] 出力: -1.972117936608412+1.6081325306004794j 入力: [[ 0.61164611+0.42958732j, 0.69306292+0.94856925j, 0.43860930+0.04104116j, …
20 code-golf  math  matrix 

8
Excelでのゴルフのヒント
Excelがコードゴルフの有効な言語のように思えるので、これを見たことがないのは奇妙です(「コンパイラ」は無料ではありませんが)。 Excelは、ゴルフではややワイルドカードであり、中程度の複雑さのゴルフチャレンジが得意であり、時にはよりシンプルなチャレンジでもあります。多くの場合、Excelは文字列操作および文字列と数字の混合操作に関する課題に適しています。 Excelでゴルフをするための一般的なヒントは何ですか?私は、少なくともゴルフに特有の(VBAではない)ゴルフ問題全般のコードに適用できるアイデアを探しています。回答ごとに1つのヒントをお願いします。
20 code-golf  tips 

3
bash brace展開を展開します
主に歴史的な理由から、bashは構文とプログラミングのパラダイムの寄せ集めです。これにより、ゴルフが厄介になり、時にはイライラすることがあります。言語。これらの1つはブレースの拡張です。 ブレースの展開には2つの基本的なタイプがあります。 リストの中括弧には、コンマで区切られた任意の文字列のリストを含めることができます(重複や空の文字列を含む)。たとえば、{a,b,c,,pp,cg,pp,}展開されますa b c pp cg pp(空の文字列の周りのスペースに注意してください)。 シーケンスブレースには、で区切られたシーケンスエンドポイントが含まれる場合があります..。必要に応じて..、次のステップサイズが続きます。シーケンスのエンドポイントは、整数または文字のいずれかです。シーケンスは、どちらのエンドポイントが大きいかによって自動的に上昇または下降します。例えば: {0..15} に展開されます 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 {-10..-5} に展開されます -10 -9 -8 -7 -6 -5 {3..-6..2} に展開されます 3 1 -1 -3 -5 {a..f} に展開されます a b c d e f …
20 code-golf  string 

3
1つが上がり、もう1つが下がる
前書き この課題では、与えられた数字のシーケンスを2つのサブシーケンスに分割できるかどうかを決定します。1つは増加し、もう1つは減少します。例として、シーケンスを考えます8 3 5 5 4 12 3。次のように、2つのサブシーケンスに分割できます。 3 5 5 12 8 4 3 最初の行のサブシーケンスは増加しており、2番目の行のサブシーケンスは減少しています。さらに、このタスクを効率的に実行する必要があります。 入力 入力は、L0〜99999の範囲の整数の空でないリストです。言語のネイティブ形式で指定されるか、単にスペースで区切られます。 出力 出力はL、増加するサブシーケンスと減少するサブシーケンスに分割できる場合は真の値であり、そうでない場合は偽の値です。サブシーケンスは厳密に増加または減少する必要はなく、いずれかが空でもかまいません。 ルールとボーナス 完全なプログラムまたは関数を作成できます。最小のバイトカウントが優先され、標準の抜け穴は許可されません。さらに、このチャレンジではブルートフォーシングは禁止されています。入力の長さの多項式時間でプログラムを実行する必要があります。 2つのサブシーケンスを実際に返す必要はありませんが、返すと-20%のボーナスがあります。静的に型付けされた言語でボーナスを請求しやすくするために、偽のインスタンスに対して空のリストのペアを返すことは許容されます。 テストケース input -> None偽の入力および真実の入力の形式で与えられますinput -> inc dec。ここでは、可能な1つのサブシーケンスのペアのみを示します。もっとあるかもしれません。 [4,9,2,8,3,7,4,6,5] -> None [0,99999,23423,5252,27658,8671,43245,53900,22339] -> None [10,20,30,20,32,40,31,40,50] -> None [49,844,177,974,654,203,65,493,844,767,304,353,415,425,857,207,871,823,768,110,400,710,35,37,88,587,254,680,454,240,316,47,964,953,345,644,582,704,373,36,114,224,45,354,172,671,977,85,127,341,268,506,455,6,677,438,690,309,270,567,11,16,725,38,700,611,194,246,34,677,50,660,135,233,462,777,48,709,799,929,600,297,98,39,750,606,859,46,839,51,601,499,176,610,388,358,790,948,583,39] -> None [0,1,2,3,4] -> [0,1,2,3,4] [] [4,3,2,1,0] -> [] [4,3,2,1,0] …

10
迷路は解決できますか?
パズル 迷路n * mを解決できない場合は0を出力します 迷路n * mを解決できる場合は1を印刷します(1つ以上の方法で) (だから私はパスを求めていませんが、それが解決できる場合は!!!) 入力配列(2d): [[0,0,0,0,0,0,1],[0,0,0,0,0,1,0],[0,0,0,0,1,0,0],[1,0,0,0,0,0,0]] XXXXXXXXX XS XX X X X X X X XX FX XXXXXXXXX 0 = can pass through 1 = can not pass trough [0][n] is the last block of the first line [m][0] is the first block of the last …

2
NAND論理ゲートを使用して乗算機を構築する
同じタイプの以前の質問「NAND論理ゲートを使用して加算マシンを構築する」に基づいて、今回は加算ではなく乗算するように求められています。 入力線を取る(二線式)NAND論理ゲートの図を構築するA1、A2、A4、B1、B2、B4、2つの2進数表現AのB出力配線に0から7まで、および戻り値をC1、C2、C4、C8、C16、とC32表しますC、これの産物であるAとB。 スコアは、使用するNANDゲートの数(ゲートごとに1ポイント)によって決まります。物事を簡単にするために、ダイアグラムでAND、OR、NOT、XORゲートを使用し、以下の対応するスコアを使用できます。 NOT: 1 AND: 2 OR: 3 XOR: 4 これらの各スコアは、対応するゲートを構築するために必要なNANDゲートの数に対応しています。 最低スコアが勝ちます。

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