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

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

19
ソーラーシステムを作成する
イントロ これは、最近コンピューターゲームを作成しているときに直面した実際の問題に基づいており、コードゴルフの素晴らしいラウンドに役立つと思いました。 星には、さまざまな量の熱を出す7つの主要なスペクトルクラスがあります。星の周りの惑星の地質は、星から受け取った熱の量に大きく影響されます。これは、スペクトルクラスと星からの距離の要因です。したがって、水星は実質的に融解しており、海王星は凍結しています。 私のゲームの銀河は手続き的に生成され、与えられた星の惑星タイプをランダムに選択することは、本当の「ifステートメント地獄」であることが判明しました! チャレンジ メソッドは、最小熱しきい値、最大熱しきい値、および乱数に基づいて、星のクラスに適した惑星タイプのリストから1つの惑星を選択する必要があります。簡単にするために、この課題では太陽のようにクラスGの星のみを使用します。 入力 heat惑星が星から受け取った熱量を表す4〜11の整数。 変数 この表は、に基づいて可能な惑星を示していますheat。あなたの方法は、最初に、ヒートミニとヒートマックスに基づいて利用可能な選択肢を狭めheat、2つまたはその間に収まる必要があります。例えば、10のヒートで通過したのは、砂漠、鉄、溶岩だけです。 Planet type Heat min Heat max Random Chance Gas Giant 4 9 15 Ice 4 6 10 Ice Giant 4 6 10 Gaia class 5 7 10 Dense Atmosphere 7 9 10 Desert 7 10 25 Iron 7 10 14 …
39 code-golf  random 

30
バンプはありますか?
正の整数のリストが与えられると、2つの近傍よりも大きいか、2つの近傍よりも小さい(「バンプ」)要素があるかどうかを判別します。明確にするために、バンプは隣人が1人しかいないため、リストの最初または最後の項目にはなりません。 プログラムは、バンプのないリストまたはバンプのあるリストにそれぞれ対応する2つの一貫した値のいずれかを出力する必要があります。値が何であるかは重要ではありません。自分で選択することができます。 これはコードゴルフであるため、回答はバイト単位で記録され、バイト数は少ない方が良いでしょう。 テストケース [] -> False [1] -> False [1,2] -> False [1,2,1] -> True [1,2,2] -> False [1,2,3] -> False [1,2,2,1] -> False [1,2,2,3] -> False [1,2,1,2] -> True [1,3,2] -> True [3,1,2] -> True [2,2,2] -> False

30
日曜日にのみ失敗した質問がありました
インスピレーションを受けた日曜日に1回だけ失敗した単体テストがあり、日曜日にエラーをスローするだけのプログラムまたは関数を作成し、他の日に正常に終了しました。 ルール: 入力を使用したり、通常のIOメソッドを使用して出力を表示したりすることは、STDERRまたは同等の言語に出力する場合を除きます。エラーの副産物である場合は、STDOUTに出力できます。 関数は、何も出力しない限り、非日曜日に値を返す場合があります プログラムは、一貫している限り、任意のタイムゾーンまたはローカルタイムゾーンの日曜日を使用できます。 エラーは、ゼロ除算エラーや初期化されていない変数の使用など、プログラムを異常終了させるものです。これは、エラーが発生した部分の後にコードが追加された場合、日曜日に実行されないことを意味します。 Pythonに相当するエラーを手動で作成するステートメントを使用することもできますraise。 これには、実行時エラー、構文エラー、コンパイル中のエラーが含まれます(幸運を祈ります!) エラーには、エラーがないことを区別する記号が必要です。 これはcode-golfなので、各言語で最も短いバイト数が勝ちです! 私は答えを確認するために日曜日まで待つ必要があります;)

