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

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

30
7セグメントディスプレイをエミュレートする
仕事 タスクは、7セグメントディスプレイの128の可能な状態のいずれかを 表示することです。 プログラムは、0またはの7文字(「ビット」)の文字列を受け入れる必要があります1。入力の最初のビットは、次の図のセグメントAに対応し、2番目のビットはBに対応します(無視dp)。 ディスプレイをどのように表現するかはあなた次第です-単一のUnicodeまたはASCIIシンボル、 ASCIIアート、グラフィック、またはあなたが思いつくものなら何でも。ただし、各入力には独自の個別の出力が必要です。あなたが何か素晴らしいものを思いついた場合、私はあなたがいくつかの例を見せることによって賛成票を収穫できると確信しています。 ディスプレイの128の可能な状態はすべて次のとおりです。 ルール コードゴルフ 先ほど言ったように、あらゆる種類の出力が許可されていますが、指定した方がいいでしょう。 入力は、stdinまたはコマンドライン引数です。 例 入力 1101101 出力 ASCII / Unicodeとして: 2 さまざまな種類のASCIIアート(これはあまり得意ではありません) _ ╺┓ ╒╗ --- _| ┏┛ ╔╝ | |_ ┗╸ ╚╛ --- | ---
24 code-golf 

8
ビリヤードボールの衝突
衝突直前のビリヤードボールの2次元の位置と速度を考慮して、完全に弾性衝突した後の速度を計算します。ボールは、同じ半径、同じ質量、均一な密度、および摩擦のない理想的な球体(または同等:円)と見なされます。 入力は8個の数字から構成されています。p0x,p0y,v0x,v0y,p1x,p1y,v1x,v1yここで、p0x,p0y第1のボールの中心であり、v0x,v0yその速度、および同様にp1x,p1y,v1x,v1y第2のボールのために。入力を任意の順序で受け入れ、便利な方法で構造化できます。たとえば、2x2x2配列、またはpandの2x2配列とandの2つのlength-2配列v0などv1です。また、xyペアの代わりに複素数(言語でサポートされている場合)を使用しても問題ありません。ただし、デカルト座標以外の座標系では入力しないでください。つまり、極座標は使用できません。 ビリヤードボールの半径はp0x,p0yとの間の距離の半分であることに注意してください。そのp1x,p1yため、入力の明示的な部分としては与えられません。 便利なデカルト表現で4つの数値を出力または返すプログラムまたは関数を記述しますv0x,v0y,v1x,v1y。衝突後の値です。 可能なアルゴリズムは次のとおりです。 両方の中心を通る法線を見つける 2つの中心の中間点を通り、法線に垂直な接線を見つける 変更は、システムを調整し、打破v0x,v0yし、v1x,v1yその接線と通常の成分へv0t,v0nとv1t,v1n v0およびの法線成分を交換し、v1接線成分を保存します 元の座標系に戻す テスト(小数点以下5桁に丸められた結果): p0x p0y v0x v0y p1x p1y v1x v1y -> v0x' v0y' v1x' v1y' [-34.5,-81.8, 34.7,-76.1, 96.2,-25.2, 59.2,-93.3] [ 49.05873, -69.88191, 44.84127, -99.51809] [ 36.9, 77.7,-13.6,-80.8, -7.4, 34.4, 15.1,-71.8] [ 5.57641, -62.05647, -4.07641, -90.54353] [-51.0, 17.6, 46.1,-80.1, 68.6, 54.0,-35.1,-73.9] [ …

20
1、2、4、8、16、…33?
チャレンジ n'th要素または最初のn要素のいずれかを、よく知られた番号の順序で出力する関数/プログラムを作成します。 1, 2, 4, 8, 16 ... ああ、待って...最初の数個の数字を忘れてしまった: 1, 1, 1, 1, 2, 4, 8, 16 ... さて、良い測定のためにいくつか追加します。 1, 1, 1, 1, 2, 4, 8, 16, 33, 69, 146, 312, 673, 1463, 3202, 7050, 15605, 34705 ... 数値は、(ゼロインデックス付き)式で与えられる一般化されたカタロニア語の数値です。 a(n+1)=a(n)+∑k=2n−1a(k)⋅a(n−1−k)a(n+1)=a(n)+∑k=2n−1a(k)⋅a(n−1−k)a(n+1)= a(n) + \sum_{k=2}^{n-1} a(k)\cdot a(n-1-k) どこで a(0)=a(1)=a(2)=a(3)=1a(0)=a(1)=a(2)=a(3)=1a(0)= a(1)= a(2)= a(3) …

18
ウルトララジカルを計算する
ウルトララジカルとは ultraradical実数の、または持参ラジカル五次方程式の唯一の真のルートとして定義され、X 5 + X + A = 0。aaax5+x+a=0x5+x+a=0x^5+x+a=0 ここでは、UR(⋅)UR(⋅)UR(\cdot)を使用して超ラジカル関数を示します。たとえば、10 5 + 10 − 100010 = 0 なのでUR(−100010)=10UR(−100010)=10UR(-100010)=10です。105+10−100010=0105+10−100010=010^5+10-100010=0 チャレンジ 入力として実数を取り、その超ラジカルを返すか出力する完全なプログラムまたは関数を作成します。 必要条件 標準的な抜け穴は許可されていません。以下のテストケースの結果は、少なくとも有効数字6桁まで正確である必要がありますが、一般に、プログラムは有効な実数入力に対して対応する値を計算する必要があります。 テストケース 0に向かって丸められた9桁の小数部が参照用に提供されています。一部のテストケースについて説明が追加されています。 a | UR(a) ---------------------------+--------------------- 0 | 0.000 000 000 # 0 1 | -0.754 877 (666) # UR(a) < 0 when a > 0 -1 | …

15
部屋番号ロケーター
部屋番号ロケーター 会議で同僚から間違った部屋番号を与えられたとき、私は仕事で興味深い問題解決テクニックに出会いました。時々、会議に向かう途中で、私のチームのメンバーが間違った部屋番号を送信します。これは通常、デスクで急いでいて、太い指で間違ったキーを押しているためです。 おもしろいことに、間違った部屋に着くと、私は通常、テンキーを想像することで彼らが本当に意味した部屋を推測できます: そして、隣接する数字を推測することにより、彼らは押すことを意図していました。 チャレンジ あなたの課題は、同僚が1桁しか入力しないと仮定して、建物のオフィス番号(000〜999)を受け取り、可能なタイプミスを出力する関数を記述することです。 次の表に、数字キーパッドで隣接する数字を示します。 0 -> 1,2 1 -> 0,2,4 2 -> 0,1,3,5 3 -> 2,6 4 -> 1,5,7 5 -> 2,4,6,8 6 -> 3,5,9 7 -> 4,8 8 -> 5,7,9 9 -> 6,8 入力 3桁の数字: 000-999。正確に3桁の入力を想定しています。数値が100未満または10未満の場合、先行ゼロが与えられます。(つまり、004および028)。 出力 可能な部屋のリスト。部屋番号の間に区切り記号がある限り、これは任意の形式にすることができます。(つまり、スペース、コンマ、改行など。)数値が100未満または10未満の場合、出力として先行ゼロを使用できるかどうかは、ユーザー次第です。(つまり、004は004 04 4、028は028 28) テストケース(先行ゼロはオプション): 008 -> 108, 208, …
24 code-golf 

6
座標までの距離
2D平面にはn人がいます。それらの間の距離を使用して、それらの位置を見つけます。一意の答えを得るには、次の4つの仮定を行う必要があります。 少なくとも3人がいます。 最初の人は位置(0、0)にいます。 2番目の人は、あるx> 0の位置(x、0)にいます。 3番目の人は、あるy> 0の位置(x、y)にいます。 したがって、あなたの課題は、距離の2D配列(D[i][j]人iとの間の距離を与えるj)が座標のリストを返すプログラムまたは関数を作成することです。回答は、少なくとも6つの有効数字に対して正確でなければなりません。バイト単位の最短ソリューションが勝ちです。 例 [[0.0, 3.0, 5.0], [3.0, 0.0, 4.0], [5.0, 4.0, 0.0]] => [[0.0, 0.0], [3.0, 0.0], [3.0, 4.0]] [[0.0, 0.0513, 1.05809686, 0.53741028, 0.87113533], [0.0513, 0.0, 1.0780606, 0.58863967, 0.91899559], [1.05809686, 1.0780606, 0.0, 0.96529704, 1.37140397], [0.53741028, 0.58863967, 0.96529704, 0.0, 0.44501955], [0.87113533, 0.91899559, 1.37140397, 0.44501955, 0.0]] …

4
スリーポインター!しかし、どのような?
http://en.wikipedia.org/wiki/Triangleから: 3つの2次元座標タプル(デカルト)を取り、これらの3つのポイントが記述する形状を分類するプログラムを作成します。 ほとんどすべての場合、これらのポイントはさまざまなタイプの三角形を表します。一部の縮退した場合、ポイントは特異ポイントまたは直線のいずれかを表します。プログラムは、記述された形状に適用される次のタグを決定します。 ポイント(3ポイントは同時発生) 線(3点が直線上にある-一致する可能性があるのは2点までです) 等辺(3つの側面が等しい、3つの角度が等しい) 二等辺(2つの側面が等しい、2つの角度が等しい) スカレン(0辺が等しい、0角が等しい) 右(1角度正確にπ/ 2(または90°)) 斜め(0角度正確にπ/ 2(または90°)) 鈍角(1角度>π/ 2(または90°)) 急性(3角<π/ 2(または90°)) 説明されている一部の形状には、上記のタグが複数適用されることに注意してください。たとえば、直角はいずれも二等辺または斜角になります。 入力 プログラムは、STDIN、コマンドライン、環境変数、または選択した言語に便利な方法から3つの入力座標を読み取ることができます。 ただし、フォーマットする入力座標は、選択した言語にとって便利です。すべての入力番号は、最終的に使用するデータ型に関して整形式であると想定できます。 入力座標の順序については何も想定できません。 出力 プログラムは、STDOUT、ダイアログボックス、または選択した言語に便利な表示方法に出力します。 出力には、入力座標で記述された形状に適用可能なすべてのタグが表示されます。 タグは任意の順序で出力できます。 その他の規則 あなたの言語の三角ライブラリ/ APIは許可されていますが、三角形のタイプを明確に計算するAPIは禁止されています。 角度の均等性または辺の長さを決定する場合、おそらく浮動小数点値を比較することになります。1つの値が他の値の1%以内であれば、このような値は2つ「等しい」と見なされます。 もはや面白くない標準の「抜け穴」 これはcode-golfであるため、バイト単位の最短回答が優先されます。 例 Input Output (1,2) (1,2) (1,2) Point (1,2) (3,4) (5,6) Line (0,0) (1,1) (2,0) Isosceles Right (0,0) (2,1) (10,1) …

10
フェルマーの多角数定理
フェルマーの多角数定理は、すべての正の整数が最大対角数の合計として表現できると述べています。すべての正の整数は3つの三角形番号、4つの平方数、5五角数などあなたの仕事は、正の整数取ることですまでの和として表現することができることを、この手段、整数、および出力へ -合計される角整数。nnn nnnxxxs≥3s≥3s \ge 3sssxxx 目 -gonal整数、及び、いくつかの方法で定義することができます。非数学的な方法は、番目対角数を、それぞれの長さがである辺を持つ正多角形として構築できることです。たとえば、(三角形の数)の場合:nnnsssn≥1n≥1n \ge 1s≥3s≥3s \ge 3nnnssssssnnns =3s=3s = 3 より大きい例については、こちらをご覧ください。sss math-yの定義は、の式を使用することにより、番目対角数を生成します。P(n 、s )P(n、s)P(n, s)nnnsss P(n 、s )= n2(s − 2 )− n (s − 4 )2P(n、s)=n2(s−2)−n(s−4)2P(n, s) = \frac{n^2(s-2) - n(s-4)}{2} これはウィキペディアのページにあります。 入力 条件 2つの正の整数、および。言語で最も自然な表現でこれらの整数を入力できます(10進数、単項、教会の数字、整数値の浮動小数点数など)。sssバツバツxS ≥ 3s≥3s \ge 3 出力 最大長の整数リスト。ここで、の合計は等しく、すべての整数は対角整数です。繰り返しますが、整数は、言語の自然な表現で出力される場合があり、明確で一貫したセパレータがあります(したがって、10進出力の場合は非10進文字、単項出力などに使用されるものとは異なる文字)LLLsssLLLバツバツxLLLsss ルール 入力または出力が言語の整数制限を超えることはありません LLLは注文する必要はありません 複数の可能な出力の場合、いずれかまたはすべてが受け入れられます …

23
ボウルにアルファベットのスープを入れます
私たちは、ように見える決して取得しない疲れたアルファベット関連の課題の... レシピ 与えられた 文字列S、および 2つの正の整数M、N、 文字とアルファベットスープ製造S占有ランダムな位置に長方形のボウルサイズのM× N、フレームボウルのリムを表現するために、非アルファベット、非空白文字です。 文字で使用されていない位置はスペースとして表示する必要があります。以下の例を参照してください。 追加規則 サイズM× Nは、ボウルの内部を指します。リムを含むサイズはM+2× N+2です。 からの各キャラクターは、ボウルの異なる位置に一度S表示されます。つまり、ある文字が別の文字を上書きすることはできません。 S 重複する可能性があります。たとえばS、が文字列の'abcc'場合、スープにはone a、one b、およびtwo c(すべて異なる位置にある)が含まれている必要があります。 入力は満足さ制限を M >= 1、N >= 1、1 <= length(S) <= M*N。 ボウルの縁は、アルファベット以外、スペース以外の任意の文字で、プログラムの実行と入力値全体で一貫しています。 ボウル内の文字の位置はランダムであるため、同じ入力でプログラムを実行するたびに結果が異なる場合があります。 入力が与えられると、文字位置のすべての可能なセットはゼロ以外の確率を持つ必要があります。これはプログラムのいくつかの実現からはチェックできないため、コードがこれをどのように実現するかを説明してください。 先頭または末尾の空白リムの周りには許可されています。 S大文字のみが含まれます。希望する場合は、小文字のみを選択できます。 入出力は通常どおり柔軟です。たとえば、出力は、改行を含む文字列、2D文字配列、または行のリストです。 すべてのプログラミング言語でプログラムまたは機能を使用できます。標準的な抜け穴は禁止されています。 バイト単位の最短コードが優先されます。 例 入力はとして表示されます。S, [M N]ここでMは、行N数と列数です。キャラクター#はリムに使用されます。 'O', [1 1]: ### #O# ### 'HEY', [1 3]: ##### …

21
このリストはバランスを取ることができますか?
非負整数のリストのバランスが取れているかどうかを確認するには、ボードにそれぞれのウェイトを置き、ピボットの左右の合計相対ウェイトが同じになるように、ピボットのボードのバランスをとることを想像できます。相対的な重量は、重量にピボットまでの距離を掛けることによって与えられます(レバーの法則を参照)。 (ソース:ウィキペディア) この画像はリストに対応しています[100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5]。このリストのバランスが取れているの5は、ピボットの距離が20 100、距離が1およびであるため5*20 = 100 = 100*1です。 例 3 1 5 7 ######### ^ この場合にはピボットが直接下にあり5、3距離2を有し、1かつ7両側が左右のピボット和のアップするよう距離1を有する7(3*2 + 1*1左の及び7*1右)、したがって、リストが[3, 1, 5, 7]バランスされています。 ただし、ピボットはリスト要素の1つの下に配置する必要はありませんが、2つのリスト要素の間に配置することもできます。 6 3 1 ####### ^ この場合、距離は次のようになり0.5, 1.5, …

25
猶予期間を考慮した編集のカウント
SEで投稿を編集すると、5分間の猶予期間内にさらに編集された内容がマージされます。投稿を編集する回数のリストが与えられたら、猶予期間内ではない編集をカウントします。 数分で編集するとします[0,3,4,7,9,10,11,12]。これにより、3回の編集が行われ[0,7,12]、残りは猶予期間中に行われます。 0: [3,4] 7: [9,10,11] 12: [] 最初の編集は0分です。3分と4分での編集は5分の猶予期間内であるため、カウントしません。 2番目の編集は7分です。9、10、11分での編集は猶予期間内です。 12分目の3番目の編集は、7分から始まる5分間の猶予期間の端を過ぎています。 したがって、出力は3です。 分単位の時間のリストは、増加する整数のリストになります。最初の投稿では、最初の番号は常に0になります。これは編集としてカウントされます。 テストケース: [0] [0,3,5,7] [0,3,4,7,9,10,11,12] [0,30,120] [0,4,8,12,16] [0,4,8,12,16,20] [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19] [0,5,10,15,20] [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20] [0,1,4,5,9,11,12,14,16,18,23,24,26,28,29,30] 出力: 1 2 3 3 3 3 4 5 5 6 コピーを簡単にするために、入力、出力、および入出力のペアを以下に示します。 [[0], [0, 3, 5, 7], [0, 3, 4, 7, 9, 10, 11, 12], [0, …

22
配電盤上の一部のスイッチを反転する
この挑戦に触発されました。 ゴール: 事前に設定されたスイッチボードとインデックスのリストを指定すると、指定されたインデックスでスイッチを反転します。 配電盤は、いくつかのスイッチ(vまたは^)でラップ-され、さまざまな長さの列に配置されます。スイッチボードの例を次に示します。 -v-^-v- -^-v- -v-^-v- スイッチを反転/反転するとは、スイッチをvから^、またはから^に変更することを意味しvます。 スイッチには左から右、上から下にインデックスが付けられています。たとえば、上記の例vでは、最初の行の最後が位置3にあり^、中央の行が4にあります(1インデックスを使用)。 入力: スイッチボードを表す文字列(または文字列のリスト)。正規表現と一致することが保証されてい((-[v^])+-)(\n(-[v^])+-)*ます。 インデックスを表す番号の空のリストは、0または1(または必要に応じて任意の番号)になります。これらは、反転する必要があるスイッチです。 出力: 指定されたスイッチが反転した入力と同じ形状の配電盤。指定されていないスイッチは、初期状態を保持する必要があります。 ルール: 入力は常に正しくフォーマットされ、指定されたインデックスが範囲外になることはありません。 インデックスのリストはソートされ、重複はありません。 答えには、0、1、または任意のインデックスを使用してください。 出力が入力のように見える限り、末尾の空白は問題ありません。 これはコードゴルフなので、最短のコードが優先されます。 例: #Using 1-indexing input: #Empty Case [], -v-^-v- output: -v-^-v- input: #Single switch [1], -v- output: -^- input: #Skip a line [3,5], -^-v-v- -v- -^-^- output: -^-v-^- -v- -v-^- input: …

24
Gimbapカッターを作る
ジンバップ(김밥)は韓国料理で、やや巻き寿司のように見えます。 韓国の顔文字はGimbapを表しています: @)))))))))) あなたの探求は、ASCII Gimbapカッターを作ることです。 ルール 入力はとのみ@で作成された文字列)です。 出力は、すべての有効なGimbapをでカットし)、 @それらの間に追加します。例えばそう@))に@) @)。 有効なGimbapはで始まり@、その後に任意の量が続き)ます。 有効なGimbapがない場合、出力は空白です。 入出力 Input | Output @))))) | @) @) @) @) @) @))))))) | @) @) @) @) @) @) @) @))@))) | @) @) @) @) @) @) | @) )) | @ | @@)@@@))) | @) @) …

