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

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

9
デジタルプロッターを構築する
ドナルド・M・モンロ著の 『Fortran 77』から適応した問題 前書き デジタルプロットマシンは、さまざまな形式の図面、グラフ、その他の画像結果を生成するために広く使用されています。このようなマシンのほとんどは、特定の方向にのみペンを移動できます。通常は、X方向とY方向、またはその両方の単一ステップとしてのみ移動できます。典型的な機械は、図1に示す8つの方向のいずれかに移動します。 図 1 チャレンジ 入力として0から7までの数値を取り、図1のエンドポイントの対応する座標を出力する三角関数なしのプログラムを作成します。 出力は、2つの要素(つまり(1, 0)または[0,-1])を持つ配列またはリストとしてください I / Oの表 0 (1, 0) 1 (1, 1) 2 (0, 1) 3 (-1, 1) 4 (-1, 0) 5 (-1, -1) 6 (0, -1) 7 (1, -1) 勝ち バイト単位の最短コードが勝つ
11 code-golf 

9
隠されたメッセージをデコードします!
前書き ある日、突然CIAのオフィスでリラックスしていましたが、突然コンピューターにアラートが表示されました。あなたのプログラムは何百ものコード化されたメッセージを傍受しました!簡単な検査でエンコードのルールが明らかになりますが、高速でデコードするにはプログラムが必要です。 チャレンジ コンマで区切られた文字列のリストが表示されます。各文字列には次のいずれかが含まれます。 コード化されたメッセージの一部 それがフォームにないならコード化されたメッセージの一部ですa=b。それがそうならメッセージの一部であることに注意してくださいab=c。この文字列をコード化されたメッセージに追加します。 エンコードスキームの一部 これはの形式になりa=bます。つまり、メッセージ内のすべてのaをbに置き換える必要があります。これはである可能性があることに注意してくださいa==。つまり、すべてのaを=に置き換える必要があります。 プログラムは、見つかったスキームを使用してデコードされたメッセージを出力する必要があります。 その他の情報:入力には、文字列を区切るためのカンマのみが含まれます。!1#など、他の文字を含めることができます。大文字は含まれません。デコード情報のビットは互いにデコードしません。メッセージのみがデコード情報の影響を受けます。各文字に対して1つの置換のみが与えられます。たとえば、no"io,"i=u","i=g" 例 入力:"ta","y=s","y","a=e","b=t","b"," ","j","j=1" 出力:test 1 入力:"z=p","zota","g=e","yugkb","y=t","u=o","k=s","li","fg","b==" 出力:potatoes=life 入力:"p","=","==n","ot","p=a","hiz","i=e","z=r" 出力:another これはcode-golfなので、バイト単位の最短回答が勝ちです!

3
ASCIIアートを簡単に作成してください!
このようなASCIIアートの文字列が与えられた場合(これはASCIIアートではありませんが、例で行います): abc d e fgh 次のように、1行に1文字ずつ画面上に表示されているかのように混ぜます。 a b c d e f g h 結果を印刷し、1秒、±0.5秒待ってから端末をクリアし、同じことを印刷しますが、1行ではなく2文字を表示します。基本的に、ディスプレイの幅は1から2に変わります。 ab c d e fg h の後のスペースに注意してくださいd。待機を繰り返し、入力されたテキストが出力されるまで、行ごとに追加の文字で印刷します。 文字を印刷しようとしたときに行の最後にヒットした場合、改行を挿入し、このルールに従って残りの行を印刷します。たとえば、入力: abcdefg ab ディスプレイの長さが4の場合、次を印刷します。 abcd efg ab 端末のサイズ変更の効果は、https://repl.it/GoeU/1で確認できます。プログラムを実行し、ターミナルをテキストエディターから分離するものを前後にドラッグします。 明確化: 行が入力されたとおりに表示されたら、その行をそのままにしておき、将来の行ごとの文字数を増やします。 abc ab 印刷する必要があります ab c ab 文の長さ= 2の場合 これはcode-golfなので、最小バイト数が勝ちです! ルール: 唯一の出力としてSTDOUTに出力する必要があります。 端末をクリアするか、150行程度の空の行を追加して端末をクリアするような錯覚を作成する必要があります。 標準的な方法で入力を取得できます。 デフォルトの抜け穴が適用されます。 テキストの末尾のものは大丈夫ではありません。 このアイデアは、ASCIIアートのある端末のサイズを変更するときに思いつきました。面白そうだったので、そこから挑戦することにしました。 テストケース: 各テストケースの各ステップを個別に表示するのは非常に手間がかかるため、各回答を確認して有効であることを確認します。答えがテストケースを処理できることを確認してください。 …

