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

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

1
フェンスポストを見つける
バックグラウンド フェンスポスト工場の近くで原子爆弾が爆発しました!フェンスポストは私たちの文明の存続に不可欠であるため、できるだけ多くを救出する必要があります。放射線耐性のあるロボットを派遣して地域を探索していますが、彼らの人工視覚をプログラムするのはあなたの仕事です。 入力 入力は、|-#改行区切りの文字列として指定された2種類のフェンスポストパーツと瓦bleを表す、文字の長方形のグリッドです。フェンスの支柱は爆発によって恐ろしく損なわれ、一部は熱によって融合しました。候補のフェンスポストを、開始と終了で|1つ以上-のsがある(|-|または|---|そうでない||)水平パターン、または開始と終了で-1つ以上|のs がある垂直パターン(基本的に)のいずれかに定義します90度回転した水平候補フェンスポスト)。実際fencepostは別の候補fencepostとその部分のいずれかを共有しない候補fencepostあります。 出力 出力は、入力グリッド内の実際のフェンスポストの数です。 例 入力グリッドを検討する |#|-|#|## #||--|||# ###|#|--# ###-||--| -#-|#-|#- #---#-#-| #-#-|#--| このグリッドには5つの候補フェンスポストがありますが、実際のフェンスポストは2つだけです(太字で表示)。したがって、正しい出力は2です。 ルール 完全なプログラムまたは関数のいずれかを作成できます。最小のバイトカウントが優先され、標準の抜け穴は許可されません。 追加のテストケース 入力: ##-- ||## -#|- |#|# 出力:0(0候補フ​​ェンスポスト) 入力: -##|-##-- #|#-|#||- --|-#|#|| ##||||-## ||#|--|-| -#|-#--|# |####|#-# 出力:0(5つの候補フェンスポスト) 入力: #|--|---|-|# ####|##--||- -|-##||#|--- -#|#-|-#-||| #|-##--###|- ---#-||-#-## #|---|###|-# -|---#-#|#|# |#--|####-|- 出力:4(8つの候補フェンスポスト) 入力: -|-||---##|# ---|######-# ####-##|#--| …

1
意思決定マップを正規化する
テキストのブロックを処理して新しいテキストを返す関数またはプログラムを作成します。最小の有効なプログラムが勝ちます。 テキストブロックの各行の形式は次のとおりです。 12:34,56 最初の番号は回線IDで、他の2つのコンマ区切り番号は他の回線への参照です。 入力テキストでは、数字は0以上の任意の整数にすることができます。すべての数字はASCIIエンコードされた10進数で、先頭にゼロは付きません。重複する行IDはありません。存在しない回線IDへの参照はありませんが、参照されていない回線IDがある場合があります。 出力テキストでは、最も小さい番号の行がテキストブロックの先頭に移動し、0に再番号付けされます。この行への参照も更新する必要があります。その行の最初の参照は0または1でなければなりません。2番目の参照は、最初の参照が1の場合のみ2になります。それ以外の場合は0または1でなければなりません。 すべての行は昇順で、昇順である必要があります(スキップされた番号はありません)。行n-1への以前の参照があった場合、または現在の行IDがnである場合にのみ、行nへの参照を持つことができます。行0を除き、下位の行IDによって参照されない行があってはなりません。そのような行は、最終出力の前に削除する必要があります。 入力テキストは常に正しい形式であると想定できます。 テスト入力#1: 45:73,24 78:24,78 89:24,73 73:45,3 72:3,24 3:24,24 24:3,89 再注文: 3:24,24 24:3,89 89:24,73 73:45,3 45:73,24 78:24,78 72:3,24 番号が変更されました: 0:1,1 1:0,2 2:1,3 3:4,0 4:3,1 78:1,78 72:0,1 最終出力のために参照されていない行が削除されました: 0:1,1 1:0,2 2:1,3 3:4,0 4:3,1 もちろん、プログラムはこの順序に従う必要はなく、正しい出力を生成するだけです。出力は、テキストの単一ブロックまたは言語で最も近いものである必要があります。つまり、文字ごとの直接出力はありません。返すか(優先)、ブロック全体を直接出力することができます。出力が別の関数またはプログラムに渡されると仮定します。 テスト入力#2 5:2,3 7:3,2 2:4,2 4:2,3 3:4,3 出力: 0:1,0 1:0,2 2:1,2 テスト入力#3 …
11 code-golf 