3
ヌーの道
反時計回りの正方形のスパイラルに番号が付けられた無限のチェス盤上の正方形で始まるヌーの位置を与えるプログラムまたは関数をゴルフし彼女はまだ訪れていないことを知ることができます。n番目n番目n^{\text{th}} 1111 インスピレーション:閉じ込められた騎士とOEIS A316667。 編集:このシーケンスはA323763としてOEISにあります。 コードは、場所、最初の場所を生成するか、入力なしでシーケンスを生成します。n番目n番目n^{\text{th}}nnn 代わりに(または)最大ジャンプ後に彼女の位置を自由に指定できますが、そうする場合は、回答にこれを明記し、入力が得られることを確認してください(または適切な場合)。nnnn = 0n=0n=01[1] これはcode-golfであるため、目的は、選択した言語で可能な限り少ないバイトで作業コードを生成することです。 注:ヌーは彼女の閉じ込められます(騎士が場所、正方形で、ラクダが彼の、正方形)。正方形場所。コードの振る舞いは、これよりも大きい未定義になる場合があります。(これを見つけたC ++コードの Deadcodeに感謝します!)2016年番目2016年番目2016^{\text{th}}2084208420843723rd3723rd3723^{\text{rd}}70817081708112899744968番目12899744968番目12899744968^{\text{th}}128518502581285185025812851850258nnn 詳細 ボードは次のようになり、無期限に継続します。 101 100 99 98 97 96 95 94 93 92 91 102 65 64 63 62 61 60 59 58 57 90 103 66 37 36 35 34 33 32 31 56 89 104 67 …