3
このアルカサルを私のために解決してください
最近、アルカザールと呼ばれるゲームをプレイしています。ボードパズルゲームです。1つのドアから入り、すべての広場を通過し、別のドアから出ることが目標です。唯一のルールは次のとおりです。 一度入力し、一度離れます。 すべての正方形を通過します。 正方形を複数回通過しないでください 以下の画像は、アルカサルのボードとその右側の解決済みパズルの例を示しています(もちろんこれは簡単なパズルです)。 http://www.theincrediblecompany.com/try-alcazarでさらにパズルを見つけて、PlayStoreでゲームをダウンロードできます(PS:広告ではありません)。 私の問題は、1つのレベルを除いて、ゲームをほぼ終了したことです。私はそれを解決する方法を見つけることができません。したがって、私が提案する課題は、通常の1可解2アルカサルレベルを解決するアルゴリズムを作成することです。 もちろん、画像を読み取ってパズルを解くために画像インタープリターを作成するように誰かに求めているわけではありません(または私ですか?)。そこで、私はボックス描画文字を使用して上記のパズルを作り直しました。パズルとその解決策は次のようになります。 ╔═══════╗ ╔═══════╗ ║▒ ▒ ▒ ▒║ ║┌─┐ ┌─┐║ ║ ║ ║ ║│ │ │║│║ ╣▒ ▒ ▒║▒╠ ╣│ └─┘║└╠ ║ ══╦═╩═╣ ║│══╦═╩═╣ ║▒ ▒║▒ ▒║ ║└─┐║┌─┐║ ║ ║ ║ ==> ║ │║│ │║ ╣▒ ▒║▒ ▒║ ╣┐ │║│ │║ ║ ║ ║ …

15
Wordsで20に数えます!
次の長さ区切りの単語リストを使用します。 https://github.com/Magic Octopus Urn / wordListsByLength n 有効な例は、1から20までの長さの各リストから1ワードを出力します。 a an and hand hands handle handles abandons abandoned understand outstanding newfoundland understanding characteristic characteristics characterization characterizations characteristically characterologically chemotherapeutically または(配列): ['a', 'an', 'and', 'hand', 'hands', 'handle', 'handles', 'abandons', 'abandoned', 'understand', 'outstanding', 'newfoundland', 'understanding', 'characteristic', 'characteristics', 'characterization', 'characterizations', 'characteristically', 'characterologically', 'chemotherapeutically'] 代わりに(以外の印刷可能な非アルファベット区切り文字\n): …

30
私のメールをマークしてください!-ASCIIバーコード
4ステートバーコード 多くの郵便サービス(英国郵政、カナダ郵便、米国郵便など)は、4州のバーコードを使用して郵便に関する情報をエンコードします。ASCIIでレンダリングされると、次のようになります。 | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 4ステートバーコードはバーの列です。各バーは上向き、下向き、またはその両方に延長でき、4つの可能性があります。これは、各バーが基本的に4桁を表すことを意味します。 | | バー:| | | | | | 数字:0 1 2 3 …

30
最初に複製された要素を見つける
1からa.lengthの範囲の数値のみを含む配列aが与えられた場合、2番目のオカレンスが最小のインデックスを持つ最初の重複する数値を見つけます。つまり、重複する番号が複数ある場合、2番目のオカレンスのインデックスが他の番号の2番目のオカレンスよりも小さいインデックスを返します。そのような要素がない場合、プログラム/関数の動作が未定義になる可能性があります。 例: の場合a = [2, 3, 3, 1, 5, 2]、出力は firstDuplicate(a) = 3。 重複は2つあります。番号2と3です。2番目に出現する3は、2番目に出現する2よりもインデックスが小さいため、答えは3です。 の場合a = [2, 4, 3, 5, 1]、出力は firstDuplicate(a) = -1。 これはcode-golfであるため、バイト単位の最短回答が優先されます。 ボーナス:O(n)時間の複雑さとO(1)追加のスペースの複雑さでそれを解決できますか?

29
ピラミッド(または高速道路)を出力する
長さが偶数で空の文字列sがなく、その高さを表す正の整数nが与えられた場合、次の規則を使用してピラミッドを構成します。 ピラミッドには、空でない行がn行含まれている必要があります。末尾の改行が許可されます。各1 <= i <= nについて、i番目の行には、個々の文字がインプレースでi回繰り返される文字列が含まれている必要があります。abcdは3回繰り返され、aaabbbcccdddになります。各行の中央が垂直に揃うように、各行の中央にパディングスペースを配置する必要があります。各行の末尾にスペースを追加できます。また、最初の行の前に最大1つの改行を含めることができますが、他の空白を含めることはできません。 入力文字列が回文であるとは限りません。 テストケース s = 'o-o o-o', n = 10: o-o o-o oo--oo oo--oo ooo---ooo ooo---ooo oooo----oooo oooo----oooo ooooo-----ooooo ooooo-----ooooo oooooo------oooooo oooooo------oooooo ooooooo-------ooooooo ooooooo-------ooooooo oooooooo--------oooooooo oooooooo--------oooooooo ooooooooo---------ooooooooo ooooooooo---------ooooooooo oooooooooo----------oooooooooo oooooooooo----------oooooooooo