12
ピザ、ピザ、ディープディッシュピザ!
4月5日は、このチャレンジのテーマであるNational Deep DIsh Pizza Dayです。正の整数n(n0より大きい)を指定して、ASCIIの深皿ピザを作成します。示されている実際の深皿ピザ: ご覧のように、ピザの残りの部分を取り囲むように、地殻の層があります。 ピザの作り方 クラストは2つの層で構成されています。最初の層はn背が高く、n*3長くなります。長さは、最上行の文字数(スペースを含む)です。したがってn、1を指定すると、最初のレイヤーは次のようになります。 \_/ 1 character tall 3 characters long n2の場合: \ / 2 characters tall \__/ 6 characters long さて、地殻の2番目の層について。最初の内側のクラストの外側に移動するため、n+2背の高い(n*3)+6)キャラクターと長いキャラクターになります。与えられたものnは1つです: \ / 3 characters tall \ / \___/ 9 characters long (3 underscores, 3 slashes on either side) n2の場合: \ / 4 characters high …

16
面倒な7つのルール
ランダウン 乱数でランダムな長さの配列を生成するプログラムを作成し、配列を変更する一連のルールを適用します。ルールが適用された後、特に指定されない限り、配列の合計を出力します アレイのセットアップ 配列は5〜10のランダムな長さで、1〜20のランダムな整数でなければなりません。各配列の長さは発生する確率が等しく、各整数は要素ごとに選択される確率が等しい必要があります。 7つのルール ルールは順番に適用されたかのように動作する必要があり(たとえば、ルール1はルール2の前に動作します)、一度だけ適用されます。ルールの適用を証明するために、各ルールの適用後、ルールが適用される前に1回、配列をコンソールに出力する必要があります。 配列に7が含まれる場合、すべての要素から1を引きます ルール1が適用され、配列に0が含まれている場合、各要素に1を追加します 配列に13が含まれる場合、13から、およびそれに続くすべての要素を配列から除外します 配列に2が含まれる場合、すべての奇数を除外します 配列に20が含まれ、3番目の要素が偶数の場合、合計として20を返し、終了します。20が存在し、3番目の要素が奇数の場合、合計が終了するときに配列の長さの20倍を返します。 合計が50を超える場合、最後の要素が50以下になるまで繰り返し最後の要素を削除します 配列に16が含まれている場合、合計を10進数と16進数の両方で出力します。 例 これが初期配列です。 [20, 2, 5, 7, 14, 8] ルール1を適用できます: [19, 1, 4, 6, 13, 7] 次にルール3が適用されます。 [19, 1, 4, 6] 他のルールは必要ないため、プログラムは合計として30を返します。 ノート 私は経験豊富なコードゴルファーではありませんが、私の個人的な記録は369バイトの Python 3であると言えます。 ルールを実際に順番に適用する必要はありませんが、実際に適用するかのように動作する必要があります。

11
ナックルを数えることで、31日間が何ヶ月あるかを数えます
まだ自分のナックルを使用して、1か月が31日以内であるかどうかを判断する人はどれくらいいますか? あなたの仕事は、「ナックルを数える」ことで、1か月の範囲で何月が31日間完全になり、31日間未満になるのかを数えるプログラムを書くことです。 礼儀:amsi.org.au 入力 一対の月。最初の月は2番目の月の前に時系列に来る必要はなく、適切な形式で与えられます。例:201703 201902— 2017年3月から2019年2月。選択した入力形式を説明してください。入力には、1〜9999のすべての年を含めることができる必要があることに注意してください。指定された月の範囲には、開始月と終了月の両方が含まれます。 出力 2つの整数:31日の範囲内の月数と31日未満の範囲内の月数。 例:14 10— 14個のナックル、10個の溝(つまり、その月の範囲では、完全な31日を持つ14か月と、31日未満の10か月があることを意味します)。 たとえば、範囲内の2番目の月が最初の月よりも前に来る入力の場合、201612 201611ゼロのペアを出力する必要があります。 入力と出力の例 | Input | Output | |---------------|-------------| | 201703 201902 | 14 10 | | 201701 202008 | 26 18 | | 000101 999912 | 69993 49995 | | 201802 201803 | 1 1 | | …

