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

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

2
鏡の部屋を照らす
ゴール このコンペティションでは、キャンドルが1本入ったランダムな部屋が与えられます。目標は、暗いスポットをに置き換えて、部屋のどの部分をキャンドルで照らすかを決定する最短のプログラム(これはゴルフです)を書くこと@です。プログラムは、STDINからのスペースを確保し、出力をSTDOUTに出力する必要があります。 入力/部屋の例 +------+ | C | | +--+ | \ | +---------+ ろうそくはで表されC、壁/ミラーは、で表され|、-、/、または\。壁自体は鏡です。部屋のコーナーはで表されます+。 部屋には斜めの壁はありません。また、部屋の外に光が漏れることはありません。 また、行の最初のキャラクターは常に部屋の外の壁の一部になります。各行の絶対的な最後のキャラクターは、部屋の反対側の壁になります。これら2つの間にキャラクターが部屋の外にいることはありません。 光と反射 キャンドルは、8つの基本的な方向(N、S、E、W、NE、SE、SW、およびNW)に8つの(レーザーのような)光線を放射します。以下に説明するように、これらの光線はミラーで反射します。 Old Direction of Travel | Mirror | New Direction N S E W NE SE SW NW / E W N S -- -- -- -- N S E W NE SE …

12
ワンタイムパッドを実装する
バックグラウンド ワンタイムパッドが適切に使用されている場合、クラックすることは不可能であることが証明されている暗号化の形式です。 暗号化は、プレーンテキスト(A〜Zの文字のみで構成される)を取得し、同じ長さの(ランダムな文字のみの)ランダム文字列を生成することにより実行されます。この文字列はキーとして機能します。次に、平文の各文字は、キーの対応する文字とペアになります。暗号文は次のように計算されます。各ペアについて、両方の文字が数字に変換されます(A = 0、B = 1、... Z = 25)。2つの数値はモジュロ26で加算されます。この数値は文字に変換されます。 解読は正反対です。暗号文とキーの文字はペアになり、数字に変換されます。次に、キーは26を法とする暗号文から減算され、結果は文字AZに変換されます。 チャレンジ あなたの課題は、ワンタイムパッドの暗号化と復号化の両方が可能な最短のプログラムを作成することです。 (STDINへの)入力の最初の行には、単語「ENCRYPT」または単語「DECRYPT」があります。 単語が暗号化されている場合、次の行はプレーンテキストになります。プログラムは、2行を(STDOUTに)出力する必要があります。1行目はキー、2行目は暗号文です。 単語が復号化されると、プログラムはさらに2行の入力を取得します。最初の行がキーになり、2番目の行が暗号文になります。プログラムは、復号化された平文である1行を出力する必要があります。 平文、暗号文、およびキーは常に大文字のA〜Zで構成する必要があります。それらは常に単一行であり、空白は含まれません。 キーは常にランダムでなければなりません。実行間でその大部分を繰り返すことはできません。また、テキストにパターンを見つけることはできません。 2つの簡単な例: ENCRYPT HAPPYBIRTHDAY >ABKJAQLRJESMG >HBZYYRTICLVME DECRYPT ABKJAQLRJESMG HBZYYRTICLVME >HAPPYBIRTHDAY >あなたが出力としてそのシンボルを印刷する必要はありませんので、出力される行を表します。

4
単なるバガテル
チャレンジ 以下のようなバガテルボードを考えます。 | | | /\ / | | \ /| | \ \ /\ \ | | \ / \ | |\ / / \ | | \ / \ | | \ | | \ / \ /\ \ | |\ / / \ /| | / | …
13 code-golf 