23
最も近い3桁の16進数の色を見つける
CSSでは、色は「16進トリプレット」(各バイトが色の赤、緑、または青の成分を表す3バイト(6桁)の16進数)で指定できます。たとえば、#FF0000は完全に赤で、と同等rgb(255, 0, 0)です。 色は、3桁の16進数を使用する簡略表記で表すこともできます。速記は、各桁を複製することにより6桁の形式に拡張されます。たとえば、に#ABCなり#AABBCCます。 16進数の短縮形では桁数が少ないため、表現できる色が少なくなります。 チャレンジ 6桁の16進数カラーコードを受け取り、最も近い3桁のカラーコードを出力するプログラムまたは関数を作成します。 以下に例を示します。 入力16進コード:#28a086 赤成分 0x28 = 40(10進数) 0x22 = 34 0x33 = 51 0x22は近いため、短縮されたカラーコードの最初の桁は2です。 グリーン成分 0xa0 = 160 0x99 = 153 0xaa = 170 0x99は近いため、2桁目は9です。 青成分 0x86 = 134 0x77 = 119 0x88 = 136 0x88は近いため、3桁目は8です。 短縮カラーコードは#298(#229988に展開されます) プログラムまたは関数は、先頭に6桁の16進数のカラーコードを入力として受け入れ、先頭に#3桁のカラーコードを追加して出力する必要があります#。 例 #FF0000→#F00 #00FF00→#0F0 #D913C4→#D1C #C0DD39→#BD3 #28A086→#298 …

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