30
小冊子を印刷する
本を読むのは簡単ですが、本を印刷するのは少し難しいかもしれません。小冊子を印刷するとき、プリンタは左から右に読むために特定の方法でページを配置する必要があります。これを行うには、次のようなパターンを使用します n, 1, 2, n-1, n-2, 3, 4, n-3, n-4, 5, 6, n-5, n-6, 7, 8, n-7, n-8, 9, 10, n-9, n-10, 11, 12, n-11… テストケース 4ページの小冊子: 4, 1, 2, 3 8ページの小冊子: 8,1,2,7,6,3,4,5 12ページの小冊子: 12,1,2,11,10,3,4,9,8,5,6,7 16ページの小冊子: 16,1,2,15,14,3,4,13,12,5,6,11,10,7,8,9 20ページの小冊子: 20,1,2,19,18,3,4,17,16,5,6,15,14,7,8,13,12,9,10,11 仕事 あなたの仕事はn、4の倍数である整数が与えられると、本の印刷に使用できる数字の配列を表示することです。nページのです。 注意:スペース、コンマ、ハイフン、または括弧で区切られているかどうかにかかわらず、出力が正しい数値を生成する限り、ソリューションを取得するための任意の方法を使用できます。 これはコードゴルフの質問なので、回答はバイト単位でスコア付けされ、最も少ないバイトが勝ちます。

3
ツールアシストコードゴルフ
TASゴルフ コードゴルフツイストを備えたツールアシストスピードランのスタイルで、この課題の目標は、選択したプログラミング言語で元のスーパーマリオブラザーズゲームのワールド1-1をできるだけ少ないバイトで完了することです。以下で説明する形式のゲーム内コント​​ローラー入力のみを使用します。プログラムは、このチャレンジ専用に作成されたこの形式の行のリストに出力する必要があります。stdout up down left right start select A B 最初のフレームから開始して、各改行は特定のフレームのコントローラー1の入力を表します。フレームごとのボタンの順序は重要ではなく、任意の量の改行以外の空白で区切ることができます。ボタン名のすべてまたはすべて、または一部を行ごとに含めることができます。たとえば、Dパッドを3フレーム右に押してからAを押す単純なPythonプログラムは次のようになります。 for _ in range(3): print('right') print('A') そして、その出力(検証のためにエミュレータに入力します)は次のようになります。 right right right A ここでは、「成功」を、上記の世界1-1の終わりに旗に到達することと定義しています。この例のPython提出のスコアは、成功した場合(成功しなかった場合)、44バイト、またはPythonプログラムの元の長さになります。 現在の最速TASに基づいて作成した作業入力ファイルの例については、このGithub Gistを参照してください:https ://gist.github.com/anonymous/6f1a73cbff3cd46c9e1cf8d5c2ff58e1 このファイルはゲーム全体を完了することに注意してください。 サブフレーム入力を入力する方法はありません。また、プレーヤー2のコントローラーに入力を入力する方法はありませんが、レベルまたはゲームを完了するために必要な(または有用な)べきではありません。 使用されるSMBのバージョンは、元のUSA / Japan iNES ROM(md5sum 811b027eaf99c2def7b933c5208636de-USAバージョンは日本語バージョンとまったく同じであるため、どちらでも動作します。ROMは一般的にラベル付けされているSuper Mario Bros (JU) (PRG 0)か、類似しています)。 提出物をテストするには、プログラムを実行し、それらstdoutをinput.txtファイルにパイプして、mario.luaこのチャレンジ用に作成したこのLuaスクリプトを使用してFCEUXにロードします。 for line in io.lines('input.txt') do local t = {} for …
39 code-golf  game 

