タグ付けされた質問 「code-golf」

コードゴルフは、ソースコードの最小バイトで特定の問題を解決するための競争です。

1
跳躍のトカゲ!
長さNの自然数の配列Lを受け取り、次のような簡単なプログラムを定義するとします。 i=0 #start at the first element in the source array P=[] #make an empty array while L[i]!=0: #and while the value at the current position is not 0 P.append(L[i]) #add the value at the current position to the end of the output array i=(i+L[i])%N #move that many spaces forward …

2
Eシリーズの優先番号を生成する
抵抗器およびその他の電子部品は、通常、Eシリーズの推奨数値の 1つに準拠する値で製造されます。IEC 60063では、次のEシリーズを定義しています。 E6: 10 15 22 33 47 68 E12: 10 12 15 18 22 27 33 39 47 56 68 82 E24: 10 11 12 13 15 16 18 20 22 24 27 30 33 36 39 43 47 51 56 62 68 75 82 91 E48: 100105110115121127127133140147154162162169178187196205215226237249261261274287301316332348365 …

1
騎士の次のツアー
私たちは皆、ナイトツアーパズルについて聞いたことがあります。チェス盤のすべての正方形を通過する騎士の道を見つけてください。しかし、正直に言って、それは少し退屈です。それでは、騎士に少し挑戦してみましょう。 仕事 任意のサイズ、任意の形のチェス盤で、すべての正方形を騎士が通過するプログラムを作成します。これは、チェス盤を入力として受け取り、一連の動きと開始位置を出力します。ボードが不可能な場合は、可能な限り長いツアーの一連の動きと開始位置を出力する必要があります。注:騎士は往復する必要はありません。彼が家に帰る別の方法があると仮定します。 チェスの駒は小さいので、あなたのコードは騎士が持ち歩けるように十分に小さくする必要があります。 入力 入力は、チェス盤の文字列ベースまたは配列ベースの表現になります。ここで、非空白/真の値は正方形であり、空白/偽の値は空のスペースです。簡単にするために、例ではグリッドに配置された#とを使用します。 出力 出力は2つの大きな整数で、その後に一連の4ビット整数または対応する言語が続きます。2つの大きな整数は開始座標を表し、次の数字はそのような動きを表します。 7 0 6 1 K 5 2 4 3 ここで、K移動前の位置であり、その数は、移動後の位置です。 例 Knight's Tourパズルには多くの可能な解決策があるため、出力例のみを提供します。より多くの出力があるかもしれません。 ### # # ### 0 0 3 0 5 2 7 4 1 新しい課題:より多くの例を考え出す

2
グリッド上の単語を見つけよう!
開始座標と終了座標を使用してワードサーチから単語を抽出するプログラムまたは関数を記述します。 入力 プログラムまたは関数は、開始座標、終了座標、および単語を抽出するワード検索の 3つのパラメーターを受け入れる必要があります。 開始座標は、任意の形式で取り込むことができます。 常に整数になります グリッドの左下は(0、0)です グリッドの境界の外にある座標は提供されません (7、0)や(0、6)など、互いに垂直、水平、または完全に対角ではない座標は提供されません。 端座標と同じ形式で撮影される開始座標 ワードサーチが可能になる、文字列、またはあなたの言語の最も近い同等 これは、各行が改行で1 つのスペースで区切られた文字のグリッドになります。高さや幅は任意ですが、異なる場合もありますが、常に長方形になります。例えば: A G O A T C A T E A T M E N O W W O R D S E A R A K L L K J H G N P L F G …

4
範囲内の最短の2進数
二つの与えられた任意の正確な進数0≤ X < Y ≤1、(桁)最短計算バイナリ数Bように、X ≤ B < yと。 2進小数点の後のbの2進数を、配列またはゼロと1の文字列として出力します。空の配列は、末尾のゼロを削除することにより、0.0を意味することに注意してください。これはまた、どの範囲にも固有の正解があることを確認します。 2進数の小数に慣れていない場合は、10進数と同じように機能します。 Base 10 0.625 = 0.6 + 0.02 + 0.005 = 6 x 10^-1 + 2 x 10^-2 + 5 x 10^-3 Base 2 0.101 = 0.1 + 0.00 + 0.001 = 1 x 2^-1 + 0 x 2^-2 + …


