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

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

5
海岸線を見つける
あなたの仕事は、ASCIIマップで提供される島の地図の海岸線の長さを見つけることです。入力マップは#、土地を示す1つ以上の文字と、水を示すスペースで構成されます。海岸線は、内陸の湖や島を含む、陸と水の間の端と見なされます。 ソリューションは、ファイル、文字列、または文字列の配列を読み込み、画面または標準出力に単一の整数を出力する完全なプログラムでなければなりません。各入力行には、先頭または末尾のスペース、およびゼロ個以上のハッシュ文字を含めることができます。マップの境界は、スペース(水)と見なされます。 行の長さは異なる場合があります。 例: Input: ## ## Output: 8 Input: ### ### ##### # ## Output: 26 Input: ##### # # # # # # # ##### Output: 36 これはコードゴルフであるため、最小のバイトカウントが優先されます。

10
組み込みまたはライブラリなしで英語を数字に変換する
この課題は他の課題と似ていますが、制限を設け(下の太字のテキストを参照)、それをかなり異なったものにしたり(楽しい)ようにしたりします。 チャレンジ n超えない正の整数の英語名を入力として受け取り、整数として100返す任意のプログラミング言語でプログラムまたは関数を記述しますn。 標準の抜け穴は禁止されており、この機能を既に実行している組み込み関数、外部ツール、またはライブラリを使用することはできません。 バイト単位の最短ソースコードが優先されます。 テスト ここにすべてのinput->output場合: one -> 1 two -> 2 three -> 3 four -> 4 five -> 5 six -> 6 seven -> 7 eight -> 8 nine -> 9 ten -> 10 eleven -> 11 twelve -> 12 thirteen -> 13 fourteen -> 14 fifteen …

9
インデックス可能なクイン
この課題の目標は、ソースコードのn番目の文字を出力するプログラムを作成することです。ここで、nはプログラムへの入力として与えられます。ほとんどのクインチャレンジと同様に、ソースコードをファイルとして読み取ったり、組み込みのクイン関数を使用したりすることはできません。 入力 整数0 <= n <len(program)。 出力 プログラムのn番目の文字(バイトではない)。 勝ち ほとんどのcodegolfの質問と同様に、チャレンジを解決するには、最小バイト数を使用してチャレンジに勝ちます。 ボーナス -5%プログラムが負のインデックスをPythonスタイルでサポートしている場合(たとえば、-1がプログラムの最後の文字になります)。以下のボーナスと併用する場合、範囲は負のインデックスをサポートする必要があります。 -20%プログラムが上記の要件に加えて、入力として範囲(任意の形式)をサポートする場合。 -25%プログラムが両方のボーナスを完了した場合。 リーダーボード これは、通常のリーダーボードと言語ごとの勝者の概要の両方を生成するスタックスニペットです。 回答が表示されるようにするには、次のマークダウンテンプレートを使用して、見出しから回答を開始してください。 # Language Name, N bytes N提出のサイズはどこですか。スコアを改善する場合、古いスコアを打つことで見出しに残すことができます。例えば: # Ruby, <s>104</s> <s>101</s> 96 bytes ヘッダーに複数の数字を含める場合(たとえば、スコアが2つのファイルの合計であるか、インタープリターフラグペナルティーを個別にリストする場合)、実際のスコアがヘッダーの最後の数字であることを確認します。 # Perl, 43 + 2 (-p flag) = 45 bytes 言語名をリンクにして、リーダーボードスニペットに表示することもできます。 # [><>](http://esolangs.org/wiki/Fish), 121 bytes コードスニペットを表示 var QUESTION_ID=70727,OVERRIDE_USER=32700;function answersUrl(e){return"https://api.stackexchange.com/2.2/questions/"+QUESTION_ID+"/answers?page="+e+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+ANSWER_FILTER}function commentUrl(e,s){return"https://api.stackexchange.com/2.2/answers/"+s.join(";")+"/comments?page="+e+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+COMMENT_FILTER}function …
14 code-golf  quine 