2
Poly Nemoを見つける!
大野!ニモ、私たちの小さなカクレクマノミはこのASCIIの海で失われ、彼の父マーリンは彼を見つけようとしています。 あなたの仕事は、Marlinを安全にNemoに連れて行くことです。しかし、気をつけてください、私たちはルーズにブルースを食べているので、彼を避けてください! 詳細 小文字のアルファベットのみを含む長方形のASCIIオーシャングリッドが表示されますa-z。この海にはがありnemo、marlinそのbruce内部には連続ポリオミノの形で、常にポリオミノの最初の列の一番上のセルから始まります。たとえば、可能なすべてのテトロミノのうち、有効なものは以下のスニペットにリストされています コードスニペットを表示 nemo n e m o no em ne om nem o o nem n e mo o m ne ne m o n emo ne mo n em o mo ne コードスニペットを実行する結果を非表示スニペットを展開 ただし、次のようなフォームは無効であり、入力には含まれません。 omen ne mo nem o o m en nem o n eo …

2
ドクター!
医師は、ダレック軍から脱出しようとする際に、さまざまな空間のポケットを螺旋運動で移動することにより、彼らをスピンさせて送ることにしました。 利用可能な時空の性質に応じて、医師はTARDISに入る必要があり、空間のセクションの高さと幅、およびスパイラルを開始するための入口点を制御します。 空間のセクションは、左から右、上から下へ、1から始まる連続した整数で満たされたh x wグリッドとして想定できます。 開始位置は、行と列のrcとして提供されます...これから、TARDISのソフトウェアは、行r列cから上に向かって反時計回りに外側にらせん状になった整数の順序付きリストを吐き出す必要があります... あなたの仕事は、医師の仲間として、TARDISをプログラムして4つの数字をフォーマットで取得しheight width row column、TARDISが移動する必要がある空間のセクターを決定することです。 入力1 5 5 3 3 (5、5グリッド、位置3,3から開始) 出力1 13 8 7 12 17 18 19 14 9 4 3 2 1 6 11 16 21 22 23 24 25 20 15 10 5 出力の説明 元のグリッド 生成されたスパイラル 入力2 2 4 1 2 …
11 code-golf 

4
長さnのマジックシーケンス
マジックシーケンスとは、負ではない整数のシーケンスでx[0..n-1]ありx[i]、i たとえば、6,2,1,0,0,0,1,0,0,0は、6個の0、2個の1などがあるため、マジックシーケンスです。 nを指定すると、長さnのすべてのマジックシーケンスを出力する関数を作成します 10秒以内に最高値nの正しい出力を生成できるプログラムが勝ちます。(ただし、すべてのプログラムは大歓迎です) たとえば、Aliceのプログラムは10秒以内にn = 15まで処理できますが、Bobのプログラムは同じ時間内にn = 20まで処理できます。ボブが勝ちます。 プラットフォーム:Linux 2.7GHz @ 4 CPU