13
579085261はCRAZY、725582はGOLF、10757494は…?
あなたの仕事は、以下で説明する方法を使用して、103の滑らかな数値を英語の単語に翻訳することです。 どうやって? 入力数の素因数のリスト(繰り返しあり)を生成します。 リストを並べ替える: 2が素因数の1つでない場合は、リストを昇順で並べ替えます。 2が主要因の1つである場合、リストから2を削除し、残りの要因を降順に並べ替えます。 次の表を使用して、各要素を文字に変換します。 3 = S 13 = L 29 = X 43 = O 61 = Z 79 = H 101 = K 5 = P 17 = Q 31 = N 47 = R 67 = T 83 = V 103 = Y 7 …

1
マッカーシーのLISP
マッカーシーの1959 LISP 1959年初頭、ジョン・マッカーシーは、たった9つの原始関数を定義する画期的な論文を書きました。これらの関数は、まとめると、今日のすべてのLISPのような言語の基礎となります。論文はここからデジタル化して入手できます。 http://www-formal.stanford.edu/jmc/recursive.pdf 、機能である:あなたの仕事は完全に1960年論文に記載どおりにマッカーシーのLISPのためのパーサとインタプリタを実装することでQUOTE、ATOM、EQ、CAR、CDR、CONS、COND、LAMBDA、およびLABELすべての機能にする必要があります。答えの正しさを検討する際、このチャレンジテキストよりも論文が優先されますが、以下の9つの機能を要約してみました。言語はすべて大文字であり、エラーチェックは必要ないことに注意してください。すべての入力が有効であると仮定する必要があります。 タイプ McCarthyのLISPには、アトムと、リストまたはアトムである可能性のあるヘッドとして再帰的に定義されるリンクリスト、およびヘッドがアタッチされるリスト(テール)の2つのタイプしかありません。NILは、アトムとリストの両方であるという特別な特性を持っています。 論文によると、原子名は大文字、数字、スペース文字のみで構成されますが、連続するスペースの文字列は1つのスペースと見なされ、先頭と末尾のスペース文字はすべて削除されます。例同等の原子名(スペース文字とアンダースコアに置き換えます): ___ATOM__1__ = ATOM_1。同等でない原子名の例:A_TOM_1 != ATOM_1 リストは括弧で示されNIL、すべてのリストの最後に暗黙が示されます。リストの要素はコンマで区切られており、最新のLispのように空白ではありません。したがって、リスト(ATOM 1, (ATOM 2))はになります{[ATOM 1] -> {[ATOM 2] -> NIL} -> NIL}。 QUOTE: アトム(単一要素)またはリンクリストのいずれかである引数を1つ取ります。引数を正確に返します。 テストケース: (QUOTE, ATOM 1) -> ATOM 1 (QUOTE, (ATOM 1, ATOM 2)) -> (ATOM 1, ATOM 2) ATOM: アトム(単一要素)またはリンクリストのいずれかである引数を1つ取ります。T引数がアトムの場合(true)、または引数がアトムでない場合NIL(false)を返します。 テストケース: (ATOM, (QUOTE, ATOM …