18
文字列の10進数の乗算
文字列と10進数の2つの入力がある場合、文字列にその数値を掛けて出力します。 キャッチは、数値が浮動小数点数または整数になる可能性があることです。 文字列floor(n)timeを出力してから、最初のfloor((n-floor(n))*len(string))文字を再度出力する必要があります。 その他の注意事項: 入力は常にフロートではなく、intである可能性があります。したがって、1.5、1、および1.0がすべて可能です。ただし、常にベース10になります。例外が必要な場合はコメントしてください。 文字列入力には、空白、引用符、その他の文字が含まれる場合があります。ただし、改行や制御文字はありません。 直接の文字列の繰り返しのためのビルトインはなく、Pythonのような文字列の乗算'a'*5も許可されています。ただし、文字列の追加は許可されています。 テストケース: 入力はコンマとスペースで区切ります。 test case, 1 -> test case case, 2.5 -> casecaseca (will add more later), 0.3333 -> (will(space) cats >= dogs, 0.5 -> cats > 最終ノート: 組み込みの文字列乗算または繰り返し関数を使用する多くの答えがあります。これは許可されていません。ただし、@ VTCの答えは有効です。これは、文字列を乗算せず、フロート入力のみを乗算するためです。したがって、最終的なルールは次のとおりです。文字列を直接乗算する場合、実行できません。
14 code-golf  string 

6
時計(カードゲーム)
時計はスキルを必要としないため、興味深いカードゲームです。それはシングルプレイヤーゲームであり、同じカード構成は常に勝ち負けにつながります。この課題では、特定のカード構成が勝つか負けるかを把握する必要があります。ここでゲームをプレイできます。 ゲームは次のように再生されます。 13枚のカードが裏向きに配られます。各杭には0〜12の番号が付けられています。 0番目のパイルを現在のパイルに設定します 現在のパイルの一番上のカードを表向きにします。 表向きのカードをそれぞれの山の一番下に移動します(4枚のカードが4番目の山の下に入ります)。カードは表向きのままです。この山は現在の山になります。 現在のパイルが完全に表向きの場合、ゲームオーバーです。それ以外の場合は、手順3に戻ります。 ヒント:ゲームは常に0番目のパイルで終了します すべてのカードが表向きになるとゲームに勝ち、裏向きのカードが残っていると負けます。 入出力 各杭を含む2D配列。カードは0から12の数字で表されます(スーツは無関係であり、与えられません)。各パイルの一番上のカードは、各配列の最初の要素です。 入力は整形式であると想定できます。0から12までの52枚のカードが含まれており、各番号は正確に4回含まれています。 ゲームに勝つことができる場合は真実の値を返し、できない場合は偽りを返す必要があります。 テストケース 真実: [[11, 11, 7, 7], [8, 6, 5, 0], [2, 10, 9, 1], [12, 3, 0, 6], [8, 7, 4, 8], [3, 10, 5, 12], [11, 7, 1, 10], [3, 1, 6, 0], [2, 3, 0, …

4
シンプルなきれいなコメントツールを作成する
チャレンジ: 一部のascii-artは作成が苦痛ですが、特にコードが密集している場合は、コードのコメントを読みやすくします。課題は、コメントを矢印付きの単純なASCIIアートに変換する単純なツールを作成することです。変更するコメントは空のコメントで区切られます。 たとえば、Haskellのコメント構文を想定して、これを変換します。 -- -- Here's a thing -- Here's another thing -- The most important thing -- * * * -- f x=x+1*x*1*1*0 これに: -- /------------< Here's a thing -- | /-------< Here's another thing -- | | /-< The most important thing -- | | | -- v …

30
Javaを生成します
あなたの上司は、次のようなコードを書くことを望んでいます。 public static boolean isPowerOfTen(long input) { return input == 1L || input == 10L || input == 100L || input == 1000L || input == 10000L || input == 100000L || input == 1000000L || input == 10000000L || input == 100000000L || input == 1000000000L || input == …

4
妖精チェスの「跳躍」運動パターン
リーパはで動く変則チェスピースのカテゴリである「ジャンプ。」通常の騎士は(1,2)-リーパーです。つまり、各移動には、直交方向に1正方形、垂直方向に2正方形の距離を移動する必要があります。 .o.o. o...o ..N.. o...o .o.o. 多くの異なる跳躍者がいます。(1,3)-リーパーはロングナイト、またはキャメルと呼ばれます。その移動パターンは次のようになります。 ..o.o.. ....... o.....o ...L... o.....o ....... ..o.o.. (2,2)Alfilもあります... o...o ..... ..A.. ..... o...o ...さらに(0,1)ワジール。 .o. oWo .o. チャレンジ 数値のペアを入力として、対応する運動図を出力します。入力をSTDIN /コマンドライン経由で、または引数として提供し、出力をSTDOUTまたは戻り値で提供して、プログラムまたは関数を作成できます。これはcode-golfです。 入力 入力は、2つの整数と大文字のコンマ区切りリストになります。2つの整数は、範囲内0-7(両端を含む)で、減少しない順序になります。入力および出力のオプションの末尾の改行。 上記の4つの例の入力を次に示します。 1,2,N 1,3,L 2,2,A 0,1,W 出力 出力は、正方形の複数行の文字列になります。大文字は、作品の現在の場所を表すために中央に配置されます。移動場所は、4個または8個の小文字で表されますo。正方形内の他のすべてのスペースはピリオドで埋められます。 移動パターンがの場合、0,0大文字のみを出力します。 ヒントとして、2番目の整数(大きい方)の値がNの場合、正方形の辺の長さは常に2N + 1になります。osが常に広場の周囲になります。 追加のテストケース 1,1,F o.o .F. o.o 5,7,Q ..o.........o.. ............... o.............o ............... …

29
間隔のゼロ
あなたの仕事は、2つの非負の整数iとk(i≤ k)を受け取る関数またはプログラムを作成し、すべての整数をiからkし、ピースの選択のベースに(含む)の紙の。この整数、ゼロの数をstdoutなどに出力します。 -30%3番目の引数も受け入れる場合はb、数値を書き留めるための整数ベース。このボーナスを達成するには、少なくとも2つのベースを処理する必要があります。 任意のベースで入力を受け入れることができ、テストケース間でベースを変更できます。 あなたは、引数を受け入れることができi、k必要に応じてb好きなためです。 回答は、単項でない少なくとも1つのベースを処理する必要があります。 テストケース(ベース10): i k -> output 10 10 -> 1 0 27 -> 3 100 200 -> 22 0 500 -> 92 これはコードゴルフです。最小バイトが勝ちます。

13
海賊世界の流通ルール
海賊が特定のルールに従って金貨を合理的に分割する既存の「ゲーム」があります。ウィキペディアからの引用: 5人の合理的な海賊A、B、C、D、Eがいます。100人の金貨を見つけます。配布方法を決定する必要があります。 海賊には厳格な年功序列があります。AはBより優れ、BはCより優れ、DはDより優れ、EはEより優れています。 したがって、海賊世界の配布ルールは次のとおりです。最も上級の海賊はコインの配布を提案する必要があります。提案者を含む海賊は、この配布を受け入れるかどうかについて投票します。同数の投票の場合、提案者はキャスティング票を持ちます。配布が受け入れられると、コインは支払われ、ゲームは終了します。そうでない場合、提案者は海賊船から船外に投げ出されて死亡し、次に上級の海賊がシステムを再び開始するための新しい提案を行います。 海賊は、3つの要素に基づいて決定を下します。まず、各海賊は生き残りたいと思っています。第二に、生き残りを考えると、各海賊はそれぞれが受け取る金貨の数を最大にしたいと考えています。第三に、他のすべての結果が同じでなければ、各海賊は別の船外機を投げることを好むでしょう。海賊はお互いを信頼せず、各海賊に全数の金貨を提供する提案された配布計画を除き、海賊間の約束を立てたり、尊重したりしません。 チャレンジ 入力として整数n1 <= n <= 99をn取得します。これは海賊の数です。最初の海賊から始めて、コインの分布を出力します。 テストケース(最初の行が入力、2番目の出力): 1 100 2 100 0 3 99 0 1 5 98 0 1 0 1 これはcode-golfであるため、バイト単位の最短の解決策が優先されます。
14 code-golf 

2
ユークリッドベクトル
2つのベクトルのASCIIアートが与えられた場合、結果のベクトルの大きさと次数を見つけます。 入力 これは、STDIN経由で受信したり、ローカルファイルから読み取ったり、関数呼び出しで提供したりできます。2つのベクトル入力の例を次に示します。 ^------> | | | x これは、北4ユニットと東7ユニットの変更を表します。すべての入力の開始点はx(10進数120)で表されます。 すべてのベクトルは水平線または垂直線です。 各ベクトルには、次の4つのエンドポイント^v<>のいずれかがあります:、ダッシュ(-、10進数45)または垂直バー(|、10進数124)のいずれかで構成されます。 平面上の空のポイントはスペースで埋められます(、10進数の32)。 入力は単一の場合がありxます。 隣接するベクトルは常に互いに垂直です。 すべてのベクトルは先端から末尾です。 出力 これは、結果のポイントの変位(開始ポイントからの距離)と、開始ポイントに対する相対的な移動の程度になります。 上記の入力の場合、出力は8.06単位と60.3度である必要があります。それぞれに正確に3つの有効数字が必要です。有効数字3桁の数字の例を次に示します。 1.00 60.1 453 7.08 4.50 349 すべての単位の測定値はになります<= 999。 これらの番号は、以下の形式で出力されるはずです。これは上記の数字を使用しています。 8.06 units @ 60.3 degrees この後に、単一の末尾スペースまたは改行が続く場合があります。 入力がx変位なしで変位角度がない単一の場合、出力は空行(単一の改行文字)または次の形式である必要があります。 0 units @ - degrees あなたがボーナスの資格を得ようとしているなら、方向-も同様であるはずです。 ボーナス2、3、または両方が完了した場合、出力は以下のモデルに従い、上記と同じ制限に従う必要があります。 8.06 units @ 60.3 degrees NE 度は、標準平面に従って測定する必要があります。 90 135 …

1
フォローセットを見つける
以下の課題では、正式なパーサー理論に精通している必要があります。用語の意味が分からないために質問の内容がわからない場合は、多くの大学のコースで文脈自由文法とファースト/フォローセットが取り上げられています。 このスタンフォードコース、特に配布資料08と09(7ページから)をお勧めします。私はこれらの配布物からチートシートも抽出しました- この挑戦を試みる誰でもそれを読むことをお勧めします。 文脈自由文法がすべての非終端記号の次のセットを見つけるプログラムまたは関数を記述します。非形式的には、非端末の次のセットは端末のセットであり、$(入力の終わりを意味します)有効な文でその端末の後に見つけることができます。 入力は、単一の印刷可能なASCII文字列または印刷可能なASCII行の配列として与えられます。$(リテラル出力、またはセット内の文字列などとして)入力の終わりを示すために使用して、任意の妥当な形式でセットを出力できます。以下の形式に従って、入力が常に有効であると想定できます。 文脈自由文法は非常に単純化された方法で与えられます。すべての行には単一の生産が含まれます。すべての制作物は、スペースで区切られたシンボルのリストです。ターミナルは、アポストロフィで囲まれた文字列です(例:)'**'。簡単にするために、端末にスペースが含まれていないと想定することもできますが、プログラムで許可されていると便利です。非終端記号は、スペースまたはを含まない任意の文字列です$。空の生成(通常はεで示されます)は、左側の非終端のみを含む単純な行です。最初の行は、開始記号を定義するプロダクションです。 例として、次の文法: S→aSa | bSb | ε として与えられます: S 'a' S 'a' S 'b' S 'b' S 入力/出力の例: In: S 'a' S 'a' S 'b' S 'b' S Out: S {'a', 'b', $} In: S A B C A 'a' A C 'b' A B …

6
手紙、動く!Pt。2
最初の手紙、Get Moving!非常に人気がありましたが、参加は限られていました。これは簡単に解決できますが、うまくいけばゴルフにいくつかのトリックが含まれます。 小文字のみの文字列が与えられます。各文字について、アルファベットmの位置で、最後からm番目の文字になるように移動します。mの値が文字列の長さよりも長い場合は、それを一番前に移動します。完全に変換された文字列のみを出力します。 例: 「キリン」 「g」はアルファベットの7番目の文字です。すでに後ろから7番目の文字なので、そのままにしておきます。 「i」は9番目の文字です。9は単語の長さよりも大きいため、先頭に移動し、文字列は igraffe 「r」は18番目の文字で、「i」のように先頭に移動します。 rigaffe 「a」は最初の文字で、最後まで行きます: rigffea 「f」は6番目の文字で、後ろから6番目になります。 rfigfea 次の 'f'は6番目の文字でもあるため、後ろから6番目に移動します。 rffigea 「e」は5番目の文字で、後ろから5番目に移動します。 rfefiga "花" 'f'(6)=> flower 'l'(12)=> lfower 'o'(15)=> olfwer 'w'(23)=> wolfer 'e'(5)=> weolfr 'r'(18)=> rweolf "パイナップル" 'p'(16)=> pineapple 'i'(9)=> ipneapple 'n'(14)=> nipeapple 'e'(5)=> nipaepple 'a'(1)=> nipepplea 'p'(16)=> pnipeplea 'p'(16)=> ppnipelea 'l'(12)=> lppnipeea 'e'(5)=> …

5
二項関数のプロパティ
抽象代数の多くの重要なトピックには、セットに作用するバイナリ関数が含まれます。このようなトピックの調査では、このような関数の多くのプロパティが定義されています。 課題は、特定のドメイン上の特定のバイナリ関数がこれらのプロパティのうち5つを所有しているかどうかを判断することです。 プロパティ 閉鎖 可能なすべての出力がドメイン内にある場合、バイナリ関数は閉じられます。 連想性 関数が一連の入力に適用される順序が結果に影響を与えない場合、バイナリ関数は結合的です。つまり、常にに等しい$場合、結合的(a $ b) $ cですa $ (b $ c)。値(a $ b)は入力として使用されるため、連想関数を閉じる必要があることに注意してください。 可換性 入力の順序を入れ替えても結果が変わらない場合、バイナリ関数は可換です。言い換えれば、a $ b常に等しい場合b $ a。 身元 eドメインa $ e = a = e $ aにすべての要素が存在するような要素がドメインに存在する場合、バイナリ関数にはアイデンティティ要素がありaます。 べき等 バイナリ関数は、2つの同一の入力に適用してその数を出力として与えた場合、べき等です。言い換えれば、ドメイン内のa $ a = aすべての場合a。 入力 行列形式の関数が与えられます。関数の領域は数値0 ... n-1になります。ここnで、は行列の辺の長さです。 値(a $ b)は、行列でath行のbth要素としてエンコードされます。入力行列である場合Q、次にa $ b=Q[a][b] たとえば**、ドメインのべき乗関数(Pythonの場合)[0, 1, …

8
D&Dスキルの課題
でダンジョンズ&ドラゴンズ、ほとんどすべては、ダイスを転がすことによって決定されます。通常、ロールが指定された値以上の場合、やりたいことを何でも試みて成功し、そうでなければ失敗します。最も一般的には、20面ダイス(別名d20)を使用してロールします。 また、スキルチャレンジシステムが使用される場合もあります。これは上記の単純なシステムに似ていますが、成功は、プレイヤーが特定の回数失敗する前に個々のロールを特定の回数成功させるかどうかによって決定されます。たとえば、プレイヤーは、限られた数のロックピックでドアの複数のロックを選択しようとしている可能性があります。個々の成功したロールは、ロックの1つを正常に選択することを表し、個々の失敗したロールは、ロックピックを破ることを表します。全体的な成功とは、すべてのロックを解除する前にすべてのロックを正常に選択することを意味します。 さらに、特定のロールはクリティカルロールになる可能性があります。d20では、1を振るのは重大な失敗であり、チャレンジ全体がすぐに失敗します(上記の例では、プレイヤーが誤ってガードに警告する場合があります)。20を振るのは重大な成功であり、チャレンジ全体をすぐに成功させることになります(上記の例では、プレイヤーはロックへのキーのセットを見つけ、それらを選択する必要がなくなります)。クリティカルロールの場合、以前の成功と失敗の数に関係なく、課題はすぐに終わり、結果が決定されます。 このチャレンジでは、難易度、必要な成功の数、チャレンジが失敗する失敗の数が与えられます。チャレンジを試みるプレーヤーをシミュレートし、結果を出力する必要があります。 入力 個々のロールで成功するために満たす必要のある値、チャレンジで成功するために必要な成功の数、チャレンジが失敗する失敗の数を表す3つの整数。使用する順序を指定する限り、入力の順序と形式は重要ではありません。難易度は1〜20で、成功と失敗の数は両方とも1〜100です。 出力 d20の各ロールの結果(整数、順番)、およびチャレンジの全体的な結果(真実/偽の値)。個々の結果が順序どおりである限り、全体の結果は個々のロールのすべての前または後になります(たとえば、ロールの途中で全体の結果を出力することはできません)。使用する出力形式を指定し、一貫して使用します。 例(括弧内の値は説明のためのものであり、含める必要はありません): 入力: 12 5 3 (difficulty successes failures) 出力: 15 (success, 1-0) 10 (failure, 1-1) 5 (failure, 1-2) 16 (success, 2-2) 12 (success, 3-2) 15 (success, 4-2) 19 (success, 5-2) True (overall success) 入力: 15 2 3 (difficulty failures successes) 出力: 0 …
14 code-golf  game  random 

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