17
スクロールマーキー
難読化されたHello Worldへのエントリに続いて、基になるコードを共有するのは楽しいかもしれないと思いました。しかし、なぜコードを表示するだけで、ゴルフもできます! チャレンジ ターミナル上で文字列を右から左にスクロールし、左側に収まるスクリプトを作成します。 入力 引数として文字列を取ります。 結果 スクロールマーキーをSTDOUTに出力します。最大幅は50文字です。0または1文字の表示で始まります。スクロール中に文字の間にスペースがあります。確定すると停止します(単語の文字間に余分なスペースはありません)。スクロールは遅いが、遅すぎない(反復ごとに1秒未満)。 例 argを使用してスクリプトを実行する 'Hello World' H 後 H e l l o W o 後 H e l l o W o r l d 後 Hell o W o r l d 最後に Hello World 実行例については、「Hello World」チャレンジのコードを試してください。最終的に私は私のものを投稿します。現在、Perlでは202文字です。競合他社がいくつかあるので、回答に私の投稿を掲載しました。 勝者 制限を絶対にしたくないので、少しあいまいにしておきました。私のオリジナルの精神に従う最短のスクリプトが勝ちます。 ノート このゲームは xterm環境をます。別の環境が有用であることが判明した場合、同様の環境のみが比較され、それぞれに対して個別の勝者が宣言される場合があります。 …

3
三角法で三角形を解く
高校からの古い三角法のメモを掘り起こす時間です!課題は、異なる三角形の未知の側面と角度を解決することです。そして、コードゴルフの慣習であるように、最小の作業コードが勝ちます。 これは些細な問題ではありません。Pythonでの私の参照実装は現在838 837文字までですが、ゴルフソリューションをはるかに小さくできると確信しています。 さらに、行き詰まっている場合は、ウィキペディアのこのセクションで説明します:三角形:側面と角度の計算。 入力 次の三角形は、このチャレンジで使用される側面と角度の名前を示しています。側面は小文字で、角度は大文字であることに注意してください。 入力は、スペース上で区切られた6つの値stdinとして、コマンドライン引数(または選択)として与えられます。6つの値は、側面a, b, cと角度に対応しますA, B, C。不明な側面は疑問符(?)で示されます。入力角度と出力角度はどちらもラジアン単位でなければなりません。入力値が正しいと仮定できます(何も検証する必要はありません)。また、入力三角形が非縮退であり、すべての辺と角度が非ゼロであると仮定することもできます。 次の入力例aは8、サイドbが、サイドが12、角度Aが0.5ラジアンであることを示しています。 8 12 ? 0.5 ? ? 出力 出力は、入力と同じ形式で与えられます-スペースで区切られた6つの数字stdout。唯一の例外は、入力三角形を解決でき"No solution"ない場合ですstdout。文字列を書き込む必要があります。2つの解決策が可能な場合、それらは両方とも改行で出力されます。 上記の入力の出力は次のとおりです。 8.0 12.0 16.0899264342 0.5 0.802561439714 1.83903121388 8.0 12.0 4.97205505116 0.5 2.33903121388 0.302561439714 出力の精度はそれほど高くなくてもかまいませんが、少なくとも小数点以下2桁が必要です。 ルール 入力はstdinコマンドライン引数から読み取られます 出力はに書き込まれます stdout 指定された入力で2つのソリューションが可能な場合、両方を出力します 情報が少なすぎて1つまたは2つの明確な解決策が得られない場合は、それを"No solution"事例と見なします 組み込みまたは既存のコードは使用できません(もちろん、trig関数を使用できますが、「solveTriangle」などは使用できません) 最短のコードが勝つ テストケース に 3 4 5 ? …

9
Soundex関数
大文字のA〜Zのみを含む姓のAmerican Soundexコードを生成する最短の関数を記述します。関数は、リンクされたページのすべての例(下記を参照)と一致する出力を生成する必要がありますが、プレフィックスを削除する必要はなく、削除するべきではありません。出力のハイフンはオプションです。楽しんで! 注: PHPに含まれている関数または他のプログラミング言語の同等の関数は使用できませんsoundex()。 例: WASHINGTON W-252 LEE L-000 GUTIERREZ G-362 PFISTER P-236 JACKSON J-250 TYMCZAK T-522 VANDEUSEN V-532 ASHCRAFT A-261
13 code-golf  string 

4
ピンインの組み合わせ
引数としてピンイン音節の文字列を取り、組み合わせが存在する場合はtrue、そうでない場合はfalseを返す関数を作成します。 「ü」には「v」を使用します。 以下に組み合わせの完全なリストを示します。 http://www.pinyin.info/rules/initials_finals.html 例 f("bu") == true f("zheng") == true f("nv") == true f("ri") == true f("cei") == false f("ia") == false f("kian") == false f("qa") == false 文字数を減らすためにWebページをスクレイピングしたり、インプットメソッドファイルを読み込んだりしないでください。(その場合、データの長さは文字数にカウントされます)このコードゴルフの目的の1つは、ルールを単純化する方法を確認することです。最短のコードが優先されます。