12
CodeGolf-厄介な開発者のバリー#2
これはCodeGolfのフォローアップです。 ノイズ#1を無視 してください。唯一の問題は、バリーが事態をさらに悪化させていることです。何が起きたのか見てみましょう 更新 ランダムな入力と期待される出力を作成するためのコードを追加しました。これは、自分が望むものを説明するのが苦手だからです。 説明 Dumb CorpのAPIの別のメソッドは、プロバイダーがアイテムに対して提供している現在の価格、最大販売を行う最適な価格、および文字列UPまたはとしての以前の価格と比較したその価格の傾向を提供しますDOWN。ショップからアイテムを削除するか、待つかを決定する必要があります。 入力 80,90,UP 150,100,DOWN 65,65,UP 1618,1618,DOWN 840,1200,DOWN 54,12,UP 30,1,UP 予想される出力を備えた巨大な入力サンプルデモの場合、次のコード(js)をブラウザーコンソールに配置すると、テスト用の有効なランダム入力が出力されます。 var output = ""; var result = ""; for(i=10;i--;){ var currentPrice = Math.floor(Math.random() * 10000) + 1; var optimalPrice = Math.floor(Math.random() * 10000) + 1; var tendency = Math.round(Math.random())?"UP":"DOWN"; var tresult = "WAIT\n"; …

1
ラスタライズされたテキストのサイズを変更し、ピクセル化されていないように見せます
これは、テキストエディターで入力したテキストのスクリーンショットです。 これは、より大きなサイズの同じテキストです。 およびのような顕著な対角線のある文字で、エイリアシングがどれほど見えるかに注目してください。この問題は、ラスターフォントがTrueTypeのような「スケーラブル」フォーマットへの人気を失った主な理由です。xz しかし、これはラスターフォントに固有の問題ではなく、それらのスケーリングが通常実装される方法だけである可能性があります。以下に、しきい値処理と組み合わせた単純な双線形補間を使用した代替レンダリングを示します。 これはよりスムーズですが、理想的ではありません。斜めのストロークはまだでこぼこであり、湾曲した文字は好きcでo、まだポリゴンです。これは特に大きなサイズで顕著です。 それでは、もっと良い方法はありますか? タスク 3つのコマンドライン引数を取るプログラムを作成します。 resize INPUT_FILE OUTPUT_FILE SCALE_FACTOR どこ INPUT_FILEは入力ファイルの名前です。これは、白い背景に黒いテキストを含む画像ファイルであると想定されています。便利なメインストリームラスターイメージ形式(PNG、BMPなど)を使用できます。 OUTPUT_FILEは、出力ファイルの名前です。ラスター形式またはベクター画像形式のいずれかです。ClearTypeのようなサブピクセルレンダリングを実行している場合、色を導入できます。 SCALE_FACTORは、画像のサイズを変更できる正の浮動小数点値です。所与のX × Yピクセルの入力ファイルとを因子スケールSは、出力の大きさを有することになるSX × SY PX(整数に丸められます)。 サードパーティのオープンソース画像処理ライブラリを使用できます。 コードに加えて、最初の画像を入力として使用して、スケールファクター1.333、1.5、2、3、および4でプログラムのサンプル出力を含めます。比例間隔のフォントなど、他のフォントで試すこともできます。 得点 これは人気コンテストです。投票数から投票数を引いたものが最も多いエントリが勝ちです。正確に同点の場合、以前のエントリが優先されます。 編集:エントリの不足により期限が延長されました。未定。 投票者は、主に出力画像の見栄えに基づいて判断し、次にアルゴリズムのシンプルさ/優雅さに基づいて判断することをお勧めします。

6
最大連結製品
整数p1、...、pkのリストが提供されます(必ずしも個別ではありません)。それぞれの値は1から9までの値です。p1、...、pkをそれぞれ1回だけ使用して、数字の連結を形成し、新しい数字のリストを作成できます。次に、この新しいリストの積を出力します。目標は、数字の最適な連結を選択することにより、この製品を最大化することです。 たとえば、リスト2 3 2(スペースで区切られた)が与えられます。次の連結を形成できます。 2 3 2(これらの連結の積は12) 23 2(製品は46) 32 2(製品は64) 22 3(製品は66) 連結を形成できる最大の製品は66なので、出力します。 ルール: 少なくとも1つの乗算が必要です(つまり、すべての桁を連結して出力​​することはできません)。 乗算以外の演算子を使用したり、括弧を挿入したりすることはできません。 指定された整数のリストはスペースで区切られ、すべての整数の値は1〜9であると仮定します。 最短コード(バイト単位)が勝ちます! テストケース: 入力:1 2 3; 出力:(63つまり、21*3) 入力:2 5 9; 出力:468(52*9) 入力:1 2 3 4; 出力:1312(41*32)

