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

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

25
ベルヌーイ数
ベルヌーイ数(具体的には、第二のベルヌーイ数)は、次の再帰的定義によって定義されます。 どこ意味の組み合わせを。 m入力として負でない整数を指定すると、10進数表現またはm2番目のベルヌーイ数の小数部を出力します。10進表現を出力する場合、少なくとも6桁の小数点(小数点以下の桁)の精度が必要であり、小数点以下6桁に丸めたときに正確でなければなりません。たとえばm = 2、0.166666523はに丸められるため、for は許容され0.166667ます。0.166666389はに丸められるため、受け入れられません0.166666。末尾のゼロは省略できます。10進表現には科学表記法を使用できます。 以下は、m小数点以下6桁に丸められた科学表記法で、最大60を含む小数部の入力と期待される出力です。 0 -> 1.000000e+00 (1/1) 1 -> 5.000000e-01 (1/2) 2 -> 1.666667e-01 (1/6) 3 -> 0.000000e+00 (0/1) 4 -> -3.333333e-02 (-1/30) 5 -> 0.000000e+00 (0/1) 6 -> 2.380952e-02 (1/42) 7 -> 0.000000e+00 (0/1) 8 -> -3.333333e-02 (-1/30) 9 -> 0.000000e+00 (0/1) 10 -> 7.575758e-02 …

14
色の色相
色のRGB値が与えられます。あなたのタスクは単純です:最も単純な定義で色相を計算することです。 最高、中、最低の値を持つチャネルがX、Y、Z(赤、緑、青のいずれか)であり、それらの値がx、y、zであるとします。この色の色相は(h(X)-h(Y))*(1 +(xy)/(xz))/ 2 + h(Y)です。ここで、 h(red) = 0 (or 360 if one of X or Y is blue) h(green) = 120 h(blue) = 240 入力は、0〜255の3つの整数で構成されますが、これらはすべて同じではなく、一貫した順序です。出力は、浮動小数点数、または整数を切り上げまたは切り捨てることができますが、一貫している必要はありません。出力の整数部が0または360の場合、どちらかを印刷できます。 画像の操作中などの暗黙的な変換を含む、色空間変換用の組み込み関数を呼び出すことはできません。 これはコードゴルフです。最短のコードが優先されます。 例 Input: 0 182 255 Output: 197 (or 198) Input: 127 247 103 Output: 110 Input: 0 0 1 Output: 240 Input: …
23 code-golf 