14
モナリザを描きましょう
2014年に、demoscenerヤクブ「Ilmenit」Debskiがリリースさ 250バイト(1)のための手続きのグラフィックデモアタリXLが呼ばモナ。次の絵を描いています(2): タスクは、選択した言語を使用して、まったく同じ画像を生成することです。 (1)内訳:136バイトのデータ+ 114バイトのコード。 (2)元の画像は128x96です。上記のバージョンは256x192に拡大されました。いくつかのピクセルは元のピクセルとは異なりますが、これはこのチャレンジで説明した擬似コードでの予想される出力です。 どうやって? これはcode-golfです。任意の方法を使用する権限がありますが、以下で説明する元のアルゴリズムを使用することで、おそらく最良の結果が得られます。 NB:この段落はありません仕様ではなく、一般的な説明。アルゴリズムの詳細については、擬似コードとリファレンス実装を参照してください。 画像は64の擬似ランダムブラシストロークで構成され(このビデオを参照)、次の色(RRGGBB 16進形式)で循環します。 COLOR = [ 0xFFE289, 0xE99E45, 0xA55A00, 0x000000 ] 背景は最初は4番目の色(黒)で塗りつぶされています。各ストロークは、前のストロークよりも短くなっています。 擬似ランダムジェネレーターは、最初にに設定され0x7EC80000XOR された32ビット整数で線形フィードバックシフトレジスタ(LFSR)を使用してい0x04C11DB7ます。 各ストロークは、シードの最下位バイトを上書きする16ビット値で初期化されます。 BRUSH = [ 0x030A, 0x37BE, 0x2F9B, 0x072B, 0x0E3C, 0xF59B, 0x8A91, 0x1B0B, 0x0EBD, 0x9378, 0xB83E, 0xB05A, 0x70B5, 0x0280, 0xD0B1, 0x9CD2, 0x2093, 0x209C, 0x3D11, 0x26D6, 0xDF19, 0x97F5, 0x90A3, 0xA347, …

21
配列アライメントの追加
前書き 2つの空でない整数配列、たとえばA = [0 3 2 2 8 4]およびB = [7 8 7 2]を考えます。それらに対してアライメントの追加を実行するには、次のようにします。 合計長さlcm(length(A)、length(B))になるように各配列を十分に繰り返します。ここで、lcmは最小公倍数を表します。 A -> [0 3 2 2 8 4][0 3 2 2 8 4] B -> [7 8 7 2][7 8 7 2][7 8 7 2] 繰り返された配列で要素ごとの加算を実行し、いずれかがカットされているすべての位置で結果をカットします。 A -> [0 3 2 2 8 4][0 3 …

22
Natural Pi#0-ロック
ゴール 入力を受け取るプログラム/関数を作成し、整数のランダムなペアが比較的素数であるNかどうかを確認しN、を返しますsqrt(6 * N / #coprime)。 TL; DR これらの課題は、Piを概算するために自然と脳(およびおそらく再利用可能なリソース)のみを必要とするアルゴリズムのシミュレーションです。ゾンビの黙示録中に本当にPiが必要な場合、これらの方法は弾薬を無駄にしません!さらに8つの課題があります。推奨事項を作成するには、サンドボックスの投稿をチェックしてください。 シミュレーション 何をシミュレートしていますか?さて、2つのランダムな整数が比較的素数(すなわち、コプライムまたはgcd == 1)である確率は6/Pi/Piです。それらを数える; gcdが1 かどうかを確認します。繰り返す。これを数回繰り返した後、sqrt(6.0 * total / num_coprimes)に向かう傾向がありPiます。黙示録的な世界で平方根を計算するのが不安になっても心配しないでください!そのためのニュートン法があります。 これをどのようにシミュレートしますか? 入力してください N 次のN時間を実行します。 ランダムな正の整数を均一に生成しi、j と 1 <= i , j <= 10^6 もしgcd(i , j) == 1:result = 1 その他: result = 0 N結果の合計を取り、S 戻る sqrt(6 * N / S) …
39 code-golf  math  random  pi  approximation  popularity-contest  code-golf  sequence  number-theory  binary  coding-theory  code-golf  math  3d  code-golf  code-golf  math  number  code-golf  kolmogorov-complexity  code-golf  ascii-art  graphical-output  binary-tree  code-golf  ascii-art  code-golf  ascii-art  kolmogorov-complexity  code-golf  array-manipulation  hexadecimal  code-golf  math  number  set-theory  code-golf  math  arithmetic  number-theory  integer  code-golf  string  kolmogorov-complexity  code-golf  math  sequence  arithmetic  decision-problem  code-golf  code-golf  ascii-art  code-golf  array-manipulation  parsing  code-golf  string  ascii-art  kolmogorov-complexity  code-challenge  code-golf  sequence  code-golf  number  array-manipulation  sorting  code-golf  string  function  code-golf  arithmetic  code-golf  math  sequence  number-theory  primes  restricted-source  javascript  code-challenge  polyglot  rosetta-stone  code-golf  code-golf  regular-expression  code-golf  math  code-golf  math  primes  code-golf  ascii-art  kolmogorov-complexity  binary  code-golf  math  sequence  code-golf  sequence  subsequence  code-golf  string  code-golf  parsing  music  code-golf  grid  game  path-finding  board-game  code-golf  string  binary  code-golf  array-manipulation  balanced-string  code-golf  code-golf  algorithm  code-golf  string  number  arithmetic  array-manipulation  code-golf  array-manipulation  binary-tree  tree-traversal  code-golf  code-golf  tips  code-golf  string  base-conversion  code-golf  tips  s.i.l.o.s  code-golf  string  ascii-art  code-golf  code-challenge  code-golf  game 

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