1
ラインを伸ばす
仕事 線のある画像が与えられた場合、線を画像の端まで延長した線を含む画像を生成または表示します。線は黒で、背景は白です。画像サイズは、100x100画像を任意の合理的な形式で提供されます(例えばjpg、png、ppm、bmp)。 ラインフォーマット 私は、線の描画にBresenhamの線アルゴリズムの簡略化バージョンを使用しています。線は整数の勾配のみを持つため、線がピクセルを部分的に覆うことはなく、色を付けません。 (ウィキペディアの画像) 直線が直線でない限り、最低でも3x3になります。この場合、画像には3x1または1x3しか表示されません。ラインも画像の端に片側があるため、一方向に延長するだけで済みます。 例(.png、赤い線が追加されているので、見やすくなっています): 実際の例(.png) ==================== ==================== ==================== ====================

7
ヘキサゴンインまたはヘキサゴンアウト?
たとえば蜂の巣に見られる通常の六角形について語るには、すばらしい話があります。しかし、この忙しいミツバチは、ハニーポットの内側と外側のどちらのポイントであるかを彼に知らせるためにあなたの助けが必要です。したがって、下の図に示すように、原点を中心とし、エッジサイズがlの正六角形を指定して、座標セット(x、y)が正六角形の内側、端、または外側にあるかどうかを確認します。 入力、出力、ルール ルールは次のとおりです。 入出力メソッドはデフォルトのルールに従います。 入力は3で構成され、整数:x,y,l。 xそしてy、任意の好都合な符号付き整数フォーマットです。l正です(0にはなりません)。 プログラムは1、ポイント(x,y)が正六角形の内側にある場合、-1またはそれが外側または外側の場合、aを出力または返す必要があります。0場合、端に正確に。 これはコードゴルフなので、最短のコードが優先されます。同点の場合は、最も古い投稿が優先されます。 stdoutへの出力の場合:出力の先頭/末尾のスペースまたは改行が許可されます。 標準の抜け穴が適用されます。 テストケース ここにいくつかのテストケースがあります: 0,0,1 --> 1 0,1,1 --> -1 0,-1,1 --> -1 1,0,1 --> 0 -1,0,1 --> 0 -1,-1,1 --> -1 1,1,1 --> -1 -2,-3,4 --> 1 32,45,58 --> 1 99,97,155 --> -1 123,135,201 --> 1

3
「混合ベース」文字列をASCIIに変換します
バイナリ、8進数、16進数のいずれかであるバイトを含む文字列を入力すると、同等の文字列のASCIIが出力されます。 たとえば、入力は次の形式で提供されます。 501200100001147 これは 0x50 0o120 0b01000011 0x47 これは(ASCIIで)と同等です PPCG 2進数、8進数、16進数には、常にそれぞれ8、3、2桁が表示されます。 この課題では、印刷可能なASCIIのみをサポートする必要があります。これは32..126包括的範囲です。したがって、あいまいさがあることは不可能です。ご了承ください 文字列は、それがaで始まり0、2番目の文字がa 0またはaの場合に限り、バイナリを表し1ます。すべての印刷可能なASCII文字は、バイナリでハイビットがオフになっています(つまり、aで始まります0)。また、16進数または8進数で始まっ00たり01、それらで始まったりするものはありません 。 道のバイナリうちでは、ノートでは、すべての印刷可能なASCII文字で始まること2- 7進にして0- 18進数で。したがって、16進数と8進数を明確に区別することもできます。 16進入力は、小文字または大文字のどちらか便利な方で提供されると想定できます。 Regexは、チャレンジの解析部分をかなり簡単にします。私は完全に正規表現の使用を禁止したくありませんが、正規表現を使用しない対応策よりも長い非正規表現ソリューションがある場合は、とにかく「本当の」答えと一緒に気軽に投稿してください。同様にそれを見てください。:) これはcode-golfなので、バイト単位の最も短いコードが優先されます。 テストケース: In Out ----------------------------------- 501200100001147 | PPCG 5C01101111100 | \o@ 313206306400110101 | 12345 2A200530402C | * + , 0011111100111111 | ?? <empty string> | <empty string>

