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

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

2
三角形の球面過剰
三角形の球面過剰 ご存知のように、平面三角形の角度の合計は180度に等しくなります。 ただし、球面三角形の場合、角度の合計は常に180度より大きくなります。球面三角形の角度の合計と180度の差は球面過剰と呼ばれます。タスクは、与えられた頂点座標で三角形の球面過剰を計算することです。 いくつかの背景 球面三角形は、球の3つの大円で定義される球の一部です。 球面三角形の両側と角度は、角度測定の用語で測定されます。これは、各側面が球体と球体の中心にある頂点との平面角度の交点と見なすことができるためです。 3つの異なる大円はそれぞれ8つの三角形を定義しますが、 適切な三角形考慮します。角度と側面の測定値が満たされる三角形 地理座標系の観点から三角形の頂点を定義すると便利です。両端の経度λと緯度Φが与えられた場合、球の弧の長さを計算するには、次の式を使用できます。 、 どこ またはより明示的に: (ソース:https : //en.wikipedia.org/wiki/Haversine_formula) 球面三角形を解くために使用できる2つの基本式は次のとおりです。 余弦の法則: サインの法則: (ソース: https //en.wikipedia.org/wiki/Spherical_trigonometry#Cosine_rules_and_sine_rules) 3つの側面がある場合、コサインルールを使用して角度を簡単に計算できます。 最後に、三角形の球面過剰が定義されます。 三角形の球体過剰とその面積との関係について興味深いのは: 単位球では、三角形の過剰はその三角形の面積に等しくなります! タスク 三角形の頂点座標を指定して、三角形の球面過剰を角度で計算する関数またはプログラムを作成します。頂点座標は、地理座標系で提供されます。 各頂点はで渡す必要があります[latitude in degrees][N|S][longitude in degrees][E|W]。経度、EまたはW緯度が90の場合はスキップできます。 90N、90S、10N100E、30S20W一方で、適切な頂点記述されている80Nか55Sではありません。 テストケースでは、緯度と経度は常に整数です。 エラーが1度未満の回答は受け入れられます(以下の例のように)。したがって、結果は実数または整数の両方としてレンダリングできます。 例 入力 90N0E 0N0E 0N90E 出力 89.999989 入力 90N 0N0E 0N90E 出力 89.999989 入力 0N0E …

3
次元分析
SI単位の積または比率を計算します。 たとえば、kg m / s s(キログラム/秒の平方)はN(ニュートン)を返す必要があります。 入力は常に次のいずれかです。 スペースで区切られた(製品を表す)SIユニットのシンボルのリストまたは 上記、/および上記(比率を表す)。 入力に他の文字(数値リテラルやその他の句読点など)が含まれることはありません。 これは常に単一のSIユニットに等しいと仮定できます。 次の記号を使用します。 Base quantities: s # second m # meter kg # kilogram A # ampere Derived quantities: N = kg m / s s # newton J = N m # joule W = J / s # watt …

9
キーパッドの主題について
Keep Talking and Nobody Explodesは、1人のプレイヤーが仮想の「爆弾」を制御できるローカルマルチプレイヤーゲームであり、別のプレイヤー、「爆弾除去マニュアルにアクセスできる」「エキスパート」に導かれなければなりません。ゲームで武装解除するモジュールの1つはキーパッドモジュールです。これは、この課題で対処するものです。 タスク 入力は、スペース(0x21〜0x7E)を除く印刷可能なASCII文字の1行で始まります。これらは、目に見えるキーパッドボタンを表します。 次の数行は「キー」を表します。最初の行のすべての文字が含まれるのは1行だけであり、必ずしも順序どおりではありません。タスクは、キーパッドの文字を一致するキー行の順に出力することです。 たとえば、入力が 5~Fy HrD7K!#} Ui%^fHnF )Tf;y~I5 ~Fi(&5gy ,'Xd#5fZ その後、キーパッドのボタンがあり5、~、Fとy。4番目のキー行のみ~Fi(&5gyにこれらの文字がすべて含まれているため、キーパッド文字を表示順に出力します~F5y。 規則と説明 入力は、キーパッドボタンとキー行が別々の行にある単一の複数行文字列でなければなりません。 すべてのキーパッド文字を含むキー行が1行だけあります。 すべての行、つまり最初のキーパッド行とそれに続くキー行には、重複する文字はありません。 ゲームとは異なり、キーパッドの文字数、各キー行の長さ、またはキー行の数については何も想定できません。ただし、すべてのキー行は同じ長さであることが保証されています。 出力には、単一のオプションの末尾の改行が含まれる場合があります。同様に、入力のオプションの末尾の改行についてはどちらの方法でも想定できますが、前提が必要な場合は回答で指定してください。 これはすでに一般的な慣行のようですが、STDOUT出力が正しい限り(エラーが出力の選択形式である場合)、この課題に対してエラーで終了してもかまいません。これにより、入力の処理が簡単になることを願っています。 テストケース 7 4?j01C3"ch KP.OG>QB)[ z#)Kn"I2&. ]#,D|sBFy5 Qzj*+~7DLP 出力: 7。最後の行のみに7。 0b~ Ob+hy{M|?;>=dtszPAR5 *8rCfsw|3O9.7Yv^x>Hq $ip.V@n}|La:TbIt^AOF jZ[Ec4s0|%b*$id',~J6 z*#b}-x$Ua&!O2;['T+? NVj_X8rlhxfnS\.z}];c bykscf.w^dnWj+}-*2g_ VP`AJH|&j5Yqmw/"9IMc 出力:0b~。4番目のキー行には、すでに正しい順序で文字が含まれています。 MTuz bIAr>1ZUK`s9c[tyO]~W oMGIi/H&V"BeNLua%El= j*uYbplT:~);BM|_mPZt Q}z5TC@=6pgr<[&uJnM% YOA(F~_nH6T{%B7[\u#5 y&t"8zQn{wo5[Idu4g:? [0tZG"-fm!]/|nqk,_2h …
15 code-golf  string 

4
分厚いパリンドローム
パリンドロームは楽しいですが、他の弦のいくつかは取り残されているように感じ始めています。これらの文字列をパリンドロームのチャンク配列に分割することで、これらの文字列をチャンキーな回文に変えることができます。 たとえば、文字列は、"abcabca"我々は文字で、それ文字を読めば回文ではありませんが、我々はそれ作るの3種類の方法持って分厚い回文を: ["abcabca"] ["a" "bcabc" "a"] ["a" "bc" "a" "bc" "a"] ご覧のとおり、分厚い回文性は非常に包括的な概念です。すべての文字列は、少なくとも1つの方法で分厚い回文に変換できます。 仕事 入力として文字列を受け取り、その回文的なchunkiness、つまり回文配列であるパー​​ティションの数を返すプログラムまたは関数を作成します。 テストケース OUTPUT | INPUT --------+--------------------------------------------- 1 | "" 1 | "a" 1 | "ab" 2 | "aa" 2 | "aaa" 3 | "abcabca" 4 | "abababab" 28 | "abcabcaabababababcabca" 1 | "bbbbabababbbbababbbaaaaa" 20 | "ababbaaaabababbbaaabbbaa" 5 …

20
ブー!ハロウィーンコードゴルフチャレンジ
長さ2文字以上の入力文字列を受け取り、文字列 ~BOO!~ (その文字列の先頭と末尾にスペースがある)を、両端にない文字列の一様にランダムな場所に追加するプログラムを作成します。 許可されていないサンプル入力:2または (空の入力) 許可されていないサンプル出力:Hello ~BOO!~ または ~BOO!~ Hello入力用Hello サンプル入力:Hello, World! サンプル出力:Hel ~BOO!~ lo, World!またはHello, Worl ~BOO!~ d! これはコードゴルフです。標準ルールが適用されます。バイト単位の最短コードが優先されます。 最短でスプーキーなプログラムをお持ちいただき、デニスにおめでとうございます!ハッピーハロウィン!

18
しばらくして
この課題のために、次の形式で時間を記述しています。 hh:mm:ss いくつかの例: 12:34:08 06:05:30 23:59:00 課題は、開始時間として、時間、分、秒が経過した後に時間を出力すること00:00:00です。これをで開始したタイマーと比較でき00:00:00ます。 次に、入力(STDINを使用)と出力の例を示します。 Input: 1h20m5s Output: 01:20:05 Input: 0h100m0s Output: 01:40:00 24時間後、タイマーは自動的にリセットされます。 Input: 25h0m0s Output: 01:00:00 入力の形式は常に同じです:XhYmZs、X時間、Y分、Z秒(X、YおよびZが100000未満の整数で負でないことを想定) これはcode-golfであるため、最小のバイト数がこのチャレンジに勝ちます
15 code-golf 

7
角度の平均
ストーリー、またはこれを行う理由。 なし。この練習は完全に無意味です...あなたがスティーブンホーキングでない限り。 チャレンジ 角度のリストが与えられたら、それらの角度の平均を見つけます。たとえば、91度と-91度の平均は180度です。これを行うには、プログラムまたは関数を使用できます。 入力 角度測定を表す次数値のリスト。あなたはそれらが整数であると仮定するかもしれません。任意の便利な形式で入力するか、関数の引数として提供できます。 出力 入力された値の平均。平均値に複数の値が見つかった場合は、1つだけを出力する必要があります。平均は、その値として定義されます 最小化されます。出力は(-180、180]の範囲内にあり、小数点より少なくとも2桁正確である必要があります。 例: > 1 3 2 > 90 -90 0 or 180 > 0 -120 120 0 or -120 or 120 > 0 810 45 > 1 3 3 2.33 > 180 60 -60 180 or 60 or -60 > 0 15 …

5
隠された電力計算機
私がいつもポケモンを愛してきた理由の1つは、そのような単純に見えるゲームのために、非常に多くの複雑さの層があるためです。隠された力の動きを考えてみましょう。ゲームでは、隠されたパワーのタイプとパワー(少なくともジェネレーションVIの前)は、それを使用するポケモンごとに異なります!それはかなりクールですよね?さて、隠し力の種類と力はランダムに生成されないと言ったら驚かれますか? すべてのポケモンゲームでは、すべてのポケモン(パーティの1つだけでなく、すべてのポケモン)には6つの内部に格納された整数があります(1つはHP統計、1つは攻撃統計、1つは防御統計、1つは特別な攻撃統計、 1つは特別な防御の統計用で、もう1つは速度の統計用))個々の値、またはIV と呼ばれます。これらの値の範囲は0から31であり、基本的にポケモンの全体的な統計に影響を与えるいくつかの要因の1つです。ただし、Hidden Powerのタイプとパワーも決定します! Generation IIIからV(アルゴリズムを実装する世代)では、Hidden Powerのタイプは次の式で決定されます(フロアブラケットに注意してください。つまり、結果を切り捨てる必要があります)。 ここで、a、b、c、d、e、およびfは、HP、攻撃、防御、速度、Spの最下位ビットです。攻撃、およびSp。それぞれ防衛IV。(最下位ビットはIV mod 2です。)ここで生成された数値は、このチャートを使用して実際のタイプに変換できます。 0 Fighting 1 Flying 2 Poison 3 Ground 4 Rock 5 Bug 6 Ghost 7 Steel 8 Fire 9 Water 10 Grass 11 Electric 12 Psychic 13 Ice 14 Dragon 15 Dark 電力については、同様の式が使用されます。 ただし、ここで、u、v、w、x、y、およびzは、HPの2番目に重要度の低いビット、Attack、Defense、Speed、Spを表します。攻撃とSp 防衛IV(再びこの順序で)。(2番目の最下位ビットは最下位ビットよりも複雑です。IVmod 4が2または3の場合、ビットは1です。それ以外の場合は0です。言語に何らかの組み込みまたは少なくともより賢い方法がある場合これを行うには、おそらくそれを使用する必要があります。) 既におわかりのように、ここでの課題は、HP、攻撃、防御、速度、Spを表すSTDINを介してスペースで区切られた6つの整数を取り込むプログラムを作成することです。攻撃とSp ポケモンの防御IV(この順序で)およびそのポケモンの隠された力のタイプと力を出力します。 サンプル入力: …
15 code-golf  number  game 