5
1P5:地震!
USGSの地震計が大地震を検知しました!緊急時対応チームは、影響を受ける人々の数をすばやく見積もる必要があります。この見積もりを計算するプログラムを作成します。 プログラムは2つの入力を受け取ります。1つ目は、地震自体の詳細です。地震は、損傷が予想される断層からの臨界距離とともに、地球が破裂する線分としてモデル化されました。2番目の入力は、地域内の都市の場所と人口のリストです。あなたのプログラムは、被災地に住んでいる人の数、つまり断層セグメントの臨界距離内にあるすべての都市の人口の合計を計算する必要があります。 入力 まず、断層の開始点と終了点のx、y座標、および臨界距離を含む地震を説明する線。形式はA_x A_y B_x B_y Dです。例えば: 3.0 3.0 7.0 4.0 2.5 (3.0,3.0)から(7.0,4.0)に及ぶ障害と2.5の臨界距離をエンコードします。 次に、エリア内の都市ごとに1行で、都市とその人口のX、Y座標が含まれます。例えば: 1.0 1.0 2500 5.0 7.0 8000 3.0 4.0 7500 9.0 6.0 3000 4.0 2.0 1000 出力 被災地に住んでいる人の数。上記の例では、3番目と5番目の都市のみが危険エリアにあるため、出力は次のようになります。 8500 最短のコードが優先されます。 例2 0.0 0.0 10.0 0.0 5.0 5.0 4.0 10000 5.0 -4.0 1000 5.0 6.0 100 11.0 …
13 code-golf  math  1p5 

5
3点を通る円
平面上の3点のデカルト座標が与えられると、それらすべてを通る円の方程式を見つけます。3つのポイントは直線上にありません。 プログラムへの入力の各行には、3つのポイントxとy座標が順番に含まれA(x),A(y),B(x),B(y),C(x),C(y)ます。これらの座標は、スペースで区切られた1,000,000未満の実数になります。 解はの方程式として印刷され(x-h)^2 + (y-k)^2 = r^2ます。値はh、k、r小数点以下3桁で印刷されることになります。方程式のプラス記号とマイナス記号は、数値の前に複数の記号が付かないように、必要に応じて変更する必要があります。 Sample Inputs 7.0 -5.0 -1.0 1.0 0.0 -6.0 1.0 7.0 8.0 6.0 7.0 -2.0 Sample Outputs (x - 3.000)^2 + (y + 2.000)^2 = 5.000^2 (x - 3.921)^2 + (y - 2.447)^2 = 5.409^2
13 code-golf  math 

12
シミュレートされた爆発のための最もコンパクトなコード
(単純なパーティクルエンジンのように)爆発するピクセルのグループを画面にレンダリングするプログラムを作成できますか。また、非常に少数の文字(キーストローク)でこれを実行できますか。(それらの小さな男が爆発し、小さなピクセルの破片が飛び散るときのゲームのレミングを思い出してください。) 誰かがここで簡単なパーティクルシステムを処理スケッチとしてプログラムしました。しかし、誰かがc ++とsdlで、あるいはjavaやc#でも同じことができたら、もっと感銘を受けるでしょう。
13 code-golf 

4
長い乗算、一度に8ビット
16ビットのマシンが与えられ、任意のサイズの整数の乗算を実装するように指示されます。レジスタは16ビットの数値のみを保持でき、最大の乗算命令は2つの8ビット入力を取り、16ビットの結果を生成します。 プログラムは、入力として2つの任意のサイズの正数を取り、それらの積を出力する必要があります。各入力番号は、各バイトが2桁の16進数であるリトルエンディアンのバイト配列として、独自の行でエンコードされます。出力は同様にフォーマットする必要があります。おそらく例を挙げて説明するのが最も良いでしょう: 入力 1f 4a 07 63 a3 出力 fd 66 03 a7 04 乗算477727 * 41827 = 19981887229をエンコードします。 各入力番号の最​​後の(最上位)バイトがゼロ以外であり、出力する番号の最後のチャンクがゼロ以外であると仮定できます。両方の入力番号の長さは最大100バイトです。 最小のコードが勝ちます。 使用できる最大の乗算は1バイト* 1バイトであり、2バイトを超える整数型は使用できません。
13 code-golf  math 

