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

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

5
jQueryの対決
この事件からしばらくして … あり、いくつかの私たちのjQueryのこの汚すために反対している人は。それは不浄な存在であり、その根絶は必要です。したがって、私はあなたに、改革の新王国に忠実であるあなたに、そのような抵抗を排除するプログラムを作成するよう呼びかけます。すべてのコードを検証し、jQueryのあらゆるトレースを検索する必要があります。そして、もちろん、あなたの提出は短くする必要があります(別の予算削減がありました、そして、残念なことに、それはストレージ部門にありました)。また、文字を定義することはできません。 速度を上げるために、定義する文字は次の文字のいずれかですjJqQuUeErRyY$x0。すでに述べたように、これらの文字の使用は、あなた自身のプログラムであっても厳しく禁止されています。したがって、それらを使用しないでください。また、数字のドル記号でも大丈夫です。したがって、フォームn+(.nn)*$は何でも構いません(まだ使用しないで0ください)。 プログラム/コード/など。入力プログラムを検証する必要があります。デファイリング文字が含まれている場合は、出力する必要がありますThis programmer is guilty of Heresy. He must be burnt.。そのような文字が見つからない場合、を出力する必要がありますProgram validated. Clearance level 2 given.。 ボーナスとペナルティ 私は個人的にキャラクターを称賛し~ます。使用する2つごとに、-1バイトを指定します。(つまり、他のすべて~は無料です。) 除外された文字から正確に1文字を選択できます。ただし、すべての場合にこの文字を使用できます。ただし、最初のペナルティが+ 50%で、その文字のすべてのインスタンスに+5バイトのペナルティがあります。 -90%jquery(ソースコードで(非常に安全にするために)隣接する文字を使用しない場合。これらは(さらに)次のとおりです。iIkKpPsSzZXdDfF 無効な文字列が指定されたときに前述のテキストを出力するときに、すべての無効な文字を-1 *の実行、10未満の実行、および[]それ以上の実行で置き換える場合、-20%。 -50バイトが見つからない場合、JavaScript/iまたはSimplex文字を定義している場合。 参照実装 function validate() { var str = document.getElementById("input").value; var str2 = str.replace(/[jquery0]/gi,"").replace(/x/g,"").replace(/(\d+\.*\d*\d*\$)|\$/g,"$1"); // thanks Doorknob! var val; if (str2 == str) { val …

4
クレイジーライブラリアンの素数の算術シーケンス
司書は、ソートアルゴリズムを使用して、あなたが仕事で不正行為をしているのを見つけたので、今、あなたは罰されています。あなたは、司書が彼らの片思いの愛情の対象である数学教師に印象づけることができるように、いくつかのコードを作成するように命じられました。それが「割り当てられたその他の義務」の意味です... 誰もがNと呼ばれる10進数の自然数列に精通しています: 0、1、2、3、4、5、6、... それから、我々はのは、それを呼びましょう、素数列を生成することができますP内のすべての要素ように、Pはでちょうど二つの約数を持つN、すなわち、1それ自体。このシーケンスは次のとおりです。 2、3、5、7、11、13、... OK、これまではかなり日常的なことです。 気の利いた機能の司書思想F(x、y)の数値をとるxからN状態で0 <= x <= 9、そして数yからN、および挿入xにy全ての位置(すなわち、プリペンド、挿入、又は付加での小数展開xにy)、並べ替えられた新しい数値のセットを返します。 たとえば、F(6、127)は次のようになります 1267、1276、1627、6127 それはまだ退屈です。ビットアップスパイス物事への司書欲求より代わりに新しい機能を指定することはz -> {p : p in P and F(z,p) subset of P}、昇順にソートされました。 たとえば、z(7)は 3、19、97、433、487、541、... ため37と73の両方プライムあり、719 179そして197すべてのプライム、などです z(2)は空であることに注意してください。なぜなら、2追加された素数はまだ素数ではないからです。{0,4,5,6,8}についても同様です。 あなたの仕事は、与えられたxに対してシーケンスz(x)の最初の100個の数字を生成して出力するコードを書くことです。 入力 のような単一の整数x0 <= x <= 9。入力には、関数の引数、STDIN、または同等のものを使用できます。 出力 シーケンスが上記のようにz(x)を満たすように、STDOUTまたは同等の値で区切られた、最初の100個の数字のシーケンス。場合Z(x)は {0,2,4,5,6,8}の場合のように、空である、言葉はEmpty Set代わりに出力されるべきです。 制限事項 これはコードゴルフです。これは、これをインデックスカードに転写して、司書が数学の先生を見せ、手がけいれんするのを簡単にするためです。 標準的な抜け穴の制限が適用されます。司書は不正行為を容認しません。 参照シーケンス x = 1:A069246 x = …

11
プロトスペースインベーダー(ブリットできますか?)
原始宇宙侵略者 これは、タスクが言語ごとに最短のコードを提供することであるグラフィカル出力の課題です。 仕事 コードでは、ユーザーが次のエイリアンを画面/ウィンドウ内で移動できるようにする必要があります。 コードは、ローカルファイルから単純にロードできます。別の標準の画像形式に変換したり、コメントで指摘された画像の小さなピクセルエラーを修正したりすることもできます。 背景は白で、ウィンドウ/画面は少なくとも400ピクセルx 400ピクセルでなければなりません。ご使用の言語がそのサイズのウィンドウ/画面をサポートしていない場合は、200 x 200以上である限りサポートする最大サイズを使用してください。 画面上でエイリアンを移動するには、標準キーボードの矢印キーを使用して、コードで上/下/左/右をサポートする必要があります。 あなたのコードは完全なプログラムでなければなりません。 制限/制約 外国人は国境で停止する必要があります。また、目に見えるちらつきやst音のない均一な速度でスムーズに移動し、少なくとも24fpsで表示される必要があります。画面/ウィンドウの一方の側からもう一方の側に移動するには、2〜5秒かかります。 言語とライブラリ 好きな言語やライブラリを使用できます(このチャレンジ用に設計されたものではありません)。ただし、可能な場合はコードをテストできるようにしたいので、Ubuntuでコードを実行する方法について明確な指示を提供できれば非常にありがたいです。 カタログ この投稿の下部にあるスタックスニペットは、a)言語ごとの最短ソリューションのリストとして、b)全体的なリーダーボードとして、回答からカタログを生成します。 回答が表示されるようにするには、次のマークダウンテンプレートを使用して、見出しから回答を開始してください。 ## 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), 121 bytes コードスニペットを表示 <style>body { text-align: …

