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

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

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 …

9
増分ゲーム時間形式
増分ゲーム時間形式 ゴール 増分ゲームには、タスクが完了するまでの日、時間、分、秒を表すカウントダウンタイマーが含まれていることがよくあります。使用可能なスペースに応じて、次のようにフォーマットできます。 2d 13h 23h 59m 48s 14m 3h 0m 0s このゴルフの目的は、このフォーマットを実行する関数またはプログラムを作成することです。 インプット 合計秒数。 出力するセグメントの最大数。 出力 セグメントは次のとおりです。 0週間 0日 0時間 0分 0秒 各セグメントは単一のスペースで区切られます。 表示されるセグメントは連続している必要があります。たとえば、ゼロ分があっても、分を表示せずに時間と秒を表示しません。 1桁の値には先行ゼロはありませんが、ゼロの値はとして表示する必要があります0。 値は切り捨てられます。 表示される最初のセグメントは、最初のゼロ以外の値です。 テストケース seconds segments output 0 1 0s 123 1 2m 123 2 2m 3s 123 3 2m 3s 82815 3 23h 0m …
18 code-golf  date 

2
レーベンシュタイン距離の各ステップ
この課題では、2つの改行で区切られた文字列s1(最初の行)とs2(2番目の行)を入力(STDINまたは最も近い)として受け取るプログラムを作成します。s1の長さは常に30より小さく、s2の長さより大きいと仮定できます。プログラムは、s1からs2までのレーベンシュタイン距離の各ステップを出力します。 レーベンシュタイン距離の各ステップの意味を明確にするために、プログラムはn個のストリングを出力します。ここで、nはs1とs2の間のレーベンシュタイン距離であり、2つの隣接するストリング間のレーベンシュタイン距離は常に1です。順序は関係ありません。出力は改行で区切る必要があり、s1は含めず、中間とs2のみを含める必要があります。このプログラムは、最新のコンピューターで1分以内に実行されるはずです。 例: 入力: Programming Codegolf 出力: rogramming Cogramming Coramming Coamming Codmming Codeming Codeging Codegong Codegolg Codegolf 入力: Questions Answers 出力: uestions Aestions Anstions Ansions Answons Answens Answers 入力: Offline Online 出力: Ofline Online 入力: Saturday Sunday 出力: Sturday Surday Sunday 以下は、距離とステップを出力するPythonスクリプトへのリンクです。 追加のルール: インターネットを使用しない 標準的な抜け穴が適用されます これはコードゴルフですので、コードは短くしてください。最短のコードが勝ちます!
18 code-golf  string 

6
コードのナゲット
コードのナゲット それはだそれは仮定の状況金曜日の夜、あなたの好きな趣味に参加するために通常のゴルフ仲間の上に招待した:コードゴルフ。ただし、これは非常に頭脳流出の作業であるため、コードから可能な限りゴルフをできるように、グループの脳の食べ物を手に入れる必要があります。 今、みんなのお気に入りのスナックはチキン・ナゲットですが、問題があります:みんなのニーズを満たす単一のパックはありません。だから、あなたはすでにゴルフのムードにいるので、すべてのナゲットのニーズを満たすために購入しなければならないパックを正確に把握するプログラムを作成することにします。 チキンナゲットパックのサイズはいたるところにあり、世界のどこに住んでいるかによって標準サイズも変わります。ただし、最も近い[ナゲットを提供する場所]では、次のサイズのナゲットパックを在庫しています。 4, 6, 9, 10, 20, 40 これで、ナゲットの特定の組み合わせを注文できないことに気付くかもしれません。たとえば、正確に11等しい組み合わせがないため、ナゲットは不可能です11。ただし、431パック20、1パック10、1パック9、1パック4、 20 + 10 + 9 + 4 = 43 (597) ここ597で、各項は二乗されて加算されます(ヒント:最適なソリューションではこれが最高値になります)。もちろん、他の作成方法もあり43ますが、ご存知のように、パックあたりのナゲットが多いほど、ナゲットごとに安くなります。したがって、コストを最小限に抑えるために、理想的には最小数のパックを最大数で購入する必要があります。 タスク 各人の要件に対応する整数のリストを取得するプログラムまたは関数を作成する必要があります。次に、チキンナゲットを購入するための最もコスト効率の高いα注文を計算して印刷する必要があります。最もコスト効率の高いα次数は、各数量の二乗和が最高になる組み合わせです。完全にナゲットを購入する方法は絶対に存在しない場合、あなたがしなければならない印刷などfalsy値を、、、またはあなたの言語で利用可能であるものは何でも。0FalseImpossible! I / Oの例: [2 7 12 4 15 3] => [20 10 9 4] 1, 1, 2, 1 => False 6 5 5 5 5 5 …
18 code-golf 

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