3
1つのライナーを生成する迷路
有名なC64ベーシックワンライナー 10 PRINT CHR$(205.5+RND(1)); : GOTO 10 スラッシュとバックスラッシュの迷路を印刷します。 \\/\\\//\/\////\\/\/ \/\///\\///////\//\/ /\\\//\//\////\\//\\ \////\//\//\/\\\\\\/ /\/\\///\\\\/\\\\/\\ \/\//\\\\\\//\/\//// /\//\\///\/\///\//// \/\\\//\\/\\\//\\/\/ //////\\/\\/\/\/\/// \\/\/\\////\/\/\\/\/ stdinの斜めの壁で作られたそのような迷路を読み、壁の文字「#」で構成される水平および垂直の壁で同じ迷路を印刷します たとえば、小さな迷路 /\\ \\/ /// に変換する ##### # # # # # # # # # # ##### # # # # # ######### ##### 正確には、分離された各壁セグメントの長さは5文字で、隣接する壁セグメントは角を共有します。スラッシュとバックスラッシュのマトリックスで文字を右/左/上/下に移動すると、#マトリックスの垂直方向に2文字、水平方向に2文字の対角線変換に対応します。

12
コンパニオンマトリックスを作成する
あなたは孤独な多項式をたくさん持っているので、それらをいくつかの仲間(刺すことを脅さない)にしてください! 次数の多項式のn場合、n by nコンパニオンキューブ 行列があります。多項式の係数リストを昇順(a + bx +cx^2 + …)または降順()で受け入れる関数を作成する必要がありますax^n + bx^(n-1) + cx^(n-2)+…)で(両方ではなく)、コンパニオンマトリックスを出力ます。 多項式のc0 + c1x + c2x^2 + ... + cn-1x^(n-1) + x^n場合、そのコンパニオン行列は (0, 0, 0, ..., -c0 ), (1, 0, 0, ..., -c1 ), (0, 1, 0, ..., -c2 ), (...................), (0, 0, ..., 1, -cn-1) の係数x^nは1であることに注意してください。他の値については、残りのすべての係数をx^n。さらに、1は対角線からオフセットされます。 …