1
青い目パズルの変形を解く
オリジナルの「Blue Eyes」パズルはここ(およびその下)にあります。 さまざまな目の色を持つ人々のグループが島に住んでいます。彼らはすべて完璧な論理学者です-結論が論理的に推測できる場合、彼らは即座にそれを行います。彼らの目の色は誰も知りません。毎晩深夜、フェリーが島に停車します。自分の目の色がわかった島民は島を去り、残りは残ります。誰もがいつでも他の人を見ることができ、それぞれの目の色(自分自身を除く)で見た人の数を数えますが、それ以外の方法では通信できません。島の誰もがこの段落のすべてのルールを知っています。 この島には、100の青い目をした人、100の茶色の目をした人、そしてグル(彼女はたまたま緑の目をしています)がいます。したがって、青い目をした人は100人が茶色の目で99人が青い目(および緑の目)を見ることができますが、それでも自分の目の色はわかりません。彼が知る限り、合計は101ブラウンと99ブルーである可能性があります。または100ブラウン、99ブルー、そして彼は赤い目を持っている可能性があります。 グルは、島での終わらない年のすべての日に、1日(正午に言ってみましょう)一度話すことが許可されています。島民の前に立って、彼女は次のように言います: 「青い目をした人が見えます。」 誰が島を出ますか、そして何夜ですか? 答えは、彼らがすべての百日のままにしておくことです。これは、次のロジックによるものです。 青い目の人が1人だけの場合、彼は1日目に出発します。2つの青い目の人だけがある場合、誰も1日目に出発しません。これに続いて、2人とも2日目に出発します。 -目の前の人、誰も1日目に出発しません。誰も2日目に出発しません。青い目をした人が3人いることを誰もが知っています。1人しかいなかった場合、彼は1日目に出発し、2人がいた場合、2人とも2日目に出発したため、3人全員が3日目に出発します。 これで、n個の青い目の人々が目の色を計算して去るのにn日を必要とする場合、n + 1の青い目の人々が同じことをするのにn + 1日を必要とするという帰納的証明を書くことができます。 ただし、作成するコードは、元のパズルだけでなく、わずかに異なる帰納的ステップを必要とするいくつかのバリアントも解決できる必要があります。 青い目をしている人の数とそうでない人の数がわかります。また、島の誰もが聞く神託(方程式/不等式のシステム)による声明が与えられます。青い目の人々が島から解放される時期を決定する必要があります。 オラクルの声明はb、青い目の人の数と青い目のない人の数に使用しrます。方程式には、< > <= >= = + -整数を含めることができます。 テストケース このバリアントセットに基づく 50 50 b>=1 b<b+r 出力: 50 2番目の方程式は新しい情報を提供しないため、この問題は元のパズルとまったく同じになります。 100 50 b+3>=r+4 出力: 25 100 0 b-2>8+1-1 出力: 90 50 50 b>=10 b<=75 出力: 41
8 code-golf  math  logic 

21
長方形のリングにタイルを形成する
入力を受け取り、タイルから長方形のリングtilesXをtilesY作成するメソッドを作成します。 関数は、次のようにリング内のタイルを並べ替える必要があります。 tilesXそしてtilesY、常に正の整数値であり、することはできません0 tilesXそして、tilesY:常に等しくない、などの値が期待する2x5、6x3など 無効な入力を確認する必要はありません 2D配列、ASCIIアート、印刷されたテキストなど、どのような方法でもタイルを表示できます。 2つの整数である限り、入力が渡される厳密な方法はありません。 線にできません。長方形のサイズtilesXとtilesYピクセルの描画は無効です 最短のコードが勝ちます

2
ASCIIアグリッパ番号に変換
チャレンジ 自然数を指定して、アグリッパの数体系のASCII形式で出力します。 説明 私は奇妙なアルファベットと数字のシステムが好きです。私のお気に入りの数字体系は、ハインリッヒ・コルネリウス・アグリッパによって与えられたものです。これは、範囲内の数値を簡潔に書き込む方法を提供します。1 [0,9999]桁の数字は次のように記述されます。 より小さい数値10^4は1桁の組み合わせですが、次のように1つの中央バーで回転/水平ミラーリングされます。 [0° mirrored, 10's ] | [0°, 1's ] [180°, 1000's] | [180° mirrored, 100's] 以下にいくつかの例を示します。 同等のASCIIは次のとおりです。 Ones: 0 1 2 3 4 5 6 7 8 9 | |- |_ |\ |/ |~ || |^ |v |] | | | | | | | …