4
リーダーボードゴルフ
この質問のリーダーボードをゴルフします(id = 111735)。プログラムは、StackExchange APIに対して1つの HTTPまたはHTTPSリクエストを発行し、それを解析して、一般的なリーダーボードスニペットに似た形式でユーザーに提示する必要があります。 サンプル出力(質問47338の代わりに): Leaderboard Author Language Size 1. FryAmTheEggman Pyth 19 2. Peter Taylor CJam 24 3. Martin Ender CJam 27 3. Peter Taylor GolfScript 27 5. randomra J 32 5. Optimizer CJam 32 7. Timtech TI-Basic 83/84 40 8. mollmerx k 41 9. Sp3000 ><> 45 …

18
配列のデルタの並べ替えと再適用
どのように見えるシンプルな 改変一貫性のある機能を使用してデルタのはほとんど常に他のいくつかの行うことができます短い 道、デニスを。したがって、これをより難しくすることを想像できる唯一の解決策は、ある種の一貫性のない機能を導入することです。 並べ替え。 あなたの仕事は、整数の配列を受け取り、それらのデルタをソートし、それを再コンパイルして新しい整数の配列を与えることです。 例えば。 入力用: 1 5 -3 2 9 次のデルタを取得します。 4 -8 5 7 次に、これらのデルタを並べ替え、降伏: -8 4 5 7 そして、それらを再適用します: 1 -7 -3 2 9 入出力 list / array / table / tuple / stack / etcが与えられます。任意の標準入力メソッドを介した入力としての符号付き整数の。 上記のデルタソート方法に従って、変更されたデータを受け入れ可能な形式でもう一度出力する必要があります。 0 < N < 10各数値が範囲内にあるN個の入力を受け取ります-1000 < X < 1000 …

13
3x3グリッドでネイバーインデックスを返す
さて、コードゴルフの2回目の試みで、これがどうなるか見てみましょう。 9つの値の配列があるとします。3x3グリッドの配列を想像してください。 その数が配列のインデックスとして持っているネイバーを返す必要があります。 0 | 1 | 2 3 | 4 | 5 6 | 7 | 8 ルール: それはコードゴルフですので、最短の回答が勝ちます。 ふり配列のインデックスは0または1から開始できます(ただし、すべての例で0を使用しています)。 値を返すだけで値が眉をひそめます(などif 3: return 046) 提出は単なるプロシージャ/関数/メソッドですが、例はいいでしょう 返される値は任意の順序にすることができます(入力が0の場合、13または31になる可能性があります) 必要に応じて、出力は数値のリストにすることができます。たとえば[0,4,6]、046 例からわかるように、対角線はカウントされません。 例: 入力: 0 出力: 13 入力: 3 出力: 046 入力: 4 出力: 1357
11 code-golf  grid 

6
ビットごとに指数を計算する
あなたの仕事は、次の手順でゆっくりとべき乗を計算することです。 2つの入力(この例では4と8)が与えられた場合、ビットごとに方程式を計算して累乗を計算する必要があります。すると4^8、ベース値が大きくなり(4)、指数が小さくなります(8)。より多くのべき乗と除算を使用してこれを行うことができます。指数を値Xで除算し(Xが指数の素因数である場合)、ベース値(B)をにすることができB^Xます。たとえば、次のことができます。 4^8 = (4 ^ 2)^(8 / 2) = 16^4 前の方程式でXを2に置き換えました。 次のようにして16^4、さらに「単純化」できますX = 2。 16^4 = (16 ^ 2)^(4 / 2) = 256^2 そして最後に数を計算します(もう一度X = 2): 256^2 = (256 ^ 2)^(2 / 2) = 65536^1 = 65536 したがって、 4^8 = 16^4 = 256^2 = 65536 これはあなたが与えるべき出力です。出力セパレーターは少し柔軟性があります。たとえば、数式をの代わりに改行またはスペースで区切ることができます=。または、それらをリストに入れることもできます(ただし^、区切り文字として数字や文字を使用しないでください)。 Martin Enderが指摘したように、これ^も柔軟性があります。たとえば、あなたが使用することができます[A, B]またはA**B代わりのA^B出力に。 …

5
Underloadでのゴルフのヒント
過少はによって作成されたスタックベースのセミ機能ターピットあるais523。私は最近、驚くほどエレガントな言語であるため、ゴルフをしようとしています。 アンダーロードでゴルフをするためのヒントはありますか?(回答ごとに1つのヒント)