1
ゴルフをコーディングして
ゴルフをしたことがない場合、この質問で使用するゴルフ関連用語のリストを以下に示します ショット、ストロークとも呼ばれる:ボールがヒットするたびに、これはショットです。 ホール:ゴルフコースはホールに分割され、ゴールはできるだけ少ないショットで指定された場所から別の場所にボールを打つことです。 ティー:穴を開けるところ。 ピンまたはフラグ:穴を仕上げる場所 Fairway、Rough、Water、Green:ゴルフコースの機能で、実際の生活でボールをどのようにプレーするかに影響します。(それらがプログラムにどのように影響するかを以下に指定します) 私は明日ゴルフに出かけますが、時々、特定のヤードを打つためにどのクラブを使用するのかわからないことがあります。そこで、ショットごとにクラブとそのヤードを書き留めることにしました。 最初の仮定:すべての穴はティーボックスの真北にあります。 これらのヤードはすべて、ボールがどれだけ北に移動するかの可能性を測定します。ボールは、各クラブに指定された境界(両端を含む)の間のランダムな整数距離を移動します。 マスターゴルファーとして、私のショットには水平シフトがありません。これは、すべてのショットが直接旗に向かってまっすぐ進むことを意味します。 Club # Club Yardage 1 Driver 300-330 2 3-Wood 270-299 3 5-Wood 240-269 4 3-Iron 220-239 5 4-Iron 200-219 6 5-Iron 180-199 7 6-Iron 160-179 8 7-Iron 140-159 9 8-Iron 120-139 10 9-Iron 100-119 11 P-Wedge 80-99 12 S-Wedge 50-79 …

