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

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

3
手紙、動く!
文字列を指定すると、アルファベットの位置ごとに(最初の文字から)各文字を移動する必要があります。文字列の最後に到達した場合は、折り返す必要があります。文字以外を移動する必要はありません。 例: Dog Dはアルファベットの4番目の文字なので、4スポット右に移動します。ラップした後、文字列をに変更しますoDg。oは15番目の文字(15 mod 3)= 0であるため、移動しません。gは7番目の文字-(7 mod 3)= 1であるため、文字列はになりgoDます。 hi*bye h8文字目、8スポット移動- hi*bye=>i*hbye i9文字目、9スポット移動- i*hbye=>*hbiye b2文字目、2スポット移動- *hbiye=>*hiybe y25文字目、25スポット移動- *hiybe=>*hibye e5文字目、5スポット移動- *hibye=>*hibey 文字以外を移動する必要はありませんが、それでもスペースを占有します。 cat => tca F.U.N => .F.NU mississippi => msiisppssii
35 code-golf  string 

22
配列を数学の問題に変える
非負の整数の空でないリストが与えられた場合、それを算術問題として書き直すことを検討してください。 プラス記号(+)は、左から右へ(つまり、リストの先頭から末尾へ)増加する数値のペアの間に挿入されます。 マイナス記号(-)は、左から右に向かって減少する数値のペアの間に挿入されます。 乗算記号(*)は、等しい数のペアの間に挿入されます。 別の言い方をすると、サブリストa,bはa+bif a<b、a-bif a>b、およびa*bifになりa==bます。 たとえば、リスト [12, 0, 7, 7, 29, 10, 2, 2, 1] 表現になるだろう 12 - 0 + 7*7 + 29 - 10 - 2*2 - 1 これはに評価され 75ます。 そのようなリストを取り込んで評価し、結果を出力または返すプログラムまたは関数を作成します。 操作の順序が重要です。乗算は、加算または減算の前に実行する必要があります。 入力リストに1つの数値がある場合、それが評価されるものでなければなりません。例えば、[64]与える必要があります64。 evalまたはexec、同様の構成要素の使用が許可されています。 追加の例を次に示します。 [list] expression value [0] 0 0 [1] 1 1 [78557] 78557 78557 …

2
PPCGハンディキャップシステム
誰もが知っているように、meta は 言語間のコードゴルフのスコアリングに関する苦情であふれ てい ます(はい、各単語は別々のリンクであり、これらは氷山の一角にすぎないかもしれません)。 実際にPythのドキュメントを調べることに煩わされた人たちに非常にWithしているので、コードチャレンジに特化したWebサイトにふさわしい、建設的なチャレンジをもう少し行うのは良いことだと思いました。 課題はかなり簡単です。入力として、言語名とバイト数があります。これらを関数の入力、stdinまたは言語のデフォルトの入力方法として使用できます。 出力として、修正されたバイト数、つまりハンディキャップが適用されたスコアがあります。それぞれ、出力は関数出力、stdoutまたは言語のデフォルトの出力方法である必要があります。タイブレーカーが大好きなので、出力は整数に丸められます。 最もい、ハッキングされたクエリ(リンク -自由にクリーンアップできます)を使用して、コードゴルフの質問に対するすべての回答のスナップショットを含むデータセット(.xslx、.ods、.csvを含むzip)を作成しました。。あなたはこのファイルを使用する(そして、それはあなたのプログラムに利用可能であることを前提とし、例えば、それは同じフォルダ内にあります)、または別の従来の形式にこのファイルを変換することができます(、、など-それだけで、元のデータが含まれていてもよいです!)。名前には、選択した拡張子を付けたままにし てください。.xls.mat.savQueryResults.extext 次に詳細を説明します。言語ごとに、Boilerplate BおよびVerbosity Vパラメーターがあります。これらを一緒に使用して、言語の線形モデルを作成できます。ましょうn実際のバイト数でありc、修正されたスコアです。単純なモデルを使用しn=Vc+Bて、修正されたスコアを取得します。 n-B c = --- V 簡単ですよね?さて、決定するためVとB。ご想像のとおり、線形回帰、またはより正確には最小二乗加重線形回帰を行います。詳細については説明しません。方法がわからない場合は、ウィキペディアがあなたの友人であるか、運がよければあなたの言語のドキュメントです。 データは次のようになります。各データポイントは、バイト数nと質問の平均バイト数になりcます。票を計上するために、ポイントは票の数に1を加えたもの(0票を計上するため)で重み付けされますv。反対票のある回答は破棄する必要があります。簡単に言えば、1票の回答は0票の2回答と同じように数えられます。 次に、このデータは、n=Vc+B加重線形回帰を使用して前述のモデルに適合します。 たとえば、特定の言語のデータが与えられた場合 n1=20, c1=8.2, v1=1 n2=25, c2=10.3, v2=2 n3=15, c3=5.7, v3=5 ここで、関連する行列とベクトルA、yおよびWを、ベクトル内のパラメーターを使用して構成します [1 c1] [n1] [1 0 0] x=[B] A=[1 c2] y=[n2] W=[0 2 0], [V] [1 c3] [n3] …

