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

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

25
数字を考えています(Cop's Thread)
強盗のスレッドはこちら この警官と強盗の挑戦では、警官は正の整数を考えます。次に、入力として数値が提供されたときに1つの値を出力し、他のすべての正の整数入力に別の値を出力するプログラムまたは関数を作成します。警官は、番号を秘密にして、回答でプログラムを明らかにします。強盗は、番号を見つけることで答えを割り込むことができます。 キャッチは次のとおりです。これはcode-golfではありません 。代わりに、スコアは秘密の数字になり、スコアが低いほど良くなります。強盗がまだそれを見つけようとしている間は、明らかにあなたのスコアを明らかにすることはできません。投稿の1週間後にクラックされていない回答は、スコアが表示され、安全とマークされる場合があります。安全な答えを解読することはできません。 おそらく言うまでもありませんが、答えを採点できるはずです。つまり、意思決定マシンで受け入れられる値を正確に知る必要があります。あることを単に知るだけでは十分ではありません。 暗号化機能の使用 暗号化機能を使用しないように要求するほとんどの警官や強盗の挑戦とは異なり、この挑戦​​は完全にそれらを許可するだけでなく、それらを奨励します。あなたが勝つことを試みている限り、あなたはどんな方法でも答えを自由に作成できます。そうは言っても、他の方法を使用した回答も歓迎します。挑戦の目標は勝つことであり、あなたがチートしない限り、何もテーブルから外れていません。

30
整数のバイナリ値で1の最長シリーズを計算します
ゴール 負でない整数が与えられた場合、その整数のバイナリ値で最大数の連続した1の開始位置を返す関数を作成します。 入力が与えられたら0、を返し0ます。 番号に同じ長さの複数のストリークがある場合、最後のストリークの位置を返す必要があります。 入力 整数より大きいか等しい 0。 出力 以下で説明するように計算された整数。 ルール これはコードゴルフなので、各言語のバイト単位の最短コードが優先されます。 標準的な抜け穴は禁止されています。 例とテストケース 例1 関数には整数142が渡されます 142はバイナリで10001110に等しい 最長のストリークは「111」(3つのストリーク)です ストリークは2 ^ 1の位置から始まります 関数は結果として1を返します 例2 関数には整数48が渡されます 48はバイナリで110000に等しい 最長のストリークは「11」(2つのストリーク)です ストリークは2 ^ 4の位置から始まります 関数は結果として4を返します 例3 関数には整数750が渡されます 750はバイナリで1011101110に等しい 最長のストリークは「111」(3つのストリーク)です 長さが等しい2つのストリークがあるので、後のストリークを返します。 後のストリークは2 ^ 5の位置から始まります 関数は結果として5を返します

2
Office Escape:計画を立てましょう!
それは最後のスプリントです...そして、あなたのチームの半分は病気です。あなたは遅く働いて、その日の最後のコミットをして、楽しみにしています...なぜライトが消えたのですか?警備員がやってくるのを覚えていません... 私は家に鍵を置いた! 状況の恐怖が沈むにつれて、あなたはあなたが逃げようとしていると決める。 タスクの概要 逃げるには、計画が必要です!ただし、計画には失敗する可能性があり、計画ごとに異なる労力が必要であることはご存じでしょう。 お腹が空いていて、疲れていて、エンジニアであるあなたは、短いプログラムを書いて、複雑さから逃れるための最良の方法を決定し、成功の可能性とそれが必要とする努力のバランスを取ります。 建物の地図を作成します。 ####################### # = # ! = ! <-- window # ! = # (freedom!) #################= # # # = # # # = # # # = # # o ! # # ! = # ##| ! ## # ! = # …

8
Wordのフォントサイズセレクターをスクロールする
Word およびボタンは、次の規則に従ってフォントサイズを変更します。A▲ᴀ▼ 開始フォントサイズは11です。 場合は、フォントサイズが1の場合に押され、大きさは1のままです。ᴀ▼ フォントサイズは1〜12の範囲で1ポイント変化します。 フォントサイズは、12〜28の範囲の2ポイントで変化します。 選択肢は、28〜36の範囲の28、36、48、72、および80です。 フォントサイズは、80〜1630の範囲で10ポイント変化します。 フォントサイズは、1630〜1638の範囲の8ポイントで変化します。 場合は、フォントサイズが1638の場合に押され、サイズは1638のままです。A▲ 仕事 可能な限り少ないバイト数で、適切な形式でボタンを押した場合のフォントサイズを決定します。 例 [3,-1,2]、意味:結果は18です。A▲A▲A▲ᴀ▼A▲A▲ いくつかの可能なフォーマットです'^^^v^^'、[1 1 1 -1 1 1]、[True,True,True,False,True,True]、["+","+","+","-","+","+"]、"‘‘‘’‘‘"、"⛄️⛄️⛄️🌴⛄️⛄️"、111011、"CaB"、等... [2]:14 [-1]:10 [13]80 [-11,1]:2 [11,-1]:36 [170,-1]:1630 [2000,-2,100]:1638

20
優れたパスタイム
時々、私が本当に退屈しているとき、非負の整数の配列の合計を取るのが好きです。2のべき乗である長さの配列の合計のみを取ります。残念ながら、私はしばしば間違いを犯します。幸いなことに、私は自分の仕事を次のように追跡しながら追跡しています。 残りの番号が1つになるまで、隣接する番号のペアを追加します。例えば: 6 + 18 + 9 + 6 + 6 + 3 + 8 + 10 = 24 + 15 + 9 + 18 = 39 + 27 = 66 仕事は、私がどこかで間違いを犯したかどうかを判断することです。入力を関数に渡すか、標準入力から読み取ることができます。出力は印刷するか返すことができます。 入力:配列/リスト/など。非負の整数、および言語で必要な場合はその配列の長さも含まれます。その配列は、左から右、次に上から下に読み取られるすべての数字になります。例えば、上記の配列はなる: [[6, 18, 9, 6, 6, 3, 8, 10], [24, 15, 9, 18], [39, 27], [66]] または [6, …

17
入力されたASCII文字をマップする
他の課題、Reverse ASCII文字マップを必ず確認してください! ASCII文字セット(情報交換用のアメリカ標準コード)は、最も広く使用されている文字エンコード標準です。ASCIIコードは、コンピューター、通信機器、およびその他のデバイスのテキストを表します。 チャレンジ あなたの課題は、ユーザーが入力したASCII文字セットのマッピングを印刷することです。GIF: ユーザーがすべてのASCII文字を入力すると、出力は次のようになります。 マッピング 各文字には、16x6論理グリッド上の割り当てられた位置があり、左上の位置のスペース文字で始まり、その下に数字0が表示されるように折り返します。 印刷可能なASCII入力を受信したら、現在画面に表示されている文字を削除せずに、割り当てられた画面の場所にそのASCII文字を印刷します。 ルール プログラムは、印刷可能なASCII文字をマッピングするだけで0x20、0x7E。 すべての印刷可能なASCII文字が入力されるまで、プログラムを終了して文字を画面にマップし続けることはできません。ここから、プログラムを終了するか、Neverlandで実行できます。 プログラムは、スプレッドシート、テーブル、コンソールウィンドウ、グラフィカルウィンドウなど、好きな方法で文字をマッピングできます。 マッピングの表示方法に関係なく、リアルタイムで(ユーザー入力を受け取ったらすぐに)更新する必要があります。 プログラムが静かに入力を読み取らない場合は、カーソルを邪魔にならないようにしなければならないので、テキストはマップの邪魔になりません。 助けて 以下は、GIFの生成に使用した擬似コードアルゴリズムです。 loop forever c = input y_coord = c / 16 x_coord = c - y * 16 if c is printable print c at (x_coord * 2 + 1, y_coord + 1) end …

16
一番高いのは誰ですか?
正確なサイズを共有する2人の子供を持たないN人の子供が、何らかの順序で並んでいます。それぞれは、身長をその隣人としか比較できません。先生が「あなたが一番背が高い場合は手を挙げてください」と叫ぶとき、彼らが隣人の両方より背が高い場合、彼らはそうします。1人だけが手を上げると、彼が勝ちます。2人以上が手を挙げた場合、それらはすべて列から削除され(残りの子の順序を保持します)、プロセスを繰り返します。 明確な整数の配列(厳密に正であると仮定できます)を受け取り、このゲームの勝者を出力するプログラムを作成します。これはコードゴルフなので、最短のコードが優先されます。 例(中間ステージを表示): 5 3 9 8 7→3 8 7→8 1 2 9 4→9 9 3 8 7 4 12 5→3 7 4 5 →3 4 →4 現在のリーダー: ゼリー:17バイト[by Dennis♦] MATL:20バイト[Luis Mendo作] APL:28バイト[voidhawk] k:40バイト[by Paul Kerrigan] Pythonの戦いも続いています。さらに多くのゴルフ言語が登場するのを待っています。 現在、Dennis♦の回答を受け入れました。新しい勝者がいる場合は、選択を更新します。

30
標準の数値を合計します
1行に1つの整数を持つストリーム/ファイルを考えます。例えば: 123 5 99 コードはこれらの数値の合計、つまりを出力する必要があり227ます。 入力形式は、1行に厳密に1つの整数です。たとえば、整数の配列として入力が1行にあると想定することはできません。 STDINからファイル名の形式で入力を取得するか、選択した名前のファイルを入力できます。あなたはどれを選ぶことができます。入力を取得する他の方法は許可されていません。 入力には少なくとも1つの整数が含まれます。すべての整数が非負であり、それらの合計が未満であると仮定できます。232

16
これは、バイトというチャレンジです
おかしな名前を考えるのをやめる必要がある あなたの仕事は、あなたの言語のバージョンの整数配列が昇順でソートされるスニペット(入出力が組み込まれたプログラム)、関数、または完全なプログラムをできるだけ多く作成することですが、各プログラムについてのみ許可されます以前のプログラムで使用されていなかったASCII(またはASCII以外として直接指定されている場合は言語のコードページ)の文字を使用します。 これは回答例です(改行で区切られた別々のプログラム): Derp ASdFGHJKLAAA qwEEERtyRty この(架空の言語)で、私の最初の答えはDerp、最大使用され、D、e、rとp。2番目のプログラムでは、これらのキャラクターを再び使用することはできませんが、好きなだけキャラクターを再利用できます。3番目のプログラムなども同様です。 各プログラムは整数の配列をとる必要があるため、次のようになります(有効な入出力スタイルについては、入出力の例を参照してください)。 [3 4 -2 5 7 196 -44 -2] また、配列内のアイテムを配列として昇順で出力する必要があります。 [-44 -2 -2 3 4 5 7 196] スコアは提出の合計額になります。同点の場合、最低バイト数(コード内の最小バイト数)が勝ちます! プログラムの規則: すべての提出は、1つの言語バージョンで正しく実行する必要があります(so Python 2 != Python 3)。 提出物は、スニペット、関数、または完全なプログラムです。あなたはそれらを混ぜて一致させることさえ許されています-しかし、あなたはどちらがどれであるかを述べ、そして作業中の提出物へのリンクを提供しなければなりません。 可能であれば、すべてのソリューションへのオンラインリンクを提供してください。 すべての送信は、入力として配列(または任意の文字で区切られた文字列)を受け取り、並べ替えられた配列を(言語の配列形式または-区切り文字列として出力する必要があり{any character}ます。 ASCII(または言語のコードページ)以外の文字は使用できません。 たとえば、これらは有効な入力/出力です。 [1 2 3 4] (Clojure style arrays) [1, 2, 3, 4] …

30
中央値を計算する
チャレンジ 空でない実数のリストが与えられたら、その中央値を計算します。 定義 中央値は次のように計算されます:最初にリストをソートし、 エントリの数が奇数の場合、中央値はソートされたリストの中央の値です。 それ以外の場合、中央値は、ソートされたリストの中心に最も近い2つの値の算術平均です。 例 [1,2,3,4,5,6,7,8,9] -> 5 [1,4,3,2] -> 2.5 [1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,-5,100000,1.3,1.4] -> 1.5 [1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,-5,100000,1.3,1.4] -> 1.5

7
3つのポリグロット、2つのピリオド2クイン、および1つのコードゴルフチャレンジ
言語Aで実行するとプログラムBが生成され、言語BでプログラムAを実行するとプログラムCが生成されるように、プログラムAを生成します。 プログラムB、言語Bで実行するとプログラムAが生成され、プログラムBを言語Aで実行するとプログラムCが生成されます。 プログラムCを言語Aまたは言語Bで実行すると、「間違った言語!」が出力されます。 Program | Language | Result --------|----------|---------- A | A | Program B B | B | Program A A | B | Program C B | A | Program C C | A | "Wrong language!" C | B | "Wrong language!" 答えは次のテンプレートを使用する必要があります。 言語A /言語B、{aバイト} + {bバイト} …

6
ターザンのオリンピックつるスイングル​​ーチンを記録する
オリンピックのツルを振る人は、標準の木でルーチンを実行します。特に、標準ツリーにnは、0アップスルーのn-1頂点aと、各非ゼロ頂点をそのn % a下の頂点にリンクするエッジがあります。したがって、たとえば、標準ツリー5は次のようになります。 3 | 2 4 \ / 1 | 0 5を3で割ったときの剰余は2であるため、5を2で割ったときまたは4で割ったときの剰余は1であり、5を1で割ったときの剰余は0です。 今年、ターザンは頂点から始まり、頂点へn - 1とスイングし、頂点へn - 2と続きn - 3、最終的に頂点に降りるまで、新しいルーチンで金を守ります0。 ルーチンのスコアは、各スイング(降車を含む)のスコアの合計であり、スイングのスコアは、ツリー内の開始点と終了点の間の距離です。したがって、標準ツリー5のターザンのルーチンのスコアは6です。 から4までのスイングが33点(ダウン、アップ、アップ)を獲得し、 から3にスイングして21ポイント(ダウン)を獲得し、 から2までのスイングが11ポイント(ダウン)を獲得し、 から降車し1て01ポイント(下)を獲得します。 正の整数nを指定すると、標準ツリー上のターザンのルーチンのスコアを計算するプログラムまたは関数を記述しnます。サンプルの入力と出力: 1 -> 0 2 -> 1 3 -> 2 4 -> 6 5 -> 6 6 -> 12 7 -> 12 8 -> 18 …
32 code-golf  math  number  number-theory  code-golf  code-golf  restricted-source  programming-puzzle  css  code-golf  parsing  code-golf  random  encryption  code-golf  ascii-art  fractal  code-golf  math  code-golf  sorting  graph-theory  path-finding  permutations  code-golf  tetris  code-golf  card-games  code-golf  math  sequence  rational-numbers  code-golf  chess  code-golf  string  geometry  grid  code-golf  ascii-art  grid  code-golf  sequence  integer  code-golf  math  number-theory  packing  polyomino  code-golf  math  code-golf  string  quine  permutations  code-golf  math  code-golf  image-processing  optical-char-recognition  code-golf  string  kolmogorov-complexity  sequence  integer  code-golf  number  permutations  palindrome  code-golf  kolmogorov-complexity  code-golf  number  sequence  string  fewest-operations  code-golf  string  kolmogorov-complexity  sequence  primes  code-golf  string  ascii-art  code-golf  string  number  alphabet  code-golf  counting  code-golf  number  sequence  number-theory  primes  code-golf  subsequence  word-search 

30
本当ですか?ゼリーに聞いて!
バックグラウンド Octave(および、拡張によりMATL)の非常に便利な真偽/偽の行列の解釈に触発され、JellyはȦ(Octaveスタイルのすべて)アトムを取得しました。 Ȧ入力として配列を受け取り、配列が空ではなく、ツリー構造のどこにも数字0(整数、浮動小数点、または複素数)を含まない場合は1を返します。それ以外の場合は0を返します。 たとえば、配列[[]]は空ではなくゼロを含まないため真理ですが、[[0]]は最も内側のレベルに0を含むため偽です。 仕事 選択したプログラミング言語で、完全なプログラムまたは関数を作成します。これは、入力として空の、場合によってはギザギザの整数配列を取り、Ȧがそれぞれ1または0を返すかどうかを示す真実または偽の値を出力または返します。 あなたの提出物は、以下の規則に従わなければなりません。 真偽値と偽の値は、すべての入力で一貫している必要があります。つまり、Ȧが1を返すすべての配列は同じ真偽値にマップし、Ȧが0を返すすべての配列は同じ偽値にマップする必要があります。 完全なプログラムは入力として配列の文字列表現しか受け取れないため、これは許可されています。ただし、返されるreprまたは同様の言語のカノカル表現を使用する必要があります。 特に、配列の最初の要素の前にスペースがあるとは想定できません。 ご使用の言語がジャグ配列をネイティブに表現できない場合(のみ)、既存のプログラミング言語の標準的な構文を使用して、入力の文字列表現を使用できます。 言語にギザギザの配列(リストやタプルなど)を表す方法がいくつかある場合は、そのうちの1つをサポートするだけで済みます。 あなたの言語自体がこのチャレンジへの有効な提出物であるビルトインを持っている場合、あなたはあなたの答えでそれを使うことはできません。他のすべてのビルトインは許可されます。 配列操作と文字列操作の両方を使用して回答を投稿することをお勧めします。一方が他方よりも著しく短い場合でも。 すべての標準コードゴルフ規則が適用されます。 バイト単位の最短コードが勝つように! 真実のテストケース [1] [10] [[]] [[[[1]]]] [[], [1], [1, 2]] [[1], [1, [2]], [1, [2, [3]]]] [[8], [8, [9]], [8, [9, [10]]]] 偽のテストケース [] [0] [0, -1] [-1, 0] [[[[0]]]] [[0], [1, 2], [3, 4, …

2
Wireworldでデジタル時計を作成する
このGame of Lifeの質問に触発されました。 Wireworldは、「ワイヤー」を流れる「電子」をシミュレートします。「ワイヤー」の単純な配置は、一般的な論理ゲートの動作を生成します。 Wireworldセルラーオートマトンでデジタル時計を作成するように挑戦します。時計は通常の方法で00:00から23:59まで、またはAM / PMインジケーターで11:59までカウントアップしてからリセットする必要があります。 エントリは目に見えるように2つの部分に分割する必要があります。パートAには、すべての非表示ロジック、数字のインクリメントとループに関与するすべてのパーツが含まれている必要があります。パートBは、ディスプレイとそれを駆動するロジックになります。これらの2つの部分間の唯一の接続は、BCDの 4桁の時間を表す16本のワイヤである必要があります(AM / PMインジケータ用のオプションワイヤ1本と、信号が連続していない場合の信号クロックライン用のオプションワイヤ1本付き)。(編集:常にゼロのワイヤは省略可能) クロック動作のタイミングは一貫している必要があります。シミュレーションでは、状態間の1440の遷移ごとに同じ数のティックを使用する必要があります。16本のワイヤ上の電子は、パーツAから同時に放出され、並行してトリップを開始する必要があります。 これは、コードとゴルフのコンペティションです。スコアは、パーツAを囲む軸に沿った境界ボックスの領域です。 同様に、これがテキスト言語である場合、スコアは4つの4ビット出力を生成するクロック管理関数のサイズになります。この出力には、ループと4つのカウンターのロジックが含まれ、その出力をデコードおよび印刷する関数ではありません。 パートBは、好きなだけ大きくも小さくもできます。ワイヤーワールド回路からの出力を単純に「デバッグ」する簡単な方法はないため、提出物の出力がそれを実行している誰かに見えるようにするためにのみ必要です。オンラインで利用可能な複数のBCD-> 7セグメント回路があります。好きなものを自由に使用するか、クロック信号線が必要な場合は独自のものを作成し、AM / PMインジケーターを数字と同様のスケールで表示してください。 編集:パートBはオプションになりました。パートAからのBCD出力がある場合は、お気軽に送信してください。クロックが動作することを確認するのは面倒ですが、一時停止したシミュレーションではビットの列を問題なく読み取ることができます。

12
パスカルの三つ編みを生成
これはパスカルの三つ編みです。 1 4 15 56 209 780 2911 10864 40545 151316 564719 1 3 11 41 153 571 2131 7953 29681 110771 413403 1542841 1 4 15 56 209 780 2911 10864 40545 151316 564719 完全に作り上げました。ブレイズ・パスカルは、私が知る限り編組を持っていませんでした。もしそうなら、おそらく数字ではなく髪でできていたでしょう。 次のように定義されます。 最初の列1の中央にはシングルがあります。 2番目の列には1、上部と下部にあります。 次に、中央に数字を置くか、上下に数字のコピーを2つ置くかを交互に選択します。 数字が上または下にある場合、2つの隣接する数字の合計になります(例:)56 = 15 + 41。頭を少し傾けると、Pascalの三角形のステップのようになります。 数値が中央にある場合、3つの隣接する数値すべての合計になります(例:)41 = 15 + 11 …

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