4
レイジープログラマーのXMLパーサー
バックグラウンド あなたは自動車販売会社のプログラマーとして働いています。今週のタスクは、さまざまな自動車メーカーから入手可能なモデルに関するデータを取り込み、最新モデルに関する情報をきれいに印刷するXMLパーサーをプログラムすることです。幸いなことに、テスト部門が提供したテストケースは1つだけです!それを渡すコードをより速く書くことができるほど、その週の残りの時間を先延ばしにする時間が増えます。 入力 入力は、テスト部門から提供されたまさにこのXMLデータです。一部の自動車メーカー、その自動車のシリーズ、およびこれらのシリーズのモデルに関するデータが含まれています。末尾の改行を想定できます。 <?xml version="1.0" ?> <products> <manufacturer name="Test Manufacturer 1"> <series title="Supercar" code="S1"> <model> <name>Road Czar</name> <code>C</code> <year>2011</year> </model> <model> <name>Ubervehicle</name> <code>U</code> <year>2013</year> </model> <model> <name>Incredibulus</name> <code>I</code> <year>2015</year> </model> <model> <name>Model 1</name> <code>01</code> <year>2010</year> </model> </series> <series title="Test series 22" code="Test"> <model> <name>Test model asdafds</name> <code>TT</code> <year>2014</year> </model> …

