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

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

13
連続した部分行列を数える
チャットから移行しました 二つの非空非負整数行列所与A及びBは、回数答えAはとして生じる連続し、おそらくは重複、部分行列にBを。 例/ルール 0.部分行列はないかもしれません A: [[3,1], [1,4]] B: [[1,4], [3,1]] 回答: 0 1.部分行列は連続している必要があります A: [[1,4], [3,1]] B: [[3,1,4,0,5], [6,3,1,0,4], [5,6,3,0,1]] 回答:( 1太字で表示) 2.部分行列は重複する場合があります A: [[1,4], [3,1]] B: [[3,1,4,5], [6,3,1,4], [5,6,3,1]] 回答:( 2それぞれ太字と斜体でマーク) 3.(サブ)マトリックスのサイズは1行1列以上 A: [[3]] B: [[3,1,4,5], [6,3,1,4], [5,6,3,1]] 回答:( 3太字で表示) 4.行列はどのような形状でもかまいません A: [[3,1,3]] [[3,1,3,1,3,1,3,1,3]] 回答: 4(2つの太字、2つの斜体)

9
繰り返しまでの変換の数
整数のシーケンスを指定するか、より具体的には、0..N 変換の順列を次のように指定します。 output [x] = reverse(input [input [x]]) 繰り返す たとえば:[2,1,0]になり[0,1,2]、逆です[2,1,0]。[0,2,1]になり[0,1,2]、逆になり[2,1,0]ます。 例1 In: 0 1 2 S#1: 2 1 0 S#2: 2 1 0 Output: 1 例2 In: 2 1 0 S#1: 2 1 0 Output: 0 例3 In: 3 0 1 2 S#1: 1 0 3 2 S#2: 3 2 …
12 code-golf 

10
コルモゴロフの柔軟性。別名セール!在庫が残っている間、すべてのCodegolfが
これは、制限されたソース、kolmogorov-complexity、入力なしの固定出力を生成するためのコードゴルフチャレンジです。 ただし、出力形式には柔軟性があります。標準出力に出力、標準エラーに出力、文字のリストとして返される、バイトのリストとして返される、整数のリストとして返される場合があります。他に合理的だと思われるものがある場合は、コメント欄で質問してください! 以下は、シンプルで大きな文字のASCIIアートCODEGOLFです。 CCCC OOO DDDD EEEEE GGG OOO L FFFFF C O O D D E G O O L F C O O D D EEE G GG O O L FFF C O O D D E G G O O L F CCCC OOO DDDD EEEEE …

6
最も広い谷を決定する
山岳地帯のスライスを取得すると、これは次のような形状になります。 4 _ 3 _ _ __/ \ 2 / \__/ \ _/ \_ / 1 / \ / \_/ 0 \/ 12322223210012233343221112 ご覧のとおり、これを(ある程度まで)整数のシーケンスで表すことができます。 この課題のために、谷は、値が最初は減少し、ある時点から増加する連続したサブシーケンスとして定義します。より正式配列について(a私)ni = 1(a私)私=1n(a_i)_{i=1}^n谷なりインデックス1 ≤ S &lt; R &lt; T ≤ N1≤s&lt;r&lt;t≤n1 \leq s < r < t \leq nいる以下が成り立ちます。 谷の始点と終点は同じです:as= atas=ata_s = a_t 谷開始及び終了領域が低くなる後:as&gt; as + …

2
モレヒルから山を作る
モグラ塚と山のある一連の地形が与えられます: /\ / \ _/\__ / \ ___/ \_/ \_ ____/\___/ \___ あなたの仕事は、文字列内のすべてのモグラヒルを同じ列の中央にある同等の山に置き換えることです。残りの文字列は影響を受けない必要があります。これには、文字列の先頭に追加の行が必要になる場合があります。 モグラ塚は地形がダウンした場所の地形が上がる隣接する列で構成され、すぐ隣の列が続きます。最短辺は正確に1列幅でなければなりません。 これらはすべてモグラ塚です。 _____/\______ /\________ __/ ________/\ \__ \ / \ / \ / \ / \/\_/ これらはモグラ塚ではありません: /\ ___/ \______ ___ _____/ \___ ____ _______ \/ 山はモグラ塚似ているが、最も短い辺が高い代わりに、一方の4つのラインです。 例 /\ / \ -&gt; / \ ____/\____ _/ \_ …