3
ピタゴラスの三角形の積み重ね
バックグラウンド ピタゴラスの三角形は、各辺の長さが整数である(つまり、辺の長さがピタゴラスのトリプルを形成する)直角三角形です。 この三角形の辺を使用して、次のようにさらに2つの一致しないピタゴラスの三角形を添付できます。 2つの三角形がオーバーラップせず、接続する辺の長さが等しい限り、フィットするようにこのパターンを続行できます。 問題は、与えられた空間にいくつの合同でないピタゴラスの三角形を収めることができるかということです。 入力 あなたは、2つの入力として整数、受信するWとH、関数の引数によって、STDIN、文字列、または何でもあなたが好きなの。整数は、10進数、16進数、2進数、単項(幸運、Retina)、またはその他の整数ベースとして受け取ることができます。あなたはそれを仮定するかもしれませんmax(W, H) <= 2^15 - 1。 出力 プログラムまたは関数は、重複しない接続された一致しないピタゴラスの三角形のリストを計算し、それぞれ3つの座標のセットのリストを出力する必要があります。座標は、空間内の実数であるx必要があり(間隔内にあり、間隔内[0, W]にあるy必要があります[0, H])、距離は機械の精度に対して正確でなければなりません。三角形の順序と各座標の正確な形式は重要ではありません。 1つの三角形から、接続された境界をステップオーバーするだけで他の三角形に「歩く」ことが可能でなければなりません。 上記の図を例として使用して、入力をとW = 60しH = 60ます。 出力は次の座標リストになります。 (0, 15), (0, 21), (8, 15) (0, 21), (14.4, 40.2), (8, 15) (0, 15), (8, 0), (8, 15) (8, 0), (8, 15), (28, 15) (8, 15), (28, …

2
接続文字
文字列として表される文字のブロックを受け取り、アルファベットで隣接する文字が接続された同様の文字列を出力または返すプログラムまたは関数を作成する必要があります。 視覚的な例(の形式input => output): b d b d |\ /| | \ / | => | X | | / \ | e |/ \e c a c a 詳細 入力は、スペース、改行、および最初のN小文字をそれぞれ1つだけ含む文字列になります。1 <= N <= 26 入力の行にはスペースが埋め込まれ、完全な長方形のブロックが作成されます。 アルファベットで隣接する文字のペアはすべて、同じ行、列、または対角線上にあり、を使用して直線のアスキー線で接続する必要があります\ / | or -。(行の長さは0である場合があります。) 次のタイプの2行オーバーラップを処理する必要があります。 / and \ become X | and - …

4
私のために歌を演奏する
チャレンジ ギターのタブ譜を指定すると、タブで表される曲を出力する必要があります。これは、コンピューターのスピーカーまたはオーディオファイル(.wav、.mp3、.midi、.aiffなど)に対するものです。タイミング用の2番目の入力もあります。 タブは、ファイルを介して入力することも、STDINに直接入力することもできます。タブはASCII形式になりますます。 スペック すべてのタブは、標準的なEチューニングの6本の6弦ギター用です:E2(82.41 Hz)、A2(110.00 Hz)、D3(146.83 Hz)、G3(196.00 Hz)、B3(246.94 Hz)、E4(329.63 Hz)。 (通常のピッキング以外に)必要な唯一のテクニックは次のとおりです。 ベンディング(これは常にハーフトーンベンドになります) Ha打 引っ張っ スライドアップ/ダウン ミュートされたストリングのサウンドを合成することはできないためx、-ます。 曲げるとき、曲げられていない状態から弦への完全な遷移を出力します。 2番目の入力は、タブ上の各シンボルが秒単位で表す時間です。例えば: 入力用: e|--- B|--- G|--- D|--- A|--- E|--- タイミング0.5では3、シンボルの列がある(ただし音符がない)ため、出力されるオーディオファイルは(3*0.5=1.5)1.5秒の無音になります。 タブの例 1- ウェイト(ジャックホワイト、ジミーページ+エッジエディション) e|----3-----3---3----2---------3--------------------| B|----3-----3---3----3--1-1----3--------------------| G|----0-----0---0----2--0-0----0--------------------| D|----0-----0---2-------2-2----0--------------------| A|----2-----0---2-------3-3----2--------------------| E|----3-----2---x----2--x-x----3--------------------| 2- ティーンスピリットのような匂い e|--------------|---------------|-------------|-------------| B|--------------|---------------|-------------|-------------| G|-----8h10-----|-8-8b----6--5--|-6--5--------|-------------| D|-10--------6--|---------------|-------8-6-8-|-8b----6--5--| A|--------------|---------------|-------------|-------------| E|--------------|---------------|-------------|-------------| 3- 星条旗 e|---0-------2-5---9-7-5-----------9-7-5-4-2-4-5------| B|-----2---2-------------2-4-5---5---------------5-2--| G|-------2-------------------------------------------2| D|----------------------------------------------------| …

23
条件ステートメントなしのルックアップ
この課題は、Arduinoマイクロコントローラーのプログラミングに触発されました。ボード上のさまざまなピンに接続された6つのLEDと6つのボタンがあります。コードでは、各ボタンとLEDにID番号(1〜6)が割り当てられています。ID番号に対応するピン番号(0〜13の範囲)は、switchステートメントを使用して検索されます。純粋に娯楽のために、これらのswitchesを算術/その他の関数で回避して、将来のコードメンテナーを恐ろしくすることができるかどうか疑問に思っていました。 チャレンジ ID番号(整数)をパラメーターとして受け取り、条件ステートメント(no if、no switchおよびno ternary)を使用せずに、6個のLEDおよび/または6個のボタンのピン番号(整数)を返す関数を提供します。 LEDの戻り値: ID Pin 1 3 2 5 3 6 4 9 5 10 6 11 ボタンの戻り値: ID Pin 1 2 2 4 3 7 4 8 5 12 6 13 ボーナスチャレンジ LEDまたはボタンのピンが要求されているかどうかを示すID番号(整数)と2番目のパラメーター(任意のタイプ)を受け取り、対応するピン(整数)を返す単一の関数を提供します。 ルール これはArduino固有の課題ではありません。任意の言語を使用し、必要なことを行います。 編集:steveverrilの提案で、これは今やゴルフの挑戦です。 がんばろう! (あなたがまだ読んでいる場合:プログラミング規格によって特許的に不条理でarbitrary意的ですが、マッピングはArduino Microのピン配列に基づいています。ピン0および1はシリアル通信用に予約されており、LEDは6つの最小番号のPWM対応ピンに割り当てられています、ボタンは残りのピンに割り当てられます)

18
そっくりの形
同様の数字 2つの長方形は、辺の比率が同じ場合に似ています。 これらの2つの長方形を検討してください。高さ5行、幅11文字の長方形: =========== =========== =========== =========== =========== 高さ10行、幅22文字の長方形: ====================== ====================== ====================== ====================== ====================== ====================== ====================== ====================== ====================== ====================== これらの形状は、側面の比率が同じであるため類似しています。正式に配置するには(hhhが最短辺、wwwが最長辺): h1w1=h2w2h1w1=h2w2 \frac{h_1}{w_1} = \frac{h_2}{w_2} 次のこともできます。 h1h2=w1w2h1h2=w1w2 \frac{h_1}{h_2} = \frac{w_1}{w_2} チャレンジ 「メイン」長方形といくつかの「その他」長方形を取り、「その他」が「メイン」に似ているものを印刷するプログラムまたは関数を作成します。 入力 形状と形状のリスト。各形状は、2つのゼロ以外の正の整数で構成され、長方形の幅と高さを示します。たとえば、これ: (4,2), (3,9) は、4x2と3x9の2つの長方形を示します。ただし、入力の正確な形式は必要に応じて変更できます。 出力 「メイン」に類似した「その他」の形状のインデックス。インデックスが0ベースか1ベースか、出力の正確な形式と順序を選択できます。 サンプルプログラム Pythonの場合: main = eval(raw_input()) # The main rectangle. rects = eval(raw_input()) …

7
飛行機の有効なヘビ
Vi Hartのビデオの1つに触発された(潜在的なチャレンジアイデアに満ちた宝庫) ヘビは同じ長さのセグメントで構成されており、各セグメント間の接続はまっすぐにすることも、90°回転させることもできます。 そのような蛇(最初の方向に依存する回転まで)をエンコードするには、スリッシャーを書き留め、ターンの方向(直線/左/右)を取ります。これは、左上から右を指します -+ +--+ SR RSSR | +-+ | S RSL S +--+ --+ LSSL SSR スリザーで表されます SRSLSSLRLRSSRSRSS そしてもちろん、平面のヘビは(のようにSSSSLLLSS)それ自体と交差することはできません。 あなたの仕事は、スリザーが有効かどうかを判断することです(少なくとも1つの自己交差が生じる) 入力 有効なスリッターである場合は「何か真実」、そうでない場合は「偽」で出力 される文字から作成された文字列。SLR2 < length < 10000 テストケース __Valid__ SSLSLSRSRSSRSSSLLSSSRRLRSLRLLSSS SRRLSLLRRLLSLRRSRLLRSRRLLRRSRLLSSLLRSRRLLRRSRLLRSRRLSLLRRLLSLRR (A hilbert curve) RLLRSRRLSLLRRLLSLRRSRLLRSRRLLRRSRLLSSLLRSRRLLRRSRLLRSRRLSLLRRLLSLRRSRLLRSRRLLRRSRLLSSLLRSRRLLRR SRRSRSRSSRSSRSSSRSSSRSSSSRSSSSRSSSSSRSSSSSRSSSSSSRSSSSSSRSSSSSS (Spiral) SSSSSSSSSSLSSSSSSSLSSSSSSSSLSSSSSLSSSSSSLSSSLLRRLLRRLLSLSSSRRSSSSRSSSRSSSSSSRSSSSSRSSSSSSSSRSSSSSSSRSSSSSSSSS (bigger, squigglier spiral) LRSLLRLSRSLLSRLSLRSLSSSLRRSSLSRRLRSRLRLSLRLLRLRSSLSLRLRSRSSSSSLSRRLSLSSSRRLRLRLRLRRLLSSLSSSRRLRLRLRLRLSLSSSSSSSSSSSSSRLRLLRLRLRLRLRLRLRLSLSSSLSLSLL __Invalid__ SRRLSLLRRLLSLRRSRLLRSRRLLRRSRLLLLRSRRLLRRSRLLRSRRLSLLRRLLSLRR SRRLSLLRRLLSLRRSRLLRSRRLLSRSSSRSSSSSSSRSRSSSSSSSRRLLRRSRLLRSRRLSLLRRLLSLRR SRRSRSRSSRSSRSSSRSSSRSSSSSSSSSSRSSSSRSSSSSRSSSSSRSSSSSSRSSSSSSRSSSSSS SSSSSSSSSSLSSSSSSSLSSSSSSSSLSSSSSLSSSSSSLSSSLLRRLRLRRLLSLSSSRRSSSSRSSSRSSSSSSRSSSSSRSSSSSSSSRSSSSSSSRSSSSSSSSS LRSLLRLSRSLLSRLSLRSLSSSLRRSSLSRRLRSRLRLSLRLLRLRSSLSLRLRSRSSSSSLSRRLSLSSSRRLRLRLRLRRLLSSLSSSRRLRLRLRLRLSLSSSSSSSSSSSSSRLRLLRLRLRLRLRLRLRLSLSSSLSLSLLSLRLSLRSLRSLRSLSLSLRSRLSLRSLRLSRSLLLRLRLRRRRSLSLSSLLSLSLSLSSLLSLSLLRLRSLLRSRLSLSSLLLLSSSSSSSSSSSSSSSSSSSSRLRLLRRLRLRLLRLRLRLRLRLSSSSLSLRLLRLSLSSLSLSLSLSLRLLRLSLLLSRSSSSSSSSSSSSSSSRLRLRLLRLRLSLSRSRSSSLSRLRLRLRSLSLSLSRLLSRLSLSLSLSLSSLSLSLLSLSRLLRLRLRLRLRLRLRLRLRLRLSLSRLRLSLLRRLSLLSLSLSLSLSLLSLSLSLRLRLRLRLRLRLRLRLRLRRLRSLSLSLSLSLSLSLSSLSSSSSLSLSSSLSLSLSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS …

9
Lispのような構文のフォーマット
バックグラウンド (真実の、心が痛む物語に基づいて) 私の時間の中で、私はLispや同様の言語でよく遊んでいました。私はそれらで書いて、実行して、解釈して、設計して、マシンに私のために書いてもらいました...そして、もし私を悩ますことがあるなら、それは私の特定のフォーマットスタイルに準拠していないLispを見ています。 残念ながら、一部のテキストエディター(咳 XCode 咳)は、コードをコピーして貼り付けるたびに美しいタブとスペースを削除する傾向があります。 (A (B (C) (D)) (E)) (ABCDE任意の関数はどこにありますか) 一部のテキストエディターは、この素敵なコードを次の目的で処理します。 (A (B (C) (D)) (E)) なんてこった!それは読めません! ここで私を助けて? チャレンジ この課題の目標は、以下で説明する形式で改行で区切られた一連の関数を取得し、読みやすさと優雅さを強調するより美しい配置を返すことです。 入力 FアリティN引数の関数を、次のような構成体として定義します。 (F (G1 ...) (G2 ...) (G3 ...) ... (GN ...)) G1, G2, ..., GNすべての機能はそれ自体でどこにありますか。アリティ0関数Aは単純(A)ですが、アリティ2関数Bの形式は(B (...) (...)) コードは、すべての関数の先頭の括弧(最初の関数を除く)の前に、単一の改行を持つ一連の関数として入力を受け取る必要があります。上記の例は有効な入力です。 あなたは仮定することができます: 括弧はバランスが取れています。 関数を250回以上インデントする必要はありません。 すべての機能は括弧で囲まれています。 () 関数の名前には、印刷可能なASCII文字のみが含まれます。 関数の名前に括弧やスペースが含まれることはありません。 入力時にオプションの末尾の改行があります。 出力 …

2
コンピューターの修理を先延ばしにしてください!
この挑戦は、本当の(そして悲劇的な)インスピレーションによってもたらされます。最近、キーボードの数字列が少し散発的になりました。キーは1-9時々機能しますが、それ以外の場合は結果がありません。熱心なプログラマーとして、これは恐ろしいことです!(その感嘆符を参照してください。それは、彼らが現在動作していることを知っている方法です。)数字自体だけでなく、記号もしばしば必要です。!@#$%^&*(半分の時間でも完全に無効です!Cプログラマーとして、ラップトップを修正するコードをいじくり回すという忙しいスケジュールから時間をとるのではなく、私はこの問題の回避にもっと興味を持っています。過去数週間にわたって、コード内の数字リテラルはすべてゆっくりと16進数に置き換えられたため、コピーして貼り付けるために数字を探し回る必要はありません。ただし、一部の数字は、キーなしでは簡単に入力できません1-9。たとえば、数字1を16進数で簡単に記述することはできません。1コード内のs をに置き換えました0xF - 0xE。影響を受けている唯一のキーがある1-9ので、私はのようなシンボルの完全な使用を維持し+、-と/。ただし、乗算または括弧は使用できません。*そして(、しばしば壊れています。これはあなたの挑戦につながります。 入力 n標準入力または使用言語の同等の整数。必要に応じて、整数の前または後に改行または他の空白文字を追加できます。または、コマンドライン引数を介して入力を受け取ることもできます。 プログラムは負の入力に正しく応答し、少なくとも32ビットの符号付き整数を処理できる必要があります。 出力 プログラムは、数nを1つ以上の16進値の合計、差、または除算として書き込むための、最短の(空白文字以外の)方法を、観察可能な形式で出力する必要があります。この問題を解決する方法は複数あり、同じ長さの出力を他の出力よりも優先する必要はありません。 出力の形式にする必要があり、次の16進数値である数字だけを含有し、そしてシンボルの一つです。浮動小数点ではなく、整数除算について説明しましょう。A % A % A...A0xA-F a-f%-+// (出力nは、慣例のように、最初に左から右に除算を評価し、次に左から右に加算と減算を評価するときに結果になることに注意してください。) テストケース 入出力 1 0xF - 0xE(または0xF-0xEまたは0xB-0xAまたは0xd - 0xcまたは0xF/0xF) 15 0xF 255 0xFF 30 0xF + 0xF スコアリングとルール これはコードゴルフです。予備スコアは、ソースファイルのバイト数です。 1-9ソースで数字を使用することはできません。 !@#$%^&*(ソースでシンボルを使用できますが、それぞれのスコアに+20のペナルティが課せられます。 プログラムはn、その関数が人間が読める形式の出力を生成する限り、引数として受け取る関数に置き換えられます。関数の戻り値は出力としてカウントされません。 標準の抜け穴は許可されていません。 最低スコアが勝ちます!がんばろう! 書式設定/質問/明確さに関して何か問題がありましたか?お知らせ下さい!これはこのサイトへの私の最初の提出です!

1
今聞こえますか?
バックグラウンド あなたはソフトウェア帝国の豊かな経営者です。あなたの時間はたくさんのお金の価値があります。そのため、常に最も効率的なルートで旅行する必要があります。ただし、幹部として、あなたは重要な電話に参加するのに多くの時間を費やします。絶対に電話を落とさないことが重要です。したがって、携帯電話サービスのないエリアを移動することはできません。 チャレンジ 3つのタプルのリストが表示されます。各タプルは、セルタワーの位置とパワーを表します。例として、影響の円を表す半径16の円で[50, 25, 16]位置<x,y> = <50, 25>するセルタワーを表します。このリストを念頭に置いて、開始位置から<0, 0>目的地に移動し<511, 511>、セルサービスを失うことなく可能な限り最短距離で移動する必要があります。これはcode-golfなので、最短のコードが勝ちです! 入出力 ファイルなど、またはを使用してSTDINを介してネストされた配列として、読みやすい形式に入力を自由に操作できますeval。まあ。入力のハードコーディングに使用される正確な文字はカウントされませんが、変数名と割り当て文字はカウントされます。入力が特定の順序になっていることや、すべてのセルタワーが問題に関連していることを想定しないでください。ご質問がある場合は、コメントを残してください、私はそれを明確にしようとします。 出力は座標のリストで、接続されたときに出口へのパスを形成するポイントをマークします。精度は、最も近い整数に丸める必要があるだけで、出力例の1〜2単位離れている場合は問題ありません。これを明確にするために、以下の画像を含めました。 幸運を祈ります! 例 input: [ 32, 42, 64] [112, 99, 59] [141, 171, 34] [157, 191, 28] [177, 187, 35] [244, 168, 57] [289, 119, 20] [299, 112, 27] [354, 59, 58] [402, 98, 23] [429, 96, …

13
DVIコネクタピン
これは、スペクトルのより単純な終わりのコードゴルフチャレンジであると思われます。しかし、ここでいくつかのミクロ最適化を実行することは素晴らしいことだと考えました。 あるDVIコネクタの3つの基本タイプ DVI-A(アナログ)、DVI-D(デジタル)とDVI-I(積分)が:。さらに、DVI-DおよびDVI-Iコネクタにはシングルリンクバージョンとデュアルリンクバージョンがあります。これらの5つの異なるコネクタはそれぞれ、異なるピンのセットを使用します。 1を考えるとA、D1、D2、I1、I2コネクタの種類の識別子として、コネクタのピンの対応するASCII表現を印刷します: A: # # # # # # # ===== # # # # # # # # # D1: # # # # # # ===== # # # # # # # # # # # # D2: # # # # # # # …

14
新年のリサイクル
2015年の適切な解決策は、より持続可能な生活を送ることです。リサイクルから始めます。リサイクルコード、つまり! あなたの仕事は、2015末尾の改行の有無にかかわらず(そしてそれだけで)STDOUTに番号を印刷することです。ただし、PPCGからいくつかの古いコードをリサイクルして、そうする必要があります。仕組みは次のとおりです。 2014-12-16 00:00:00Z(サンドボックスに投稿した日)より前にCodeGolf.SEに投稿された回答を選択してください。例外:昨年の新年のチャレンジからの回答は使用できません。 その回答からコードブロックを1つ選択します(インラインコードスニペットではなく、独自の段落である必要があります)。このブロックは、実際のコードとしてアドバタイズする必要があります。たとえば、たまたま固定幅書式を使用するテストケースや出力例を使用することはできません。 このチャレンジの提出物を形成するために、そのコードブロックの文字を再配置します。順序の変更のみが可能で、文字の追加や削除はできません。これには改行が含まれます。 元のソースブロックが言語で構文的に有効であることを示すことができる必要があります。最良の場合、コンパイル時または実行時エラーなしで実行されることを示すことでこれを行うことができます。したがって、元のコードはJavaであったかもしれませんが、(すべてのファイルがWhitespaceで有効であるため)ホワイトスペースの回答に使用できますが、おそらくPythonの回答には使用できません(元のコードは有効なPython構文ではないため) )。 答えは、すべての入力および外部状態(実際の現在の日付を含む)を無視する必要があることに注意してください。これは、可能であれば空の場合、それがクラッシュしないよう、言って、STDINから読み込むと、ストリームのすべての可能な内容で同じ出力を生成します。 結果のコードは、完全なプログラムである必要があります(関数でも、REPL環境を想定したスニペットでもありません)。 これはコードゴルフなので、最短回答(バイト単位)が勝ちます。 リーダーボード これは、異なる言語で非常に異なる結果になると確信しています。したがって、次のStack Snippetは、通常のリーダーボードと言語ごとの勝者の概要の両方を生成します。 回答が表示されるようにするには、次のマークダウンテンプレートを使用して、見出しから回答を開始してください。 # Language Name, N bytes N提出物のサイズはどこですか。スコアを改善する場合、古いスコアを打つことで見出しに残すことができます。例えば: # Ruby, <s>104</s> <s>101</s> 96 bytes コードスニペットを表示 function answersUrl(e){return"http://api.stackexchange.com/2.2/questions/"+QUESTION_ID+"/answers?page="+e+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+ANSWER_FILTER}function getAnswers(){$.ajax({url:answersUrl(page++),method:"get",dataType:"jsonp",crossDomain:true,success:function(e){answers.push.apply(answers,e.items);if(e.has_more)getAnswers();else process()}})}function shouldHaveHeading(e){var t=false;var n=e.body_markdown.split("\n");try{t|=/^#/.test(e.body_markdown);t|=["-","="].indexOf(n[1][0])>-1;t&=LANGUAGE_REG.test(e.body_markdown)}catch(r){}return t}function shouldHaveScore(e){var t=false;try{t|=SIZE_REG.test(e.body_markdown.split("\n")[0])}catch(n){}return t}function getAuthorName(e){return e.owner.display_name}function process(){answers=answers.filter(shouldHaveScore).filter(shouldHaveHeading);answers.sort(function(e,t){var n=+(e.body_markdown.split("\n")[0].match(SIZE_REG)||[Infinity])[0],r=+(t.body_markdown.split("\n")[0].match(SIZE_REG)||[Infinity])[0];return n-r});var e={};var t=1;answers.forEach(function(n){var r=n.body_markdown.split("\n")[0];var i=$("#answer-template").html();var s=r.match(NUMBER_REG)[0];var o=(r.match(SIZE_REG)||[0])[0];var …

3
カルカソンヌタイルを配置する
ボードゲーム ボードゲーム「カルカソンヌ」では、プレーヤーはエッジを一致させてタイルを配置し、地形の大きな連続した領域を作成することで最高のスコアを獲得します。以下は(大体)ゲームに含まれるタイルの種類と数量です。 #01 x4 #02 x5 #03 x8 #04 x2 #05 x9 #06 x4 #07 x1 #08 x3 #09 x3 #10 x3 #11 x4 #12 x5 #13 x3 #14 x3 #15 x2 #16 x5 #17 x5 #18 x2 #19 x3 #20 x1 #21 x5 #22 x2 #23 x1 #24 x1 …

8
印刷可能なASCIIに関連する多作の完全なパングラムプログラム
更新:時間制限が削除されました。出力を記述することができる必要があります-新しいルールを参照してください。 パングラムはのような、少なくとも一度アルファベットのすべての文字を使用する文です。 速い茶色のキツネは怠laな犬を飛び越えます。 完璧なパングラムは正確に一度、すべての文字を使用しています。 95個の印刷可能なASCII文字(16進コード20から7E)をアルファベットとして使用して、完璧なパングラムであるプログラムの作成を検討してください。 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ このようなプログラムには、正確に95文字が含まれている必要があり、各印刷可能なASCII文字は1回だけ、ただし任意の順序で発生します。(したがって95!= 1.03×10 148の可能性があります。) あなたの仕事は、stdoutに印刷される印刷可能なASCII文字の数が可能な限り多くなるように(つまり多作になるように)このプログラムを書くことです。 スコアは、プログラムが出力する印刷可能なASCII文字の数です(明確な量ではなく、合計量:スコア4対スコア3)AABCABC。最高のスコアが勝ちます。 詳細 出力には任意の文字(重複を含む)が含まれる場合がありますが、95個の印刷可能なASCII文字のインスタンスのみがスコアにカウントされます。 このJSFiddleを使用して、文字列内の印刷可能なASCII文字の数をカウントできます。 言語にstdoutがない場合は、最も適切な代替手段を使用してください。 あなたのプログラム... 有限のランタイムが必要です(時間制限は削除されています) 出力が有限でなければならない コメントを含めることができます (キャッチされない)エラーなしでコンパイルおよび実行する必要があります 入力を促したり、入力したりしてはいけません 時不変で決定論的でなければならない 外部ライブラリを使用しないでください ネットワーク接続を必要としないでください 外部ファイルを使用してはいけません (ファイル名を変更してもプログラムの動作が変わらない限り、プログラムファイル自体を使用できます) このタスクが不可能な場合、言語があまりにも悪いです。 投稿に収まるには大きすぎる場合は、正確な出力を提供するか、正確に説明する必要があります。実際にプログラムを実行する必要はありません。限り、それはようですそれが有効であるメモリの無限の量をコンピューターに有限の時間で実行されます。 例 この単純なPython 2プログラムは、可能な解決策です。 print 9876543210#!"$%&'()*+,-./:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghjklmoqsuvwxyz{|}~ 987654321010個の印刷可能なASCII文字を含む10個のスコアを出力します。

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