9
ELO評価の予想スコアを計算する
あなたの仕事は、あるゲームで2人のプレイヤーがそれぞれのELOレーティングで勝つと予想される確率を計算することです。プレーヤーAにはELO R aがあり、プレーヤーBにはELO R bがあります プレーヤーA(E a)の予想スコアは1 /(1 + 10 (R b -R a)/ 400)です。プレイヤーB(E b)にも同様の方程式があります:1 /(1 + 10 (R a -R b)/ 400)。 よりコピー可能なバージョンが必要な場合: 1 / (1 + 10^((a-b) / 400)) E a + E bは1に等しくなければなりません。 したがって、プレーヤーのスコアは、ある試合に勝つと予想される10進数のチャンスです。 プログラム/関数は、プレイヤーAのELOとプレイヤーBのELOの2つの入力を受け取り、それぞれのチャンスを10進形式で印刷/返します。出力は合計で1つでなければならず、少なくとも小数点以下5桁まで正確である必要があります(0.00000)。小数点以下5桁を超えると、2つの出力の合計が1になる場合、数字が不正確になる可能性があります。 例: 1200 2100 -> 0.005591967 0.994408033 1 1 -> 0.5 0.5 …
11 code-golf  math 

8
SmileBASICでのゴルフのヒント
SmileBASICはもっと注目に値します。私はここで3人のユーザー(自分自身を含む)だけがSBの回答を提供しているのを見たことがありますが、それは驚くことではありませんが、残念です。BASICの方言であるだけでなく、有料の言語であることは確かに人々をオフにしますが、それを所有している人にとっては実際にかなり柔軟で、驚くほどゴルフに適しています。私はこのヒントスレッドを開いて、何が起こるか見てみました。 私は12Me21が頻繁に訪れることを期待しています:)
11 code-golf  tips  basic 

1
寿司を作って
お昼の時間です。お腹がすいて、寿司バーに来ました。あなたは寿司職人であり、寿司を作るために完全なプログラムまたは機能を作成する必要があります! クレジット:Wikipedia 免責事項:画像は説明のみを目的としており、必ずしも正確な製品を表すものではありません。 (トラックの運転手がストライキをするため)原料は限られていますが、私にとっては大丈夫です。 あなたが持っている成分(十分な量で)は次のとおりです。 (で作られた:海苔\/_¯|) 生まぐろ(T) 生Sal(S) 生アボカド(A) 寿司飯(o) これらの材料を使用すると、クライアントのために素敵な巻きを作ることができます。 最小注文は2巻で1ドルです。カップルで巻を作るだけで、支払いとして整数のみを受け入れます。一人であり、すべてのクライアントを満足させる必要があるため、1人あたり最大50ドルの注文を受け付けます(合計入力)。 たとえば、次のような適切な形式で、標準入力からクライアントの注文を取得する必要があります。[1,T],[2,S],[3,A]つまり、出力する必要があります。 ツナマキ2個 フォーサーモンマキス シックスアボカドマキス 1つのマキは次のように作成されます。 _____ /ooooo\ |ooTTToo| |\ooooo/| | ¯¯¯¯¯ | \_____/ そして、あなたは素晴らしい寿司職人であるため、常にあらゆる形のマキを、隙間のない正方形またはせいぜい長方形(できるだけ正方形に近い)に並べます。全体の形状も正方形または長方形で、上記の制限が与えられた正方形にできるだけ近く、隙間がありません。 入出力の例: Input: [1,T],[2,S],[3,A] Valid Output: _____ _____ _____ _____ /ooooo\ /ooooo\ /ooooo\ /ooooo\ |ooTTToo||ooTTToo||ooAAAoo||ooAAAoo| |\ooooo/||\ooooo/||\ooooo/||\ooooo/| | ¯¯¯¯¯ || ¯¯¯¯¯ || ¯¯¯¯¯ || ¯¯¯¯¯ | …

9
Fizz Buzz .. Crackle Pop!(一般化されたフィズバズ)
古くからあるFizz Buzzの問題を聞いたことはありますが、より多くの要因でそれを適用しようとするとどうなりますか?フィズバズクラックルポップ! チャレンジ 整数入力n、次に整数と文字列を含むn個のタプル、さらに別の整数(> 1)kを受け取る完全なプログラムを作成します。 n int1 str1 int2 str2 (...) intn strn k この行は、コマンドラインまたはSTDINから取得できます。 次に、1〜kのすべての整数について、int1、int2 ... intnのいずれかで割り切れる場合、対応するすべてのstrを入力順に出力し、その後に改行を続けます。そうでない場合は、整数を出力し、その後に改行を続けます。 たとえば、入力あり 3 2 Fizz 3 Buzz 5 Crackle 10 我々が得る 1 Fizz Buzz Fizz Crackle FizzBuzz 7 Fizz Buzz FizzCrackle ただし、入力あり(順序の変更に注意) 3 3 Buzz 2 Fizz 5 Crackle 10 我々が得る 1 Fizz …
11 code-golf 

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