30
ランダムUUIDを生成
UUIDが必要です。あなたの仕事はそれを生成することです。 正規のUUID(Universally Unique IDentifier)は、特定のポイントにハイフンが挿入された32桁の16進数です。プログラムは、32桁の16進数(128ビット)をxxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx(8-4-4-4-12digit)の形式で出力する必要があります。x。あなたの言語のPRNGが完璧であると仮定すると、すべての有効な出力は同じ確率で生成される必要があります。 TL; DR 32のランダムな16進数を数字の形式で生成し8-4-4-4-12ます。最短のコードが優先されます。 編集:16進数でなければなりません。常に小数のみを生成することは無効です。編集2:ビルトインなし。これらはGUIDではなく、一般的な16進数です。 出力例: ab13901d-5e93-1c7d-49c7-f1d67ef09198 7f7314ca-3504-3860-236b-cface7891277 dbf88932-70c7-9ae7-b9a4-f3df1740fc9c c3f5e449-6d8c-afe3-acc9-47ef50e7e7ae e9a77b51-6e20-79bd-3ee9-1566a95d9ef7 7b10e43c-3c57-48ed-a72a-f2b838d8374b 入力および標準の抜け穴は許可されません。 これはcode-golfなので、最短のコードが優先されます。また、説明を求めてください。
15 code-golf  random 

23
スクロールマーキーにする
前書き 80年代のro音を覚えていますか?30年前のようにね 携帯電話、インターネット、ATM、蛍光灯(それは何でしたか!)、スクロールマーキーはありません!ダメダメダメ!オンラインではなく、実際のもの、LEDライト付き。 ノスタルジックな雰囲気なので、スクロールマーキーを作成してください。 チャレンジ 1行の文字列を入力できるプログラムを作成します。プログラムでは、必要に応じてテキストを繰り返す80文字幅のスクロールマーキーを作成する必要があります。 ルール ユーザーは、入力としてプログラムに文字列を入力できる必要があります。文字列は、コマンドラインパラメータ、またはプログラムの実行中に入力された文字列です。 プログラムは、正確に80文字(可視)の文字列を継続的に印刷する必要があります。 文字列は、0.1秒ごとに更新する必要があり(多かれ少なかれ、タイミングを計りません)、反復ごとに文字を1ポジション左にシフトします。 文字列は「回転します」。ユーザーが指定した文字列の最後に、文字列の別のインスタンスが表示される必要があります。 プログラムは、改行なしで出力を1行で印刷する必要があります(「\ n」の代わりに「\ r」を使用します) プログラムは広告を無限に実行する必要がありますユーザーが割り込むまで、。 これはcodegolfなので、バイト単位の最短コードが優先されます。 10%のボーナスがあります(四捨五入アップ黒色の背景に赤色で印刷するための次の整数には)。 標準の抜け穴が適用されます。 Python 2.7のリファレンス実装 このプログラムはゴルフではありませんが、参照実装(およびサイズの上限)を提供します。 import time,sys s=raw_input()*99 while 1: for i in range(80): print s[i:i+80]+'\r', sys.stdout.flush() time.sleep(0.1)
15 code-golf 

16
手紙の番号
文字をアルファベットの位置に置き換える非常に単純な暗号が存在します。例えば、abcなります1 2 3この暗号で。 この課題は、この暗号の代替案です。 チャレンジ ASCII文字の入力を受け取り、スペースで区切られた次の文字列を出力するプログラムを作成します。 整数-26から26 手紙a通しj 出力は、STDOUTまたは使用言語の最も近い代替手段を介して行われます。 仕様書 大文字は無効にする必要があります。資本D例えばは以下のようになり-4、小文字は一方で、dだろう4。 数字は、対応するアルファに変更する必要があります。1であることa、など。入力のゼロはになりますj。 すべての非英数字(スペースを除く)は無視する必要があります。 スペースは0。 出力内の隣接するスペースは、単一のスペースに減らす必要があります。 Input: You + Me Correct Output: -25 15 21 0 -13 5 Incorrect Output: -25 15 21 0 0 0 -13 5 単一の末尾スペースまたは改行が許可されます。 例 Input: programming puzzles Output: 16 18 15 7 18 1 13 …

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