7
n、nに最も近い素数、nの二乗、nに最も近いフィボナッチ数の平均は何ですか?
これは数学の問題であり、非常に多くのことを疑問視し、かなり挑戦的です。ご想像のとおり、これはコードゴルフですので、できるだけ短くする必要があります。 入力は、n任意のある整数の数(少なくとも支持整数べきで、それに限定される必要はありません)。出力がある平均の: n の正方形 n に最も近い素数 n nフィボナッチ数列の中で最も近い数 まもなく、プログラムはの結果を標準出力チャネルに出力するはずです。(n+(n*n)+closestPrime(n)+closestFib(n))/4 オーバーフローの可能性などを気にする必要はありません。通常の浮動小数点の精度も問題ありません。 入力が与えられる方法は完全にあなた次第です。コードゴルフと同様に、最短のプログラム(キャラクター)が勝ちます。 最も近いものを探しているときに同点になる場合は、次のいずれかを選択します。 上がる 降りる ランダムに選択してください

6
パワーの比較。
次の関数f(a、b、c、d、e、f)を作成して、2つの数値N 1 = a b c、N 2 = d e fを比較します。 N 1 > N 2の場合、1を返します N 1 <N 2の場合、-1を返します 注: N 1とN 2の間の他の関係に値を返す必要はありません。例えば、それらが等しい場合、またはそれらの関係が定義されていない場合(複素数)。 その他の制約: すべての数字は整数です a、b、c、d、e、fは正でも負でもかまいませんが、ゼロではありません。 | a |、| d | <1000 | b |、| c |、| e |、| f | <10 10 実行時間が数秒未満 例: f(100,100,100,50,100,100) = 1 f(-100,100,100,50,100,100) …
13 code-golf 

13
eの最初のN桁を計算します
チャレンジ eの最初のN(<= 10 ^ 3)桁を計算するプログラムを作成します。 プログラムは入力として整数Nを取る必要があります。 入力: 100 出力: 2.718281828459045235360287471352662497757247093699959574966967627724076630353547594571382178525166427 入力: 7 出力: 2.718282 入力: 1000 出力: 2.718281828459045235360287471352662497757247093699959574966967627724076630353547594571382178525166427427466391932003059921817413596629043572900334295260595630738132328627943490763233829880753195251019011573834187930702154089149934884167509244761460668082264800168477411853742345442437107539077744992069551702761838606261331384583000752044933826560297606737113200709328709127443747047230696977209310141692836819025515108657463772111252389784425056953696770785449969967946864454905987931636889230098793127736178215424999229576351482208269895193668033182528869398496465105820939239829488793320362509443117301238197068416140397019837679320683282376464804295311802328782509819455815301756717361332069811250996181881593041690351598888519345807273866738589422879228499892086805825749279610484198444363463244968487560233624827041978623209002160990235304369941849146314093431738143640546253152096183690888707016768396424378140592714563549061303107208510383750510115747704171898610687396965521267154688957035035 最短のソリューションが勝ちます!
13 code-golf  math 

2
ローマ数字変換機能
ローマ数字の文字列を整数に変換する最短の関数を作成します。 各手紙の規則は、ウィキペディアのページで見つけることができます。1,000を超える文字には、高い値を示すために括弧が配置されます。 要件: ローマ数字1から500,000に変換する必要があります 1分以内に完了する必要があります 利点をもたらす可能性のある組み込み関数を使用しません(例:ローマ数字を整数に変換する関数) 関数です 関数は分数をサポートする必要はありません。無効な入力は、0を返します。 最短の機能が優先されます。同点の場合、最も投票数の多いものが勝者となります。 テストケース 入力 III 出力 3 入力 IIII 出力 0 入力 XVI 出力 16 入力 (C)(D)(L)MMI 出力 452001

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