21
最長増加部分文字列
正の整数のリストが与えられたら、増加している(厳密ではない)最長の連続したサブリストの長さを見つけるコードを記述します。これは、各要素が最後の要素以上であるような最長のサブリストです。 たとえば、入力が次の場合: [1,1,2,1,1,4,5,3,2,1,1][1,1,2,1,1,4,5,3,2,1,1][1,1,2,1,1,4,5,3,2,1,1] 最長増加サブリストは次のようになり[1,1,4,5][1,1,4,5][1,1,4,5]あなたは出力だろうので、444。 回答は、ソースをバイトのリストとして取得し、そのリストの最も長く増加しているサブリストの長さを見つけることによってスコアリングされます。より低いスコアが目標です。全体のバイト数が少ないプログラムを優先して、関係が壊れています。

6
私をここから連れ出してください
チャレンジ グリッドサイズ、障害物の位置、プレイヤーの位置、ターゲットの位置を考えると、プレイヤーがターゲットに到達し、同時に障害物を回避するためのパスを見つけることが必要です。 入力 N:グリッドサイズN x N P:プレイヤーの位置[playerposx, playerposy] T:ターゲットの位置[targetposx, targetposy] O:障害物の位置[[x1, y1], [x2, y2],...,[xn, yn]] 出力 パス:パスプレーヤーはターゲットに到達するために使用できます[[x1, y1], [x2, y2],...,[xn, yn]] ルール ポイント[0,0]はグリッドの左上隅にあります。 プレイヤーの位置は常にグリッドの左側になります。 ターゲットの位置は常にグリッドの右側になります。 グリッドには常に少なくとも1つの障害があります。 プレーヤーまたはターゲットの位置に障害物が重なっていないと想定できます。 必ずしも最小パスを見つける必要はありません。 プレイヤーは、左、右、上、下のみを斜めに移動することはできません。 任意の便利な方法で入力を取得できます。 プレイヤーがターゲットに到達するためのパスは常に存在すると仮定できます。 明らかに、入力ごとに複数の有効なパスが存在するため、1つを選択します。 N &gt; 2グリッドが少なくともであると仮定し3 x 3ます。 例 入力:9、[6, 0]、[3, 8]、[[0, 5], [2, 2], [6, 4], [8, 2], [8, 7]] …

14
ファイルのチェックにはnullバイトのみが含まれます
あなたの目標は、ファイルへのパスを表す文字列を入力として受け取り、そのファイルが空でなく、null以外のバイトが含まれていない場合、つまりすべてのビットが0である場合、真偽値を出力するプログラムまたは関数を記述することです-それ以外の場合はfalsey値。 それは非常に単純な問題であり、何かをハッキングできると思いますが、短くてエレガントな方法が必要だと思うので、そこから挑戦するというアイデアが得られました。 これはcode-golfなので、バイト単位の最短コードが優先されます。(私自身の好みは最速のソリューションになりますが、それは実装に依存しすぎます...) 関連する質問:ファイルにゼロを埋め込む 動機:これは、興味がある場合にのみ、問題の原因を伝えるためです。読む必要はありません。 「dd」またはその他の方法でコピーされたCDおよびDVDのISOイメージは、多くの場合、ヌルバイトのみを含む一連の無用なブロックで終了します。これらのブロックを削除する標準的な手法は既知で単純です(/unix/74827/を参照 )が、メディアが独自のサイズにあるため、null以外の有用なデータを削除する場合があります。したがって、削除されたブロックにヌルバイトのみが含まれていることを確認します。これらのブロックを削除することは、ISOイメージの正規化されたバージョンを定義するために重要です。