17
排他的および包括的範囲にわたる製品
触発され、この問題により、@CᴏɴᴏʀO'Bʀɪᴇɴ。 質問から取られた: タスクは簡単です。2つの整数aとbが与えられた場合、output [a、b]を出力します。つまり、aとbの間の範囲の積です。a、bは、関数、リスト入力、STDINなどの引数であるかどうかにかかわらず、任意の妥当な形式で使用できます。戻り値(関数の場合)やSTDOUTなど、妥当な形式で出力できます。aは常にbよりも小さくなります。 末尾は、bを排他的または包括的に指定できることに注意してください。私は好き嫌いはありません。^ _ ^ この課題の違いは、範囲の種類について慎重になることです。入力は次の形式の文字列です[a,b]、(a,b]、[a,b)、または(a,b)どこ[]包括的境界であると()排他的な境界です。明示的な境界が与えられた場合、範囲の積を提供します。また、入力範囲には常に少なくとも1つの数字が含ま(3,4)れます。つまり、無効な範囲はテストする必要がないことを意味します。 テストケース [a,b) => result [2,5) => 24 [5,10) => 15120 [-4,3) => 0 [0,3) => 0 [-4,0) => 24 [a,b] => result [2,5] => 120 [5,10] => 151200 [-4,3] => 0 [0,3] => 0 [-4,-1] => 24 (a,b] => result (2,5] => …
18 code-golf  math 