3
逆Champernowneサブストリング
Champernowne定数は、無理数0.1234567891011 ...無限に拡張されます。 私たちはやった質問をする前に、それについて。しかし、この質問はその逆数であり、逆シャンペローネ定数として知られています。これは約8.10000007です。 1から3桁の文字列(すべての3桁の文字列は小数点以下最初の10,000以内に表示されます)を前提として、その文字列の最初の出現に先行する逆Champernowne定数の小数部分の小数点以下の桁数を指定します。 これを直接実行するか、これらの定数のいずれかの近似値を生成する組み込み関数は禁止されていますが、任意の精度の演算用の組み込み関数は引き続き許可されます。 これはコードゴルフなので、バイト数で見ると最短のプログラムが優先されます。 テストケース: 1 0 2 52 3 13 4 29 5 36 6 7 7 8 8 27 9 23 10 0 100 0 998 187 999 67 01 321 001 689 010 418

5
数式を印刷する
前書き 化学には、.xyz拡張子(https://en.wikipedia.org/wiki/XYZ_file_format)のタイプがあり、化学要素と各要素の平面の座標が各行に出力されます。これは、化学者が化合物を理解し、3Dで化合物を視覚化するのに非常に役立ちます。.xyzファイルを指定して、化学式を印刷するのは楽しいと思いました。 チャレンジ .xyzファイルを指定して、任意のプログラミング言語で化合物の化学式を可能な限り少ないバイト数で出力します。注意: もともと、入力はファイルとして与えられるべきでした。私が指摘したように、これは挑戦を制約します。したがって、入力が文字列のリスト/配列であり、それぞれが.xyzファイルの行を表すと想定する場合があります。 要素の順序に制限はありません。 各要素は、要素とその出現回数を区切るアンダースコア「_」で印刷する必要があります .xyzファイルの最初の2行は、要素の数とコメント行です(覚えておいてください)。 入力と出力の例 以下を含むファイルp.xyzがあるとします(最初の行は要素の数、2番目の行はコメントです)。 5 A mystery chemical formula... Ba 0.000 0.000 0.000 Hf 0.5 0.5 0.5 O 0.5 0.5 0.000 O 0.5 0.000 0.5 O 0.000 0.5 0.5 出力: Ba_1Hf_1O_3 テスト中 簡単なテストは、上記の例で行われます。より徹底的なテストは次のとおりです。テストファイルは数千行なので、.xyzファイルを共有します。https://gist.github.com/nachonavarro/1e95cb8bbbc644af3c44

4
私はどのくらい酔っていますか、またいつ運転できますか?
それは週末です、そして週末にクールな人は何をしていますか?もちろん飲みます!しかし、あなたはそれほどクールではないものを知っていますか?飲むと運転。それで、あなたはあなたがどれほどの負荷がかかっているか、そしていつあなたが警官に引っ張られてあなたの免許を失うことなく再び運転することができるかを知らせるプログラムを書くことに決めました。 チャレンジ 今夜あなたが楽しんだ飲み物のリストを考えて、あなたの血中アルコール濃度と、あなたがあなたの車に飛び乗って家に帰れるまで待つ必要がある時間を計算してください。 入力 入力は、今夜あなたが飲んだ飲み物のリストになります。これは次のようになります。 4ショット酒 グラスワイン1杯 ビール2本 3杯の水 コンテナは常に複数になります。 ご覧のとおり、各エントリは次の要素で構成されています。 飲み物の種類(酒、ワイン、ビール、水) 飲み物の容器(ショット、グラス、ボトル) x> 0の整数としてそのタイプの飲み物の量x、 ドリンクの種類ごとに、一定量のアルコールが血液に追加されます。 酒-> 0.5‰/ 100 ml ビール-> 0.1‰/ 100 ml ワイン-> 0.2‰/ 100 ml 水-> -0.1‰/ 100 ml 水はあなたの血を薄くし、あなたのアルコールレベルを下げるので、水はここでは例外です(それが実際にうまくいけばとてもいいでしょう...)。 各コンテナには特定の容量があります: ショット-> 20 ml グラス-> 200 ml ボトル-> 500 ml 出力 次の2つの数値を出力する必要があります。 inのアルコールレベル 0.5‰以下になるまで待機する必要がある時間単位の時間。これにより、再び運転できます。1時間あたり0.1 loose緩みます。 ノート アルコールレベルは決してゼロを下回ることはありません。 …

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