2
数独のYウィング戦略
私は最近、本当に難しい数独を生成する新しい数独アプリを手に入れました。これは標準的な戦略では解決できません。それで、私はいくつかの新しいものを学ばなければなりませんでした。これらの戦略の1つはY-Wing戦略です。「厳しい戦略」の下にランク付けされていますが、実際はそれほど難しくありません。 例 この戦略では、4つのセルのみが重要です。したがって、画像内の他のセルはすべて無視しました。 各セルのすべての候補を調べます。次の例では、候補のあるセル3 7(つまり、同じ行に、同じ3x3ボックスに1 2 4 5 6 8 9あるなどの理由で候補をすでに拒否していることを意味します)、候補のあるセル、候補のあるセルと候補のあるセル。Y-Wing戦略は、正解セルの候補からを削除し、候補としてのみ残して、それを埋めることができることを示唆します。したがって、正しい数を見つけ、完全な数独を解決するための一歩近づいています。126 73 62 662 なぜ6削除できるのですか? 説明 6が真のセルの正しい数であると仮定しましょう。今そこにある6ので、我々は削除することができ、この列に6のみ残し、右上のセルの候補から7、我々は埋めることができたし。同じことは、左下のセルで発生します。を削除して6に記入でき3ます。ここで、左上のセルを見ると矛盾が生じています。これ7は、同じ行と列に既にaが存在するため、候補のと3を削除し7て、3候補をまったく残さないようにするためです。これは明らかに不可能です。したがって、6は正しいセルの正しい数にはなりません。 より正確には:候補を持つセルが4つあり[A B] [A C] [C D] [B C](この順序または循環回転)、セルが(同じ行、同じ列、または同じ3x3ボックスを介して)円で接続されている(セル1がセル2に接続されている場合) 1セルに接続された4セルに接続されているセル3)に接続され、削除することができるよりも、Cより[C D]細胞。これは3個のセルという、非常に重要である[A B]、[A C]と[B C]2人のだけの候補者それぞれが含まれています。異なるセルには[C D]、多かれ少なかれ含まれている可能性があります(Dゼロ、1つ、またはさらに多くの候補が可能です)。 どちらの方法でも接続できると明示的に述べたことに注意してください。次の例では、戦略が再び適用されていることがわかります。しかし、今回は4つのセルが長方形を形成していません。左下と右下のセルは、同じ3x3ボックス内にあるため、単純に接続されています。Y-Wingによると、1左上のセルの候補として削除できます。今回は、このセルにまだ2つの候補が残っているため、実際には新しい正しい番号が見つかりませんでした。しかし、それにもかかわらず、1さまざまな戦略への扉を開くことができます。 戦略についての詳細が必要な場合、またはさらにいくつかの例が必要な場合は、sudokuwiki.orgにアクセスしてください。 チャレンジ仕様 セルの候補を表す4つのリストを入力として受け取ります。4つのセルは円のように接続されます(セル1はセル2に接続され、セル2はセル3に接続され、セル3はセル4に接続され、セル4はセル1に接続されます)。各リストは昇順でソートされていると想定できます。 あなたの仕事は、(Y-Wing戦略を適用して)1人の候補者を削除し、結果の候補者リストを同じ順序で返すことです。戦略を適用できない場合は、同じ候補者リストを返すだけです。 2つの解決策がある場合(セルBのAを削除するか、セルDのCを削除することができます)、1つのソリューションのみを返します。どちらでもかまいません。 入力は、任意のネイティブリストまたは配列形式にすることができます。リストのリストなどを使用することもできます。STDIN、コマンドライン引数、プロンプトまたは関数引数を介して入力を受け取り、戻り値を介して、または単にSTDOUTに出力することで出力を返すことができます。 これはコードゴルフです。最短のコード(バイト単位)が優先されます。 テストケース [3 7] [6 7] [2 6] [3 6] => [3 …
11 code-golf  sudoku 

3
ラップアラウンドサブシーケンス
前書き この課題では、一般的な文字列のサブシーケンスを見つけることがタスクです。サブシーケンスは必ずしも連続しているわけではなく、文字列を「ラップアラウンド」して、その終わりを超えて最初からやり直すこともできます。ただし、ラップの数を最小限に抑える必要があります。 より正式には、let uとvbe任意の2つの文字列、およびk ≥ 0整数です。私たちuは、のようなkラッピングのサブシーケンスでありv、のような別個のインデックスが存在し、最大でインデックスが満たされると言います。これは、左から右に移動し、途中でキャラクターの一部を選択し、ほとんどの時間をラップすることで(同等に、最大でスイープすることで)内部で見つけることができることを意味します。ラップアラウンドの後でも、複数の文字を選択することはできません。また、-wrappingサブシーケンスは、私たちがよく知っている通常のサブシーケンスであることに注意してください。i1, i2, ..., ilen(u)u == v[i1] v[i2] ... v[ilen(u)]kijij > ij+1uvkk+1v0 タスク あなたの入力は二つの非空の英数字文字列であるuとv、そしてあなたの出力は、整数最小となるkようuであるkの-wrappingサブシーケンスv。そのようなものkが存在しない場合、出力はになります-1。 例 入力u := xyzyxzzxyxとを考慮してくださいv := yxzzazzyxxxyz。uin の文字をv貪欲な方法で探し始めたら、約3回ラップします。 yxzzazzyxxxyz >─x─────y────z┐ ┌─────────────┘ └y───────x────┐ ┌─────────────┘ └──zz─────x─y─┐ ┌─────────────┘ └──────────x──> したがって、正しい出力は最大で3です。一番左の文字xが1回選択され、2回目のスイープでは再利用できないため、どのように無視されるかに注意してください。ただし、ラップアラウンドが2つしかない短い方法があります。 yxzzazzyxxxyz >──────────xyz┐ ┌─────────────┘ └yxzz────x────┐ ┌─────────────┘ └───────y─x───> 1回のラップアラウンド(つまり、2回のスイープ)では不十分であることが判明したため、正しい出力は2です。 ルールとボーナス 関数または完全なプログラムのいずれかを記述でき、必要に応じて入力の順序を変更することもできます。最小のバイトカウントが優先され、標準の抜け穴は許可されません。 合計10秒未満ですべてのテストケースを計算すると、-10%のボーナスがあります。私のマシンで不明瞭なケースをテストします。Pythonでのリファレンス実装には約0.6秒かかります。1.86 GHzデュアルコアCPUを搭載した7歳のラップトップを使用していますが、これを考慮する必要があります。 テストケース "me" "moe" -> 0 …

3
マトリックスプロパティXの再検討(またはXの喜び)
この課題は、一部はアルゴリズムの課題、一部は最適化の課題、一部は単に最速のコードの課題です。 AT行列は、最初の行rと最初の列で完全に指定されますc。マトリックスの残りの各要素は、斜め上および左にある要素の単なるコピーです。それはM[i,j] = M[i-1,j-1]。正方形ではないT行列を許可します。ただし、行数は列数以下であると常に想定しています。たとえば、次の3 x 5 Tマトリックスを考えます。 10111 11011 11101 マトリックスに同じ(ベクトル)合計を持つ非同一のインデックスを持つ2つの空でない列のセットが含まれている場合、マトリックスはプロパティXを持つと言います。1つまたは複数の列のベクトル和は、単に列の要素ごとの合計です。つまり、x要素を含む2つ以上の列の合計は、それぞれがx要素を含む別の列です。1つの列の合計は、列そのものです。 最初の列と最後の列が同じであるため、上記のマトリックスにはプロパティXがあります。単位行列にプロパティXが含まれることはありません。 上記のマトリックスの最後の列を削除するだけの場合、プロパティXを持たず、4/3のスコアを与える例が得られます。 1011 1101 1110 タスク タスクは、バイナリエントリを持ち、プロパティX を持たない最高スコアのTマトリックスを見つけるためのコードを記述することです。わかりやすくするために、バイナリエントリを持つマトリックスは、各エントリが0または1であるというプロパティを持ちます。 スコア スコアは、列の数を最適なスコアマトリックスの行数で割ったものになります。 タイ・ブレーカー 2つの回答のスコアが同じ場合、最初に提出された方が勝ちです。 無制限のスコアを取得する方法を誰かが見つけた(非常に)まれなイベントでは、そのようなソリューションの最初の有効な証明が受け入れられます。可能性がさらに低い場合、有限行列の最適性の証明を見つけることができるので、もちろん勝利も授与します。 ヒント ここでは、プロパティXを使用せずに最高スコアのマトリックスを検索での回答はすべて有効ですが、最適ではありません。プロパティXのないT行列があり、それらは循環的ではありません。 たとえば、プロパティXのない7×12 Tの行列がありますが、そのような巡回行列はありません。 21/11は、これと以前の課題からの現在のすべての答えを打ち負かすでしょう。 言語とライブラリ 自由に利用できるコンパイラ/インタープリター/などを備えた任意の言語を使用できます。LinuxおよびLinuxでも自由に利用できるライブラリ用。 ボーナススコアが2を超える最初の回答には、すぐに200ポイントの賞金が授与されます。トン・ホスペルはこれを達成しました! 現在のリーダーボード C ++。Ton Hospelによるスコア31/15 Javaの。Peter Taylorによるスコア36/19 ハスケル。alexander-brettによるスコア14/8

10
警官と強盗
誰もがConwayのGame of Lifeを常に実装したいと考えています。つまらない!代わりに警官と強盗をしましょう! 警官と強盗の2つのチームがあります。各チームには、それぞれ50のヘルスを持つ5人のメンバーがいます。プログラムは継続的にループします。各反復で、次のことが発生します。 チームごとに、最初の文字(C警官、R強盗)、スペース、スペースで区切られたメンバーのHPのリスト、および改行を印刷します。これがチームのステータスです。両方が完了したら、別の改行を印刷します。たとえば、最初のラウンドのように見えるものは次のとおりです。 C 50 50 50 50 50 R 50 50 50 50 50 1〜10の乱数(1と10の両方を含む)を選択します。番号を呼び出しますN。N偶数であれば、強盗はこのラウンドを失います。奇数の場合、警官は負けます。 HPが0より大きい負けたチームのメンバーをランダムに選び、NHP を差し引く。メンバーのHPはステータスで0を下回ってはなりません。 ループを再開します。 1つのチームのすべてのメンバーがHPをすべて失うと、ゲームは終了します。その後、警官が勝った場合、次のように出力されます: C+ R- そして強盗が勝った場合: R+ C- これはコードゴルフであるため、最短のキャラクターが勝ちます。 Python 2のサンプル実装を次に示します。 import random cops = [50]*5 robbers = [50]*5 while any(cops) and any(robbers): # print the status print 'C', ' '.join(map(str, …
11 code-golf 

4
言葉の音
あるものを別のものとして視覚化できるように、人々は多くのことを書いてきました。今、私は手紙を音楽に翻訳できることを提案します!テキストファイルを取り、各文字がからの特定のノートに変換されたサウンドファイルを出力するプログラムを作成するのがあなたの仕事C3-C8です。 免責事項-私は実際に音楽が良い音を出すことを期待していませんが、私は驚かれることを望んでいます。 仕様書 ファイルの名前を文字列として、BPM(1分あたりのビート)をintとして受け取ります 大文字AをメモにするC3 そして、以下の順番ですべてのキャラクターを半歩上に移動します。 ABCDEFGHIJKLMNOPQRSTUVWXYZ ()-,;.'"abcdefghijklmnopqrstuvwxyz はい、すべての文字が使用されるわけではありません。すべての文字がオクターブにまたがっているからです。 この方法でファイル内のすべての文字を翻訳します 与えられたBPMで4分音符としてメモをまとめる サウンドファイルとして保存するか(midiが最も簡単だと思いますが、何でも構いません)または再生します 正常な入力形式であれば問題ありません 標準的な抜け穴はありません これはコードゴルフなので、バイト単位の最短コードが勝ちです! ボーナス 出力の転置を許可する-50バイト 複数のファイルを取得することで、複数のトラックを互いに重ねることができます-75バイト 連続した文字を1つの長いメモに結合する-50バイト 編集:うわー、負のスコアがあります。土曜日に勝者を発表します。
11 code-golf  music  audio 

4
BrainfuckでURLをエンコードする
この質問に触発されて、今日の目標はbrainfuckでURLをエンコードすることです。 ブラウザがハッキングされました!ロケーションバーはブレインファックインタープリターに変わりました。URLをブレインファックプログラムに変えるプログラムが必要です。私のコンピューターも非常に遅いので、brainfuckプログラムが小さければ良いです。 ああ、私の作業中のタブは1つしか開いていません。そのため、プログラムはツイートでのみ送信できます。 入力として文字列を受け取り、brainfuckプログラムを出力する任意の言語で、ツイート(140文字)に適合するプログラムを作成します。 このBrainfuckプログラムは、入力なしで実行され、出力を生成します。 この出力は、Google Chromeのロケーションバーに挿入され、実行されます。 Google Chromeの動作が#1から入力文字列を入力することで得られる動作と同じ場合、ソリューションは有効です。URL短縮サービスによるリダイレクトは異なる動作と見なされます-少なくとも同じドメインにとどまります。 Brainfuckインタープリターには、各セルに無限精度の符号付き整数があり、セルの数に制限がないと仮定できます。 スコアは、次のURLセットをエンコードするために生成されたBrainfuckプログラムの長さの合計によって決まります。 https://www.google.com/ /codegolf/47895/ http://www.golfscript.com/golfscript/examples.html http://en.wikipedia.org/wiki/Percent-encoding ftp://ftp.freebsd.org/pub/FreeBSD/ https://github.com/isaacg1/pyth/blob/master/doc.txt#L92 http://ftp.gnu.org/non-gnu/nethack/nethack-3.4.0.tar.gz.back-RSN.README 最小スコアが勝ちます。

8
指定された長さの文字列を出力するBrainf_ckプログラムを生成します
あなたの友人は、独特のロックシステムを備えた金庫に侵入しようとしています。特定の場所で一定数の穏やかなノックが必要です。あなたの友人は番号(1〜99999の範囲)を発見し、必要なノックを生成するガジェットを所有しています。ただし、ガジェットはBrainfuckインタープリターです!したがって、友人はBrainfuckプログラムをフィードする必要があります。これは、明らかに、可能な限り短くする必要があります(ガジェットのI / Oが遅い)。 あなたの仕事は彼を助けることです!入力として数値を受け入れ、入力を受け付けNず、印刷可能なASCII文字の文字列を出力するBrainfuckプログラムを出力するプログラムまたはサブルーチンを任意の言語で記述します(スペース文字を除く-範囲33のコード... 126)の長さN。 例:入力の10場合、出力は +++++++++++++++++++++++++++++++++.......... (しかし、短縮できると確信しています!) スコアは、次の値の出力の長さの合計になりますN(これらは乱数です)。 55 68 15 28 841 838 522 846 4898 9004 9363 3810 13230 67175 37231 44701 ああ、あなたはあなたのコード(ジェネレータープログラム)をあなたの友人にTwitterで送信します。140文字以下であることを確認してください! PS Brainfuck言語には多くのバリアントがあります。テープが両方向に無限(または「円形で十分な大きさ」)で、セルに32ビットのint容量(有限で最大99999の数値を保持できる)があると仮定しましょう。また、ラッピングなし:セルがオーバーフローすると、マシンは自己破壊します!

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