1
正当な支配者は誰ですか?
誰が領域を支配しますか? 各家族の名前、性別、生年月日、死亡日、相続人のリストを含む家系図が与えられます。ツリーを表すのに便利な(ネストされた)リスト形式を使用できます。次の例ではJSONを使用します。誰がレルムを支配するか、どの順序で決定するか。継承ルールは次のとおりです。 王が死ぬと、その領域はその最も古い合法的な男性の子になります。 存在しない場合、最も古い合法的な女性の子供に渡されます。 王に相続人がいない場合、王国は最も古い合法的な王の兄弟に行きます 男性の兄弟がいない場合、領域は最も古い合法的な王の妹に行きます すべての正当な親relativeが死んでいる場合、領域は最も近いろくでなしに行き、上記のルールを適用します 正当な親baもろくでなしの親relativeも生きていない場合 LINE EXTINCT 合法的な息子を、父親と同じ「家」名を持つ人と定義します。 例: 入力 {} 出力 LINE EXTINCT 入力 { "name" : "Maegor", "house" : "Targaryen", "birth" : 12, "death" : 48, "sex" : "male", "heirs" : [] } 出力 12-48: Maegor, LINE EXTINCT 入力 { "name" : "Jaehaerys", "house" : …
18 code-golf 

1
変身ボックス
4つのボックススタイルを定義します。 +-----+ ooooooo ^^^^^ ******* | 1 | o 2 o < 3 > * 4 * | | o o < > * * +-----+ ooooooo vvvvv ******* 整数と文字列を指定したプログラムまたは関数を作成すると、文字列内で上記のボックスのいずれかが検出され、そのスタイルがユーザーが要求したボックススタイルに変更されます。例えば: 1 This is a test document. It ********* has no *purpose* other than dem*onstrat*ion. ********* になる: This is a test …

11
クラップスのゲームをシミュレートする
クラップスは、カジノでよくプレイされるかなりシンプルなサイコロゲームです。あなたがギャンブラーでなくても(私はそうではありませんが)、それでもかなり面白いゲームです。ルールは次のとおりです。 クラップスのゲームの開始時に呼ばれるものがありますカムアウトラウンド。プレイヤーは2つのd6(6面ダイス)を振って、2つのダイスを追加します。結果が7または11の場合、その人が自動的に勝ちます(これは自然として知られています)。結果が2、3、または12の場合、その人は自動的に負けます(これは拍手crとして知られています)。それ以外の場合、結果はポイントラウンドのポイントとして設定されます。 この後、ポイントラウンドが始まります。ポイントラウンド中、プレイヤーは前のラウンドから7または彼/彼女のポイントをロールするまで、連続して2 d6sをロールしなければなりません。人が7を振った場合、負けとなります。彼らがポイントを転がすと、彼らは勝ちます。 チャレンジ がらくたのゲームをシミュレートする単純なプログラムを実装します。ユーザーがカムアウトラウンド中にナチュラルまたはクラップアウトをロールした場合、プログラムは「Natural:」または「Crapping out:」を出力し、その後にサイコロを出して終了します。それ以外の場合は、「Point:」に続いてポイントが出力されます。次に、ポイントラウンド中に、7またはポイントに達するまで、すべてのダイロールを出力する必要があります。人が勝った場合、出力する必要があります"Pass"。彼らがそれを失えば出力する必要があります"Don't Pass"。 参照実装 Groovy、277バイト def a={return Math.random()*6+1};int b=a()+a();(b<4||b==12)?{println"Crapping out: "+b}():{(b==7||b==11)?{println"Natural: "+b}():{println"Point: "+b;for(;;){int x=a()+a();println x;(x==7)?{println"Don't Pass";System.exit(0)}():{if(x==b){println"Pass";System.exit(0)}}()}}()}() オンラインでお試しください。 サンプル出力 Natural: 7 Crapping out: 3 Point: 9 4 8 11 9 Pass そして Point: 5 3 7 Don't Pass これはcode-golfなので、最短のコードが優先されます。 (免責事項:このチャレンジは、ギャンブルを促進することを意図したものではありません。家は常に勝ちます。)
18 code-golf  game  random 

3
私の誕生日のテーマ:炎の中で
キャンドルを灯す必要があります。実際、私は任意の量のキャンドルを灯す必要があります。しかし、良いものだけ。 目的テキストのブロック(点灯、有効、無効のろうそくを含む)とN入力としてN数値を指定し、に既に点灯しているろうそくの数を引いた値に正確に等しい量を点灯するプログラムまたは関数を作成します。Nが有効なローソク足の数よりも大きい場合、プログラムは不足している有効なローソク足の数を出力する必要があります。ローソクが存在しない場合、出力はになります:(。 有効なキャンドルは次のとおりです。 . | . . | | . \ | | | / (末尾が、.のみ、|またはバランスがとれている、必ずしも隣接\していない/、および、任意の長さにすることができます。) 無効なキャンドルは次のとおりです。 . . . . \ | | | | | | \ . | ! (アンバランス\、ローソク足なし、切断された、|キャラクター以外、地面に植えられていない。) ろうそくが点灯する.と、有効なろうそくの次の文字(任意)で置き換えられます。 @ ^ & " ~ 少なくとも1つを使用する必要があり-10%、プログラムで使用されている各キャラクターに対して、各キャラクターが点灯したろうそくに現れるようにボーナスを獲得します。🔥絵文字を使用すると、-15バイトボーナスが得られます。これは、使用されている場合、パーセンテージボーナスの前に適用されます。バイトカウントが削減されました! これはcode-golfであるため、バイト単位の最短コードが優先されます。 IOの例 input: 8, . . | . ! . …

5
各コンポーネントの電圧はいくらですか?
次の図は、RLC回路を示しています。RLC回路は、抵抗(R)、インダクタ(L)、コンデンサ(C)で構成される電気回路で、直列または並列に接続されています。(1) 計算を簡素化するために、時間領域ではなく周波数(ラプラス)領域で作業するのが一般的です。 あなたの仕事は: 値を取りR、LそしてC入力として、および電圧を返すVR、VLとVC ラプラスドメインへの変換は次のとおりです。 R = R XL = j*w*L // OK, XL = w*L, and ZL = j*XL, but don't mind this here. XC = 1/(j*w*C) // I haven't ruined physics, it's only a minor terminology tweak ここでj = sqrt(-1)、およびw = 2*pi*50(周波数は50 Hzです)。 コンポーネントが直列になっている場合の結合インピーダンスはZ = R + XL …

1
ミニゴルフコードゴルフ
これはミニゴルフホールです: 外側の境界は、半径10および中心(0,0)の円です。内部境界は、半径3および中心(0,5)の円です。ティーは(0、-8)にあります。ボールは半径0の単なる点であると仮定します。 ボールのダイナミクスは、次の規則によって管理されます。 ボールは最初にエネルギー50で与えられた角度で打たれます。 角度はデカルト座標系で減少しているため、0°は右に直接、90°は上に、というようになります。 ボールが内側または外側の円の端に当たると、反射の法則を使用して円から跳ね返ります。 その点での円との衝突の角度は、反射の角度に等しくなります。(ここでの角度は、衝突点での円の接線に対して相対的です。) 明確にするために、これまたはこれを参照してください(2番目のリンクの表記では、このチャレンジでR_0 = 0です)。 ボールは移動するとエネルギーを失います。 それが覆う地面の単位ごとに、1単位のエネルギーを失います。 壁から跳ね返るたびに、5単位のエネルギーを失います。 ボールは、エネルギーがなくなるか、穴に落ちたときに停止します。 ボールが5単位以下のエネルギーで壁に衝突すると、ボールは停止します。 エネルギーが穴の距離1以内にある場合、エネルギーが10未満の場合、穴に落ちます。それ以外の場合は、動き続けます。 チャレンジ 穴のxy座標を指定して、ボールが穴に落ちるためにボールを打つことができる角度を返します(そのような角度が存在する場合)。 入力 入力として、任意の便利な形式で穴の中心のx座標とy座標を取ります。入力は、STDIN(または最も近い代替)、コマンドラインパラメーター、または関数引数から取得できます。 出力 ボールが穴に落ちるように、ボールがティーから打つことができる角度を印刷または返す。そのような角度が存在する場合、出力は[0、360)の範囲にある必要があります。そうでない場合、出力は-1になります。

4
Xはスポットをマークします
Xスポットをマーク あなたの目標は、首都Xの周りに十字線を追加することです: 入力/出力の例 入力: mdhyyyyyyyhhhddmmm mdyyssoo oooosyyyhhhdmm hsso oossoooooyyhhdhhdmmm yoooooo oo ssysssyhhdyyyhmmmm myso oso o oyo hhhdhhyhyhhm mm m mhsyhhys oss yyyhhhsosyhhmmmmdmmm mhyhhhy y ssyhoho o shhdmmmmdmmmm hhyyyh s oo syysyyhhdysso oyhdhhhmmmmm dhysyys sdysoXoyyyyhhso syshm mmm hhyhyo o osss y shhyyhd mmmmmm yyhyyyss o oyyyydmmdmmmmmmmmm mm ysyhyhhho s osy sdm …

4
D&Dキャラクターの能力スコアを転がす
Dungeons and Dragonsでは、キャラクターの最も重要な属性のいくつかは能力スコアです。6つの能力に対して、6つの能力スコアがあります。能力は、強さ、器用さ、憲法、知性、知恵、カリスマです。 キャラクターのスコアを決定するとき、私は次の手順を使用します:4d6をロールし、最も低いものを任意の順序でドロップします。これが意味することは、4つのサイコロを振って、最低の結果を無視し、残りの3を合計することです。これは6回行われます。結果の番号は、私が好きな方法で能力に割り当てられます。 能力にスコアを割り当てるために使用するシステムは、キャラクターのクラスに応じてキャラクターの最も重要なスキルに最高スコアを割り当て、誰もが憲法を必要とするため、2番目に高いスコアを憲法に割り当て、他の4つのスコアを任意に割り当てます。 さまざまなクラスで最も重要なスキルの表を次に示します。 Bard - Charisma Cleric - Wisdom Druid - Wisdom Fighter - Stregth Monk - Wisdom Paladin - Charisma Rogue - Dexterity Sorcerer - Charisma Wizard - Intelligence 課題:(入力として)キャラクターのクラスの最初の文字(大文字)を提供します。上記のようにアビリティスコアをロールし、アビリティに割り当ててから、強さ、器用さ、体質、知性、知恵、カリスマの順に出力してほしい。 例: Input: R Rolls: 4316 3455 3633 5443 2341 6122 Scores: 13 14 12 13 9 …
18 code-golf  game  random 

7
階層的なアウトラインの番号付け
すべての行0がいくつかのスペースでインデントされた文字で構成される文字列を取り込むプログラムを作成します。一番上の行はインデントされず、他のすべての行は、直前の行よりも多くても1スペースだけインデントされます。 行の末尾にスペースはありませんが、オプションで末尾に改行が1つあると想定することもできます。 たとえば、入力は次のようになります。 0 0 0 0 0 0 0 0 0 0 0 0 0 0 あなたの仕事は、ラインヘッダーとして正の整数を増やして、階層的なアウトラインのように番号を付けることです。これは、例の出力になります。 1 1 1 2 2 2 1 2 3 1 3 1 1 2 階層的なインデントレベルごとに、1つまでしか増えない場合でも、独自の増加する数字のセットがあることに注意してください。 出力では、末尾のスペースはありませんが、オプションで単一の末尾の改行がある場合があります。 stdinまたはコマンドラインを介して入力文字列を取得する完全なプログラムを作成するか、引数として文字列を取得する関数を作成します。結果を出力するか、文字列として返します。 バイト単位の最短コードが優先されます。 例 空の文字列が入力された場合、空の文字列が出力されます。 次に最も些細な例は入力です 0 になるはずです 1 大規模な例-入力: 0 0 0 0 0 0 0 …

11
64ビットASCIIウィービング
入力 2つの整数: 織り方を指定する0から2 ^ 64-1の範囲の負でない整数W。 1〜255の範囲の正の整数S。辺の長さを指定します。 これらは、自分に合った順序で使用できます。 出力 SによるSの要求された織りのASCII表現(Sの改行は、ストリング分離Sのオプションの末尾の改行と文字)。織りは、次のように織り番号Wによって定義されます。 Wをバイナリに変換し、8バイトに分割します。最初の(最上位)バイトは、左(最上位ビット)から右への最上行を定義します。次のバイトは次の行を定義し、8行についても同様です。織り番号は、8 x 8の正方形を定義します。正方形は、左上から必要な領域にタイル張りする必要があります。つまり、その左上隅は、カバーする領域の左上隅に対応する必要があります。 すべて0がとして表示され、|すべて1がとして表示される必要があります- 例 入力: 0 8 出力: |||||||| |||||||| |||||||| |||||||| |||||||| |||||||| |||||||| |||||||| 入力: 3703872701923249305 8 出力: ||--||-- |--||--| --||--|| -||--||- ||--||-- |--||--| --||--|| -||--||- 入力: 3732582711467756595 10 出力: ||--||--|| --||--||-- --||--||-- ||--||--|| ||--||--|| --||--||-- --||--||-- ||--||--|| …

9
コンパスのポイントを度に変換する
私はこのチャレンジを独自に思いつきましたが、それはDoorknobによるこのチャレンジの逆であることが判明しました。彼の仕様が本当に好きなので、私は自分の説明を作り上げるのではなく、その大部分を盗むことにしました。 チャレンジ コンパス上の32点のいずれかの略語を指定して、対応する度数を印刷します。32ポイントの説明に興味がない場合は、下の表に進んでください。 完全なコンパスは次のとおりです。 Denelson83(所有作品)[ GFDLまたはCC-BY-SA-3.0 ]、ウィキメディアコモンズ経由 各方向は11.25(360/32)度離れています。たとえば、N(北)は0度、NbE(北から東)は11.25度、NNE(北-北東)は22.5度などです。 詳細には、名前は次のように割り当てられます。 0度はN、90度はE、180度はS、270度はWです。これらは基本方向と呼ばれます。 基数方向の中間点は、単に連結された基点方向です。NまたはSは常に最初に、WまたはEは常に2番目になります。これらは順序方向と呼ばれます。序数方向と基数方向が一緒になって主な風を形成します。 主な風の中間点は、それらが連結されている間の方向です。枢機directionsの指示が最初になり、序数の順になります。これらは半風と呼ばれます。 主風と半風の中間地点は、主風から最も近い基本方向の「そば」にある隣接する主風です。これはで示されますb。これらは四分の一風と呼ばれます。 これにより、次のチャートが得られます。 # Degrees Abbrv. Name 1 0 N North 2 11.25 NbE North by east 3 22.5 NNE North-northeast 4 33.75 NEbN Northeast by north 5 45 NE Northeast 6 56.25 NEbE Northeast by east 7 67.5 …

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