プログラミングパズルとコードゴルフ

プログラミング愛好家やコードゴルファーのためのQ&A

15
証券取引所KoTH
株式市場はすべて知識のスピードにかかっています。以前の課題とは異なり、現在の株価はランダムではありません。ゲームをプレイする人によって決定されます。 低価格の株を他の誰よりも早く特定できるなら、あなたは自分でお金を稼ぐプログラムを書いた。 価格は人々が株を取引している量を指し、値はゲームの終了時に株が価値がある量を指します。 各プレイヤーは、各株の1000、および0の相対的な自己資本で始まります。 各株式には秘密の価値があり、ゲーム終了時のスコアは(stockValue for each ownedStock) + netWorthです。純資産はマイナスになる可能性があります。Nプレーヤーゲームでは、N株があります。 手順: ゲームは次の手順に従います。 単一の株式の秘密の価値が与えられます。 XのY株を$ Zで販売することを申し出ます すべてのプレーヤーにオファーが与えられ、それぞれが受け入れるものを選択できます すべてのプレーヤーは、受け入れられたオファーについて通知されます 手順2に戻る 各ステップの詳細を以下に示します。 void secretValue(int stockType, int value): あなたが学ぶ価値は、他のプレイヤーには明らかにされません。 値が間にある0と1000 低い値は高い値よりも発生しやすい(2乗均一分布) Offer makeOffer(List<Stock> currentStock) 戻っnullて申し出を行うことはできません。 Offer acceptOffer(List<Offer> offers) あなたnullはそれらのどれも受け入れずに戻ることができます 利用可能なオファーがない場合、これは呼び出されません 受け入れた場合、純資産は$ Z(マイナスになる可能性があります)低下し、XのY株を受け取ります。売り手とは逆のことが起こります。 オファーを受け入れると、交換はすぐに行われ、オファーは削除され、追加のプレーヤーは受け入れられなくなります。 void acceptedOffers(List<Offer> offers) 受け入れられたオファーも含まれます 静的変数またはファイルへの書き込みは許可されていません。(ゲームからゲームへの永続的なデータはありません)深刻でない競合者は許可されます。 インターフェース: public final class Stock { …

30
シャンペルノーンのゼロはどこにありますか?
順番に連結されたすべての非負の10進整数の無限ストリングを考えます(チャンペルノーンの定数に似ています): 0123456789101112131415161718192021222324252627282930...979899100101102103... この無限の文字列にインデックスを付ける(0から始まる)非負の整数を取り込むプログラムまたは関数を作成します。出力truthyの桁がインデックス付け場合、値は0であり、そうでなければ出力falsy値桁が1-9である場合。 バイト単位の最短コードが優先されます。 最初の25の真実を生成する入力は次のとおりです。 0 11 31 51 71 91 111 131 151 171 191 192 194 197 200 203 206 209 212 215 218 222 252 282 312 プログラムのメモリ効率が良い場合は称賛に値しますが、これは要件ではありません。

16
素因数分解による数の約数の並べ替え
2以上の整数の入力が与えられると、その素因数分解の指数で昇順でソートされた除数のリストを出力します。 例として、2 3 3 2の整数72を使用します。除数があります 1 3^0 · 2^0 2 3^0 · 2^1 3 3^1 · 2^0 4 3^0 · 2^2 6 3^1 · 2^1 8 3^0 · 2^3 9 3^2 · 2^0 12 3^1 · 2^2 18 3^2 · 2^1 24 3^1 · 2^3 36 3^2 · 2^2 72 …

1
スタック交換
問題 あなたはNが持っていると言うスタック Sという名前の1 Sを通じてNそれぞれのS、K(Nへのk = 1)は数kのN個のコピーが含まれています。 たとえば、N = 3の場合、スタックは次のようになります。 1 2 3 <- top of stack 1 2 3 1 2 3 <- bottom of stack ======= 1 2 3 <- stack index ここでは、1、2、および3のインデックスが付けられた3つのスタックがあり、各スタックには独自のインデックスのN個のインスタンスが含まれています。 目標は、各スタックが上から下に順番に1からNまでの数字を含むように、Nスタックを再配置することです。 たとえば、N = 3の場合、目標はスタックを次のように再配置することです。 1 1 1 2 2 2 3 3 3 ======= 1 2 …

8
画像のすべての色に「1つ追加」
この画像を取得して、すべての色をすべての16進数に1つずつ追加します。例えば、#49de5fとなる#5aef60(と9にループa、およびfにループ0)。 これはまた、すべてのループがに戻るため、すべての白(#ffffff)が黒(#000000)になることを意味しますが、すべての黒は黒の明るい色合い()になります。f0#111111 これはコードゴルフの問題であるため、スコアリングは使用される最小バイト数に基づいています。 以下の画像をコードの入力画像として使用し、コードの出力画像を回答に入れます。 必要に応じて、この他の虹の画像を使用することもできます。

11
値をかなりランク付けする
仕事 整数の入力リスト所与X 1 ... X nは、ランクのリストを計算rは1つの ... R N(の順列{1 ... N} )ように、X 、R 1 ≤X 、R 2 ≤...≤X R nは。次に、各x iについて、そのランクをx iに等しいxのすべての値のランクの算術平均で置き換えます。(つまり、xの値が等しい場合は、ランクをすべてのランクに均等に再配分します。)ランクr ' 1 …r'の修正リストを出力します。n個。 (統計オタクの場合:観測のそのようなランキングは、Mann–Whitney U検定で使用されます(方法2、ステップ1)) 例 入力リスト[3、-6、3、3、14、3]を指定すると、ランクの最初のリストは[2、1、3、4、6、5 ]になり、リストを[-6、 3、3、3、3、14]。次に、入力リストの3つすべてのランクが(2 + 3 + 4 + 5)÷4 = 3.5に均等化されます。最終的な出力は[3.5、1、3.5、3.5、6、3.5]です。 テストケース [4, 1, 4] -> [2.5, 1.0, 2.5] [5, 14, 14, …

8
画像を平均化する
これが画像です: %%%%%%%%%%%%% % Hello, % % world! % %%%%%%%%%%%%% しかし、私たちの小さすぎる脳が計算するのは非常に複雑です。したがって、平均は次のようになります。 2 x 2セクションに分割します。セクションが完了する前に画像が終了する場合、そこにスペースがあると想像してください。 各セクションのASCII文字の値を平均します。 この平均を四捨五入し、ASCII文字に変換します。 最後に、セクション内のすべての文字を平均文字に置き換えます。 すべてのセクションでこれを繰り返します。 したがって、上の画像の平均は次のようになります。 $$>>II99###### $$>>II99###### $$##88KKGG#### $$##88KKGG#### あなたのタスク:入力としてASCIIイメージを取り、その平均を出力するプログラムを作成します。 注整数は、関数floor(x+0.5)または同様の関数によって丸められます。つまり、丸めは上半分になります。

30
入力で割り切れる最小のパリンドローム
正の整数を指定するとN、この数が回文(つまり、それ自身の逆数)であり、で割り切れるような最小の正の整数を出力しNます。 回文(つまり出力)は、回文になるために先行ゼロを必要としてはなりません。たとえば080、の有効な答えではありません16。 前の理由により、入力が10の倍数になることはありません。 実際には回答を出力するには長すぎても、プログラムには必要な時間がかかる場合があります。 入力と出力 を介して入力をSTDIN関数の引数などとして受け取ることができます。 出力をSTDOUTに印刷し、関数から返すか、類似のものを返すことができます。 入力と出力は10進数でなければなりません。 テストケース N Output 1 1 2 2 16 272 17 272 42 252 111 111 302 87278 1234 28382 得点 これはcode-golfであるため、バイト単位の最短回答が優先されます。

8
どれくらいの評判が必要ですか?
プログラミングパズルとコードゴルフはベータを卒業しています。すぐにカスタムサイトのデザインを取得し、それによって特権の評判の境界が上がります。多くのユーザーは、サイトの特権を失います。したがって、あなたの仕事は、特権を保持するためにどれだけの追加の評判が必要かを伝えるプログラムを書くことです。 仕事 あなたの仕事は、レピュテーションポイントの数を考慮して、サイト設計後にユーザーが現在の特権を保持するために必要な追加のレピュテーションの量を見つけるための最短コードを記述することです。 入出力 これらのルールに従う限り、入力を受け入れ、好きな方法で出力することができます。 入力 -1から250000+ までの整数。プログラムまたは関数は、これより大きな数値を受け入れることができるはずですが、この範囲の数値を受け入れる必要があります。 出力 -卒業後にユーザーが現在の特権を保持するために取得する必要がある評価ポイントの数を表す整数。 標準的な抜け穴はありません、お願いします。 アルゴリズムの例 i入力に変数を設定 variable rをvariableに設定しますi。 rリストにない間beta: 1から減算しrます。 セットnの位置までrの中でbeta。 のrアイテムnに設定しますgraduated。 変数oをの結果に設定しますr - i。 場合o < 0: 変数oをに設定します0。 出力変数o。 テーブル 変更される権限の表 | privilege name | beta rep | graduation rep | -+-----------------------------+----------+----------------+- | create tags | 150 | 1500 | | access …
23 code-golf  number 

9
ネストされたリストを並べ替える
ネストされたリストをソートするプログラムまたは関数を作成する必要があります。ネストされたリストをソートするためのルールは次のとおりです。 このリストを例としてみましょう: ((5, 2), 2, 7, (2, 1, (3, 4)), 9) このリストの各要素には「優先度」があります。要素は、数値またはサブリストとしてカウントされます。最初に、同じ深さで各要素の優先度を取得します。要素が単なる数字である場合、その優先順位は数字自体と同じです。要素がサブリストの場合、その優先順位はサブサブリストを含まず、その中のすべての数字の合計です。 したがって、深さ1のすべての要素の優先順位は次のとおりです。 ( 7 ) 2 7 ( 3 ) 9 ((5, 2), 2, 7, (2, 1, (3, 4)), 9) 各要素を優先度順に並べ替えます。同点がある場合は、元のリストと同じ順序を維持する必要があります。 2 ( 3 ) ( 7 ) 7 9 (2, (2, 1, (3, 4)), (5, 2), 7, 9) …

3
ランダムなヘキサグリフを描く
上記の画像はヘキサグリフと呼ばれます。ヘキサグリフは、DiffEqクラスでだらだらしている間に作成したクールなパターンです。作成方法は次のとおりです。 通常の六角形のような形をした次の一連のポイントを考えてみましょう。内側の六角形は最終的なグリフを含むものであり、外側の6つの点は星を形成し、線の描画を開始する場所です。 外側の6つのポイントから、ランダムにペアを選択します。効率を上げるには、選択した2つのポイントの間に少なくとも1つの他のポイントが必要です(そうでない場合、最終的な数値には影響しません)。次に、2つのポイントのそれぞれから、もう一方に向かって光線を投射します。この光線は前の行によってブロックされています。 次のいくつかの画像に示すように、9つのエッジがすべて形成されるまで、このプロセスを繰り返します。 ブロックされている光線の例を次に示します。光線セグメントの端はまだ表示されていますが、中央部分は最初に描いた2つのセグメントによって隠されています。 これらの2つの光線も「ブロック」されますが、同じ他のラインによってブロックされるため、目に見える違いは生じません。 9行すべてが描画されるまで早送りします。これらのスキップされた手順の詳細な説明が必要な場合は、説明できます。 最後に、星のポイントを削除します。見栄えを良くするために、太いドットも削除されます。 チャレンジ あなたが挑戦するのは、ランダムなヘキサグリフの視覚的表現を出力することです。これはコードゴルフであり、バイト数が最も少なくなります。 可能性のあるすべてのヘキサグリフは、何らかの正の確率で表示されるはずです。9つのエッジが描画される順序を変更することにより、異なるヘキサグリフが生成されます。 さらに、プログラムによって出力されるすべての画像は有効なヘキサグリフでなければなりません。特定のパターン(内側の六角形の完全な輪郭など)は、六角形のグリフとして表示されることはないため、プログラムでこれらを出力してはなりません。 出力は、グラフィカルイメージ(画面またはファイルに印刷)である必要があります。 六角形は規則的である必要がありますが、任意の方向に表示できます。 反射/回転は一意とは見なされません。(これにより、要件1が従いやすくなる場合があります)。

5
モールス計算機を書く
入力としてモールス符号の数式を受け取り、モールス符号で解を返すプログラムまたは関数を作成します。 有効な操作は、プラス:+とマイナス:(_アンダースコア)です。負でない整数入力のみを受け取り、結果が負でないと仮定できます。 式には少なくとも2つの用語が含まれ、最大10の用語が含まれます。隣接する2つの演算子、つまり.----+_-....がなく、括弧もありません。 数字は単一のスペースで区切られます。演算子は、各側に1つのスペースで数字と区切ることができます(例を参照)。 数字0〜9に対応するモールス信号は次のとおりです。 0 ----- 1 .---- 2 ..--- 3 ...-- 4 ....- 5 ..... 6 -.... 7 --... 8 ---.. 9 ----. 例: Input Output .----+.---- (1+1=2) Optional input: .---- + .---- ..--- -...._...-- (6-3=3) Optional input: -.... _ ...-- ...-- ..---_...--+..--- (2-3+2=1) 1 ..---+...--_....-+---.._..... (2+3-4+8-5=4) ....- …

10
高度に合成された数値
高度合成数は、任意の小さな正の整数で有するよりも約数を有する正の整数です。これは、OEISシーケンスA002182です。最初の20の用語は 1, 2, 4, 6, 12, 24, 36, 48, 60, 120, 180, 240, 360, 720, 840, 1260, 1680, 2520, 5040, 7560 たとえば、43の除数(つまり、1、2、4)があり、3には2の除数しかなく、2にも2の除数があり、1には1の除数があるため、シーケンス内にあります。 チャレンジ 正の整数入力を考えるとnは、出力のいずれかのn番目の高度合成数か、最初のn個お好みで高度合成数、(ただし、選択はすべての入力に対して同じでなければなりませんN)。 ルール プログラムまたは関数は、無限の時間とメモリが与えられ、データ型の制限を考慮せずに、任意の大きな入力に対して理論的に機能する必要があります。基本的に、これは有限数の値をハードコーディングしないことを意味します。 実際には、プログラムまたは関数は妥当な時間(たとえば1分未満)でnから20まで実行する必要があります。最大入力または出力は、言語の標準データ型によって制限される場合があります(ただし、アルゴリズムは理論的に機能するはずです)任意の大きな数の場合)。 単項を含む、合理的な入力および出力形式が許可されます。 コードゴルフ。少ないバイトが勝ちます。

3
画像をレインボー化する
この課題は、次のようなきれいな写真を作成するために画像の色相を徐々に変化させることです。 (オリジナル) チャレンジ 選択した任意の一般的な画像ファイル形式で、2つの非負の整数と画像を取り込むプログラムまたは関数を記述します(画像または生の画像データへのパスを取得できます)。 最初の整数をサイクル、2番目の整数をオフセットと呼びます。 また、浮動小数点ステップを360回のサイクルを画像の面積で割った値、またはとして定義しますstep = 360 * cycles / (image width * image height)。 画像内の各ピクセルPについて、一度に1行ずつ、左から右、上から下に(つまり、ピクセルが文字の場合は読み取り順に)、次の操作を行います。 増加色相のPをすることによってオフセット度(必要であれば0に360からの周りにループ)。 次に、オフセットをstepずつ増やします。 結果の画像を一般的な画像ファイル形式で保存、表示、または生で出力します。 この手順は、増分的製造、画像内の全画素の色相を増加させるサイクルを周囲に完全なループを色相虹によって最初に色相をオフセットすることにより開始、オフセット。 場合サイクルが 1であり、オフセット上記星空の画像のように、0であり、画素の上部と下部の行は実質的にない色相シフトを有しているが、間にフルカラーのサイクルがあります。 詳細 サイクルは任意の負でない整数にすることができますが、オフセットは0から359までであると仮定できます。 サイクルが0の場合、ステップも0でなければならないため、画像内のすべてのピクセルの色相は正確にオフセットされます。(この場合、オフセットが0の場合、画像はまったく変更されません。) サイクルとオフセットは、必要に応じて(つまりの1.0代わりに1)floatとして入力されると想定できます。(整数である必要はまったくないことを理解しています。これにより、チャレンジが簡単になります。) 「色相」は、HSL / HSVカラーモデルで一般的なRGBカラースペースバージョンを指します。 例 元の: サイクル= 1、オフセット= 0: サイクル= 1、オフセット= 180: 元の: サイクル= 2、オフセット= 60: 元の: (ArtOfCodeに感謝します。) サイクル= 1、オフセット= 120: 元の: (ドアノブに感謝します。) サイクル= …

20
桁の合計の平等
前書き 数字を見てみましょう180。この数字の桁の合計は次と等しいため、これは興味深い数字です。 1 + 8 + 0 = 9 そして、この数の二乗バージョン、または: 180² = 32400 > 3 + 2 + 4 + 0 + 0 = 9 これらは両方とも9です。元の数字と2乗数字の桁の合計は同じです。もちろん、これはOEIS:A058369でも見つかります。 仕事 非負の整数を指定すると、この条件でth番目の正の数をn出力します。n テストケース(ゼロインデックス付き) Input > Output 0 > 1 1 > 9 2 > 10 3 > 18 4 > 19 5 > 45 …

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