9
文字列をひっかく
スナックされた文字列は次のようになります。 T AnE eOf ifi ing h s x l A k e r isI amp Sna dSt あなたのタスク 文字列sとサイズをn取得し、スナックされた文字列を出力します。入力しThisIsAnExampleOfaSnakifiedString、3上記の例を生成します。 仕様書 s コードポイント33から126までのASCII文字のみが含まれます(スペースや改行は含まれません)。 s 長さは1〜100文字です。 n各出力文字列セグメントのサイズを表す整数です。「蛇」の曲線を構成する文字の各行(上/下または左/右)はn文字です。例については、テストケースを参照してください。 n 3〜10になります。 出力文字列は常に下向きになります。 各行の末尾のスペースは許可されます。 出力の最後にある末尾の改行も使用できます。 先行スペースは使用できません。 code-golfは、バイト単位の最短コードが勝つことを意味します。 テストケース a 3 a ---------- Hello,World! 3 H Wor e , l llo d! ---------- ProgrammingPuzzlesAndCodeGolf 4 …
35 code-golf  string  ascii-art  code-golf  code-golf  string  balanced-string  decision-problem  code-golf  string  geometry  grid  code-golf  tips  lisp  code-golf  quine  tips  king-of-the-hill  code-challenge  math  code-golf  string  palindrome  math  fastest-code  code-golf  string  counting  code-golf  code-golf  internet  code-golf  quine  source-layout  hello-world  code-golf  math  number  sequence  arithmetic  code-golf  ascii-art  grid  code-golf  number  grid  code-golf  string  crossword  code-golf  code-golf  ascii-art  grid  counting  code-golf  code-golf  math  sequence  arithmetic  number-theory  code-golf  code-golf  graphical-output  geometry  random  code-golf  ascii-art  grid  counting  code-golf  string  ascii-art  code-challenge  test-battery  code-golf  string  code-golf  ascii-art  kolmogorov-complexity  code-golf  interpreter  code-golf  math  sequence  code-golf  math  primes  set-partitions  code-golf 