30
トゥルーカラーコード
ウィキペディアのトゥルーカラー(24ビット)は、関連する部分で次のように説明されています。 24ビットは、ほとんどの場合、R、G、Bの各8ビットを使用します。2018年現在、24ビットの色深度は、ほぼすべてのコンピューターと電話のディスプレイ、および大多数の画像ストレージ形式で使用されています。ピクセルごとに32ビットがあるほとんどすべての場合、24が色に使用され、残りの8がアルファチャネルまたは未使用であることを意味します。 2 24は16,777,216色のバリエーションを提供します。人間の目は最大1,000万色を識別でき[10]、ディスプレイの色域は人間の視覚の範囲よりも小さいため、これはその範囲を知覚できるより詳細にカバーする必要があることを意味します。... ... Macintoshシステムでは、24ビットカラーを「数百万色」と呼びます。「トゥルーカラー」という用語は、この記事で「ダイレクトカラー」と呼ぶものを意味するために使用される場合があります。[13]また、24以上のすべての色深度を指すためにもよく使用されます。 16,777,216色すべて 仕事 配列内のすべての16,777,216色のバリエーションを生成し、CSS rgb()関数の文字列として返すプログラムを作成する 5.1。RGB関数:rgb()およびrgba() このrgb()関数は、赤、緑、青のチャンネルを直接指定することにより、RGBカラーを定義します。構文は次のとおりです。 rgb() = rgb( &lt;percentage&gt;{3} [ / &lt;alpha-value&gt; ]? ) | rgb( &lt;number&gt;{3} [ / &lt;alpha-value&gt; ]? ) &lt;alpha-value&gt; = &lt;number&gt; | &lt;percentage&gt; 最初の3つの引数は、それぞれ色の赤、緑、青のチャンネルを指定します。0%は、sRGB色域内のそのカラーチャネルの最小値を100%表し、最大値を表します。A は最大値を表します。これらの値は、多くのグラフィックスエンジンがカラーチャネルを内部で1バイトとして格納し、0〜255の整数を保持できるという事実に基づいています。実装は、可能な限り、作成または計算されたチャネルの精度を尊重する必要があります。これが不可能な場合、チャネルは使用される最高精度で最も近い値に丸められ、2つの値が等しく近い場合は切り上げられます。&lt;number&gt;はと同等ですが、&lt;percentage&gt;範囲が異なります。0ここでも、カラーチャネルの最小値を表しますが、255 最後の引数、は&lt;alpha-value&gt;、色のアルファを指定します。aとして指定した場合&lt;number&gt;、値の有効な範囲は0 (完全に透明な色を1表す)から(完全に不透明な色を表す)です。として指定した場合0%、完全に透明な色を100%表し、完全に不透明な色を表します。省略した場合、デフォルトはになり100%ます。 これらの範囲外の値は無効ではありませんが、計算値の時点でここで定義された範囲に固定されます。 レガシーの理由により、rgb()すべての引数をコンマで区切る代替構文もサポートしています。 rgb() = rgb( &lt;percentage&gt;#{3} , &lt;alpha-value&gt;? ) | rgb( &lt;number&gt;#{3} …

17
が素数になるように、最小
バックグラウンド 次のシーケンスを検討してください(OEISのA051935): 用語始め222ます。 最小の整数検索より大きい2ような2 + nが素数であるが。nnn2222+n2+n2+n 2 + n + n 'が素数になるように、nより大きい最小の整数を見つけます。n′n′n'nnn2+n+n′2+n+n′2 + n + n' より正式な定義: an={2min{x∈N∣x&gt;an−1 and (x+∑n−1i=0ai) is prime}if n=0otherwisean={2if n=0min{x∈N∣x&gt;an−1 and (x+∑i=0n−1ai) is prime}otherwisea_n=\begin{cases}2 & \text{if }n=0 \\ \min\{x\in\Bbb{N}\mid x>a_{n-1} \text{ and }\left(x+\sum_{i=0}^{n-1}a_i\right) \text{ is prime}\} & \text{otherwise}\end{cases} シーケンスの最初のいくつかの用語は次のとおりです(テストケースとしてこれらを参照してください)。 2, 3, 6, 8, 10, 12, 18, …

6
ゴルフの溶解度チャート
カチオンとアニオンの名前を指定すると、「S」(可溶性)または「I」(不溶性)を出力します。使用するテーブルは、ウィキペディア(https://en.wikipedia.org/wiki/Solubility_chart)からのものです。今後の参照用に質問の最後にコピーされます。 入力:スペースで区切られたカチオンとそれに続くアニオン。カチオンは次のいずれかです。 Lithium Sodium Potassium Ammonium Beryllium Magnesium Calcium Strontium Barium Zinc Iron(II) Copper(II) Aluminium Iron(III) Lead(II) Silver 陰イオンは次のいずれかになります。 Fluoride Chloride Bromide Iodide Carbonate Chlorate Hydroxide Cyanide Cyanate Thiocyanate Nitrate Oxide Phosphate Sulfate Dichromate それぞれの最初の文字が大文字になります。 入力例: Sodium Chloride 出力:真の値、またはS、それが可溶性である場合、偽であるI場合、またはそうでない場合。ウィキペディアのページに何か他のものがリストされている場合(わずかに溶ける、水と反応するなど)、または入力が「カチオンアニオン」の形式ではない場合、プログラムは何かを行うことがあり(未定義の動作)、「S」、「私、または他の何か。 テーブル: ?,S,S,S,?,S,S,S,?,S,S,?,I,S,S S,S,S,S,S,S,S,S,S,S,S,?,S,S,S S,S,S,S,S,S,S,S,S,S,S,?,S,S,S S,S,S,S,S,S,S,S,?,S,S,?,S,S,S S,S,S,?,?,?,?,?,?,?,S,?,?,S,? ?,S,S,S,I,S,I,?,?,?,S,I,I,S,I I,S,S,S,I,S,?,S,?,?,S,?,I,?,I ?,S,S,S,I,S,S,?,?,?,S,?,?,I,? ?,S,S,S,I,S,S,S,?,?,S,?,?,I,? ?,S,S,S,I,S,I,I,?,?,S,I,I,S,I …

17
Codegolf Rainbow:白黒で描く
前書き: (出典:Wikipedia) 虹を見ると、上から下まで常に色が付いています: 赤; オレンジ; 黄; 緑; 青い; インジゴ; バイオレット これらの個々のリングを見ると、もちろん赤いリングは紫のリングよりも大きくなっています。 さらに、2つまたは3つの虹を同時に持つこともできます。 上記のすべてを組み合わせたものが、このチャレンジで使用されます。 チャレンジ: integerを指定するnと、(おそらく複数の) '虹'の多くのリングが出力されます。ここではvibgyor、色に文字を使用します。 以下のテストケースを参照してn=1、からどのように構築されるか、および間隔を(atでn=8)処理する方法を確認してください。ご覧のように、2つの虹の間に1つのスペースが追加されます(上部のスペースを含む)。次に、次の虹の輪を一列に追加します。 チャレンジルール: VIBGYOR小文字の代わりに大文字を使用できます 個々の虹の間にスペースが必要です 実際の虹(画面上のどこにでも)が正しい限り、任意の量の先頭および/または末尾のスペース/改行が許可されます 入力は常に正の整数(&gt;= 1)です。そのときの動作n=0は未定義であり、プログラム/関数は何でもできます(何も出力せず、虹をn=1出力します;ランダム出力;エラーで失敗します;など) 必要に応じて、文字列のリスト/配列、または文字の2D配列/リストを出力できます(TIOフッターに実際のプリティプリンティングコードを追加できます)。 出力が虹よりもマヤの寺院のように見えるという事実を無視します。xD 一般的なルール: これはcode-golfであるため、バイト単位の最短回答が優先されます。 コードゴルフ言語では、非コードゴルフ言語で回答を投稿することを妨げないでください。「任意の」プログラミング言語の可能な限り短い答えを考えてみてください。 回答には標準の規則が適用されるため、STDIN / STDOUT、適切なパラメーターと戻り値型、完全なプログラムを持つ関数/メソッドの使用が許可されます。あなたの電話。 デフォルトの抜け穴は禁止されています。 可能であれば、コードのテストへのリンクを追加してください。 また、回答の説明を追加することを強くお勧めします。 テストケース(最初n=1からn=10、そしてn=25): 1: vvv v v 2: iii ivvvi iv vi 3: bbb biiib bivvvib biv vib …

11
Codegolf Rainbow:整数配列の楽しみ
前書き: (出典:Wikipedia) 虹を見ると、上から下まで常に色が付いています: 赤; オレンジ; 黄; 緑; 青い; インジゴ; バイオレット これらの個々のリングを見ると、もちろん赤いリングは紫のリングよりも大きくなっています。 さらに、2つまたは3つの虹を同時に持つこともできます。 上記のすべてを組み合わせたものが、このチャレンジで使用されます。 チャレンジ: 正確にサイズ7の整数のリストを指定すると、各値は虹を形成するのに使用できる色の粒子を示し(最大のインデックスは赤を示し、最小のインデックスは紫を示します)、形成できる虹の量を出力します。 単一の整数虹には、少なくとも3xバイオレット、4xインディゴ、5xブルー、6xグリーン、7xイエロー、8xオレンジ、9xレッドが必要です。その上にある2番目の虹は、最初の虹の赤いリング(それらの間に1つのスペースを含む)よりもさらに大きくなるため、少なくとも11xバイオレット、12xインディゴ、13xブルー、14xグリーン、15xイエロー、16xオレンジが必要です、最初の虹が使用するものに加えて17x赤。3番目の虹は再び19xバイオレットで始まります。 例: 入力リスト:[15,20,18,33,24,29,41] 出力:2 どうして?15倍のバイオレットがあり、2つの虹には少なくとも3 + 11 = 14が必要です。20個のインディゴがあり、2つの虹に対して少なくとも4 + 12 = 16が必要です。など2つの虹に十分な色がありますが、3つの虹を形成するには十分ではないため、出力は2です。 チャレンジルール: 入力配列の整数は、非負(&gt;= 0)であることが保証されています。 入力リストのサイズは正確に7であることが保証されています。 虹が形成できないとき、出力します0。 入出力形式は柔軟です。STDINから取得できる10進数の整数のリストまたは配列にすることができます。出力は、任意の妥当な出力タイプの関数からの戻り値か、STDOUTに直接印刷できます。 n虹の量に必要な色の最小量: Amount of Rainbows Minimum amount per color 0 [0,0,0,0,0,0,0] 1 [3,4,5,6,7,8,9] 2 [14,16,18,20,22,24,26] 3 [33,36,39,42,45,48,51] …

14
ネイスミスのルール
Naismithのルールは、距離と上昇を考慮して、ウォーキングまたはハイキングに必要な時間の長さを計算するのに役立ちます。 パスに沿って等間隔に配置されたポイントの高度の空でないリストと、そのパスの合計距離(メートル)が与えられている場合、Naismithのルールに従って必要な時間を計算する必要があります。 ネイスミスのルールでは、5キロメートルごとに1時間、さらに600メートルの上昇ごとに1時間を許可する必要があります。 入力は非負の整数で構成されることが保証されているメートル単位で入力する必要があり、出力は常に時間または分(両方ではなく)である必要があり、必要に応じて10進数を指定できる必要があります(浮動小数点の不正確さは問題ありません) 。 たとえば、次の場合: [100, 200, 400, 200, 700, 400], 5000 最初の2つの要素[100, 200]には、100メートルの上昇があり、これは10分です。では[200, 400]、あなたが20分で上昇の200メートルを持って、[400, 200]もう時間がそのために追加されていないので、昇順されていません。[200, 700]500メートルの上昇は50分で、最終的に[700, 400]は上昇しません。5キロメートルの距離に1時間余分に追加されます。これは合計で140分または2.333 ...時間です。 テストケース [0, 600] 2500 -&gt; 1.5 OR 90 [100, 200, 300, 0, 100, 200, 300] 10000 -&gt; 2.8333... OR 170 [40, 5, 35] 1000 -&gt; 0.25 OR 15 [604] 5000 …
12 code-golf  number 

7
Nが与えられた場合、['A'、 'B'、 'AB'、 'C​​'、 'D'、 'C​​D'、 'ABCD'、 'E'、…]のn番目の要素を出力しますか?
次のリストを考慮してください。 expected = [ 'A', 'B', 'AB', 'C', 'D', 'CD', 'ABCD', 'E', 'F', 'EF', 'G', 'H', 'GH', 'EFGH', 'ABCDEFGH', 'I', 'J', 'IJ', 'K', 'L', 'KL', 'IJKL', 'M', 'N', 'MN', 'O', 'P', 'OP', 'MNOP', 'IJKLMNOP', 'ABCDEFGHIJKLMNOP', ... ] それを見る一つの方法があります-あなたは漢字の書き方を学んでいて、それらのますます大きな塊を学び、行くにつれてそれらをリハーサルします。Aから始めてBに進み、2つのペアのシーケンスが既にあるので、それを組み合わせます。次に、CとDを使用して、別のペアを作成し、練習します。その後、リハーサル:ABCD。その後、同じことがEからHまで続き、リハーサル:ABCDEFGHになります。リストは無限です。 目標は、このリストのn番目の要素を生成して印刷し、インデックスをゼロから増やすことです。「Z」の後、再び「A」を取得するとします。 勝利の基準は、ソースコードの長さです。

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