28
Champernowne定数で数値を見つける
前書き 10を基数とする場合、Champernowne定数は、連続する整数の表現を連結することによって定義されます。ベース10:0.1234567891011121314151617...など。 の最初の出現は小数で15始まることがわかり20thます。 Position 0000000001111111111222222222233333333334444444444555555555566666666 1234567890123456789012345678901234567890123456789012345678901234567 ^ 0.1234567891011121314151617181920212223242526272829303132333435363738... ^^ 15 = position 20 の最初の出現は小数で45始まり4thます: Position 0000000001111111111222222222233333333334444444444555555555566666666 1234567890123456789012345678901234567890123456789012345678901234567 ^ 0.1234567891011121314151617181920212223242526272829303132333435363738... ^^ 45 = position 4 そのため、タスクは簡単です。負でない整数を指定すると、シャンパーノーン定数の整数の位置を出力します。 ルール 機能またはプログラムを提供できます これはcode-golfであるため、バイト数が最小の提出が勝ちです! テストケース Input: 20 Output: 30 Input: 333 Output: 56 Input: 0 Output: 11 (note that the 0 before the decimal point is …
35 code-golf  math  number 

9
本物のソーセージフェスト
10月の最初の週末が近づいているので、独自のオクトーバーフェストをしましょう! バックグラウンド あなたと他のプログラマーは、ドイツのミュンヘンで地元のソーセージ屋に雇われています。ソーセージ担当者はオクトーバーフェストに、巨大なフォルクスフェストに必要なすべてのソーセージを提供しています。あなたは、上司が他の従業員にソーセージ関連の経験がなくても雇われた理由について話を聞くことができます。完璧なプログラミングスキルに雇われていることに気づきました。上司はソーセージアナライザーのコーディングを求めているようです。 今年、ソーセージ担当者はオクトーバーフェストでソーセージの種類を増やすことを決めましたが、どれだけ輸入したのかわかりません。 チャレンジ 上司が実際にインポートした特定の種類のソーセージの量を把握できるようにする必要があります。ソーセージ担当者がインポートしたすべてのソーセージの種類と数を出力するソーセージアナライザーをプログラムする必要があります。上司はこの機会に特別なフロッピードライブを購入し、ソーセージを与えて、それをにパイプしstdinます。 入力 上のいくつかのソーセージstdin、各ソーセージは1つのスペースで区切られています。ソーセージは次の形式で提供されます。 プリンスコルフ(P) ¤ | | | | | | ¤ サルチチョン(S) l | | | | | | | | l ランドイェーガー(L) \ / | | | | | | | | / \ カバノス(K) . | | | | | . コテチーノモデナ(C) …
35 code-golf 

30
ゴミ箱を管理する
PPCGでは、一部のユーザーがアナグラム(古い名前の文字を並べ替えることによって形成された新しい名前)によって一時的に名前を変更するのがやや伝統になっています。 誰が誰であるかを見つけることが困難になる場合があります。プログラムまたは関数を使用して、2つのフレーズが互いにアナグラムであるかどうかを判断できます。 チャレンジ プログラムまたは関数は、2つの文字列を取り、それらが相互のアナグラムである場合は真実の結果を生成し、そうでない場合は偽の結果を生成する必要があります。 ルール 入力には、文字(ASCII 65〜90および97〜122)、数字(ASCII 48〜57)、またはスペース(ASCII 32)のみが含まれます。 アナグラム関係は、ケースに依存しません。したがって、「アーム」と「RAM」はアナグラムです。 スペースもカウントされません。「キーボード」と「バークドヨー」はアナグラムです 許可されているすべての組み込み 入力形式は柔軟です(2つの文字列、2つの文字列の配列、適切な区切り文字で両方のフレーズを含む文字列...) コードゴルフ。最少バイトが勝ちます。 テストケース 真実: Lynn, Nyl N Digital Trauma, Tau Digital Arm Sp3000, P S 3000 Manage Trash So, Those anagrams 偽物 Calvins Hobbies, Helka Homba Android, rains odd In between days, bayed entwine Code golf, cod elf …

10
これらのページ番号を圧縮してください!
免責事項:私はこのサイトを娯楽目的で今しばらく使用していますが、これは私の最初の質問ですので、小さなエラーはご容赦ください。 バックグラウンド 宿題を割り当てるとき、私の先生は本当に迷惑で、私たちが個々にしなければならないすべての問題を書きます。そのため、私がしなければならない問題をコピーするには永遠に時間がかかります。私は自分の人生をもっと楽にしたいと思ったので、問題のリストがより少ないスペースを占めるようにするプログラムを彼に送るでしょう。 ページ番号または問題番号のリストを書き留めながら、ダッシュを使用して範囲を示します。たとえば、に19-21なり19, 20, 21ます。間にギャップがある場合、2カンマで区切られた範囲が使用される:19-21, 27-31なります19, 20, 21, 27, 28, 29, 30, 31。 今、あなたはおそらく「これはかなり些細なことだ」と考えているでしょう。実際、これはすでにこことここで回答されています。 ただし、キャッチがあります。連続する数字が等しい範囲がある場合、繰り返される数字は省略できます。例:に15, 16, 17なり15-7、に107, 108, 109なり107-9ます。ボーナスの場合、最後の連続する等しい数字が1より大きい場合、上限の最後の数字が下限の数字以下である場合、以下は省略できます(混乱して聞こえるかもしれませんが、おそらくいくつかの例で解決できます) 。109-113となり109-3下の最後の桁は10秒の場所を増やす意味として、。 チャレンジ プログラムは、入力を介して整数のリストを取得する必要があります(言語または関数の標準は何でも)。このリストをコンマ区切り、スペース区切り、または実際のリスト/配列として決定できます。 出力最短方法(第一の範囲の数でソートし、次に範囲に含まれる文字の和)は、この表記法を使用して、そのリストを表現します。各破線範囲は同じ行になければなりませんが、範囲はコンマまたは改行で区切ることができます(末尾の改行またはコンマは許可されます)。これらの範囲は適切でなければなりません。 私たちの学校のWi-Fiはひどいので、ファイルをできるだけ小さくして彼に送信する必要があります。最短のコード(バイト単位)が優先されます。 ボーナス 私の先生はだらしないので、彼を助けるいくつかのことがあります。複数のボーナスは乗算によってスタックされます。たとえば、-10%ボーナス(x 90%)と-25%(x 75%)ボーナス= 90%* 75%= x 67.5%(-32.5%ボーナス)。 時々、彼はそれらを間違った順番に並べます(彼は数学の先生ではありません)。プログラムが最小から最大にソートされていない整数を受け入れることができる場合、-20%のボーナスを受け取ります。 私たちの本は奇妙で、各セクションは-10で問題を数え始めます。プログラムが負の数を受け入れることができる場合、-25%を取ります。 下の桁が10の位の増加、たとえばに25-32減少するというボーナスを受け入れる場合25-2、-50%のボーナスを受け取ります。 テストケース In: 1, 2, 3, 4, 5 Out: 1-5 In: 3, 4, 5, 9, …

13
ピクセルを並べ替える
あなたの仕事は、入力画像が与えられると、同じサイズの出力画像を作成するプログラムを作成することです。この場合、すべてのピクセルは16進値で並べられます。 あなたのプログラムは: ピクセルを左から右にソートしてから下にソートするか、最初に列でソートしてから右にソートします。いずれの場合も、左上のピクセルが最小で、右下のピクセルが最大です。 透明度を使用しますが、これは必須ではありません。 RGBで並べ替えますが、CMYまたは少なくとも3つの値を持つ他の形式を使用できます。ソートする値を選択できます。(HSVはいくつかの素晴らしい画像を与えるかもしれません) ほとんどのコンピューターで開くことができる既知の画像形式を使用します。 ルール: 出力はディスクに書き込むか、ファイルにパイプできる必要があります。 入力は、イメージへの相対パスの形式でコマンドライン引数として与えられるか、コマンドラインからパイプで渡されます。 これはコードゴルフなので、バイト単位の最短コードが勝ちです!

30
階乗の終わりのゼロ
n!基数10の終わりにゼロの数を見つけるプログラムまたは関数を作成しnます。ここで、は任意の形式の入力数です。 これはn正の整数であると仮定できます。これは整数でn!もあることを意味します。には小数点の後にゼロはありませんn!。また、プログラミング言語がnおよびの値を処理できると想定できますn!。 テストケース 1 ==> 0 5 ==> 1 100 ==> 24 666 ==> 165 2016 ==> 502 1234567891011121314151617181920 ==> 308641972752780328537904295461 これはコードゴルフです。標準ルールが適用されます。バイト単位の最短コードが優先されます。 提出 回答が表示されるようにするには、次のマークダウンテンプレートを使用して、見出しから回答を開始してください。 # Language Name, N bytes N提出物のサイズはどこですか。スコアを改善する場合、古いスコアを打つことで見出しに残すことができます。例えば: # Ruby, <s>104</s> <s>101</s> 96 bytes ヘッダーに複数の数字を含める場合(たとえば、スコアが2つのファイルの合計であるか、インタープリターフラグペナルティーを個別にリストする場合)、実際のスコアがヘッダーの最後の数字であることを確認します。 # Perl, 43 + 2 (-p flag) = 45 bytes 言語名をリンクにして、リーダーボードスニペットに表示することもできます。 # [><>](http://esolangs.org/wiki/Fish), …

30
Abacabaシーケンスを生成する
この課題は、特定の深さのアバカバシーケンスを印刷することです。 最初の5つのシーケンスの図を次に示します(a(N)深さNのアバカバシーケンスです。大文字/小文字は単にパターンを示すためであり、これはプログラムの出力では必要ありません)。 a(0) = A a(1) = aBa a(2) = abaCaba a(3) = abacabaDabacaba a(4) = abacabadabacabaEabacabadabacaba ... a(25) = abacabadabacabaeabacabadabacabafabacabadabacabaeabacabadabacabagabacabadabacabaeabacabadabacabafabacabadabacabaeabacabadabacabahabacabadabacabaeabacabadabacabafabacabadabacabaeabacabadabacabagabacabadabacabaeabacabadabacabafabacabadabacabaeabacabadabacabaiabacabadabacabaeabacabadabacabafabacabadabacabaeabacabadabacabagabacabadabacabaeabacabadabacabafabacabadabacabaeabacabadabacabahabacabadabacabaeabacabadabacabafabacabadabacabaeabacabadabacabagabacabadabacabaeabacabadabacabafabacabadabacabaeabacabadabacabajabacabadabacabaeabacabadabacabafabacabadabacabaeabacabadabacabagabacabadabacabaeabacabadabacabafabacabadabacabaeabacabadabacabahabacabadabacabaeabacabadabacabafabacabadabacabaeabacabadabacabagabacabadabacabaeabacabadabacabafabacabadabacabaeabacabadabacabaia... おそらくわかるように、n番目のアバカバシーケンスは、n番目の文字とそれ自体に追加された最後のシーケンスです。(a(n) = a(n - 1) + letter(n) + a(n - 1)) あなたの仕事は、整数を取り、その深さのアバカバシーケンスを出力するプログラムまたは関数を作成することです。出力は、少なくとも15までの値に対して正確でなければなりません。

30
アレイをくり抜く
タスク この課題は非常に簡単です。入力は、少なくとも1×1のサイズの整数の長方形の2D配列です。任意の合理的な形式で取得できます。出力は入力配列になりますが、最初または最後の行または列にないすべてのエントリがに設定され0ます。入力と同じ形式である必要があります。 たとえば、入力配列が 67 4 -8 5 13 9 13 42 4 -7 1 1 3 -9 29 16 99 8 77 0 正しい出力は 67 4 -8 5 13 9 0 0 0 -7 1 0 0 0 29 16 99 8 77 0 ルールとスコアリング 完全なプログラムまたは関数を書くことができ、関数は入力を返す代わりにその場で修正することができます。最小のバイトカウントが優先され、標準の抜け穴は許可されません。 テストケース これらは、コピーアンドペーストを容易にするためにネストされたリストとしてフォーマットされます。 [[3]] -> …

13
ウィルロジャース現象
いわゆるウィルロジャース現象は、1つの要素が2つのセット間で移動したときに2つの(マルチ)セットの平均を上げることで統計を微調整する方法を説明します。簡単な例として、2つのセットを考えます A = {1, 2, 3} B = {4, 5, 6} それらの算術平均は 2、および5です。私たちが移動した場合4にA: A = {1, 2, 3, 4} B = {5, 6} 今、平均である2.5と5.5の両方の平均値は、単純な再編を通じて提起されているので、それぞれ。 別の例として、考えてみましょう A = {3, 4, 5, 6} --> A = {3, 5, 6} B = {2, 3, 4, 5} --> B = {2, 3, 4, 4, …

8
クラレンス・ザ・スロー・タイピスト
前書き Clarenceは、インターネットサービスプロバイダーで働くデータ入力担当者です。彼の仕事は、ISPのすべての顧客のIPアドレスをデータベースに手動で入力することです。彼は、次のレイアウトのキーパッドを使用してこれを行います。 123 456 789 .0 水平方向または垂直方向に隣接するキーの中心間の距離は、正確に1センチメートルです。例えば、中心間距離3とは、92センチメートルあろう。中心間の距離3とは5√2cmだろう。ピタゴラスの定理は、任意の2つのキー間の距離を計算するのに十分です。 Clarenceは、ISPで働いている人から期待されるように、非常に遅くて非効率的なタイピングシステムを使用しています。彼は1本の指を使用してキーを検索し、指をキーに移動し、それを押して、数字のすべての数字を繰り返します。このスタイルは「イーグル検索システム」として知っているかもしれません。指でキーボードを押して正しいキーを探してから、キープレスを押し下げる前に、イーグルが殺すために急降下するように。 たとえば、Clarenceが数値を入力する方法は次の7851とおりです。 彼は指を開始し7、キーを押します。 彼は指を右に1cm動かし8、キーを押します。 彼は指を1cm上に動かし5、キーを押します。 彼は指を斜め上方に動かし、√2cm離れ1てキーを押します。 したがって、クラレンスはを入力するように指を移動した総距離7851IS 1 + 1 + √23.41センチメートル程度です。 あなたの仕事は、クラレンスが指を動かして任意のIPアドレスを入力しなければならない距離を計算するプログラムを書くことです。 入力の説明 入力は次の形式の文字列です ().().().() ここで、それぞれ()は範囲0-の整数999です。これは、Clarenceが入力する必要があるIPアドレスを表します。入力例は次のとおりです。 219.45.143.143 また、0.42.42.42やなどの999.999.999.999入力は、無効なIPアドレスであるにもかかわらず、依然として有効な入力であることを指摘したいと思います。そのため、プログラムにIPアドレス確認コードを含める必要はありません。 出力の説明 指定されたIPアドレスを入力するために、クラレンスが指を動かす必要がある距離を出力します。必要に応じて小数第2位まで答えを丸めcm、出力で単位を使用します。入力例の出力は27.38cm(1 +√8+√5+ 2 + 1 +√5+ 3 + 1 +√5+√13+ 3 + 1 +√5)です。
35 code-golf 

4
無限の迷宮
バックグラウンド あなたは強力なウィザードの見習いであり、あなたのマスターは現在、彼の敵を閉じ込めるための次元間迷宮を作成するための呪文を開発しています。この悪魔のような機械をプログラミングすることは非常に危険なので、可能な限りコードを短くする必要があります。 入力 入力は、ピリオド.とハッシュの2次元グリッドで#、空行と壁を表し、改行で区切られた文字列として指定されます。常に少なくとも1つと1つ.あり#、末尾の改行があるかどうかを決定できます。 このグリッドは、無限の迷路の設計図であり、無限に並んだグリッドのコピーを無限に並べることによって作成されます。ラビリンスは、空のスペースの接続されたコンポーネントであるキャビティに分割されます(斜めに隣接するスペースは接続されません)。たとえば、グリッド ##.#### ...##.. #..#..# ####..# ##...## 次のラビリンスが発生します(すべての方向に無限に続きます)。 ##.######.######.#### ...##.....##.....##.. #..#..##..#..##..#..# ####..#####..#####..# ##...####...####...## ##.######.######.#### ...##.....##.....##.. #..#..##..#..##..#..# ####..#####..#####..# ##...####...####...## ##.######.######.#### ...##.....##.....##.. #..#..##..#..##..#..# ####..#####..#####..# ##...####...####...## この特定のラビリンスには、無限の面積の空洞が含まれています。一方、この設計図は、有限のキャビティのみを備えた迷路になります。 ##.#### ##..### ####... ..####. #..#### 出力 ラビリンスに無限の空洞が含まれる場合、出力は真実の値になり、含まれない場合は偽の値になります。ラビリンスには、有限と無限の両方の空洞が含まれることがあります。その場合、出力は真実です。 ルール 完全なプログラムまたは関数を作成できます。最小のバイトカウントが優先され、標準の抜け穴は許可されません。 追加のテストケース 無限の空洞: .# #.# ... #.# #.###.#.###.# #.#...#...#.# #.#.#####.#.# ..#.#...#.#.. ###.#.#.#.### #...#.#.#...# #.###.#.###.# ##.### …

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