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

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

4
明らかにAPLトレインを括弧で囲みます
APLでは、trainsと呼ばれる暗黙の関数を作成できます。それらがどのように機能するかは、この課題とは無関係です。⍴関数として使用して、グループ化するさまざまな方法を次に示します。 ⍴ -> ⍴ ⍴⍴ -> ⍴⍴ ⍴⍴⍴ -> ⍴⍴⍴ ⍴⍴⍴⍴ -> ⍴(⍴⍴⍴) ⍴⍴⍴⍴⍴ -> ⍴⍴(⍴⍴⍴) ⍴⍴⍴⍴⍴⍴ -> ⍴(⍴⍴(⍴⍴⍴)) ... 順序は同じままです。手順は、厳密に3つ以上の関数がある限り、最後の3つの関数が1つの関数にグループ化されることです。ネストされたトレインに出会った場合、先に進む前にまずそれを括弧で囲みます。以下に適用される手順を示します⍴⍴⍴⍴⍴⍴。 Step 0: ⍴⍴⍴⍴⍴⍴ There are strictly more than 3 functions, repeat. Step 1: ⍴⍴⍴(⍴⍴⍴) There are strictly more than 3 functions, repeat. Step 2: ⍴(⍴⍴(⍴⍴⍴)) There are 3 or …

7
バイナリ展開の個別の空でないサブシーケンスの数
サブシーケンスとは、任意の数の文字を削除することで別のシーケンスから取得できるシーケンスです。明確な空でない部分配列100されています0、1、00、10、100。別個の空でない部分配列で1010あり0、1、00、01、10、11、010、100、101、110、1010。 正の整数を与え、そのプログラムまたは機能書き込みNのバイナリ膨張の異なる非空のサブシーケンスの数を返しnは。 例:since 4は100バイナリであり、上記の5つの異なる空ではないサブシーケンスがあることがわかりましたf(4) = 5。n = 1から始まり、シーケンスが始まります。 1, 3, 2, 5, 6, 5, 3, 7, 10, 11, 9, 8, 9, 7, 4, 9, 14, 17, 15, 16, 19, 17, 12 ただし、プログラムは、最新のマシンで1秒未満でn <2 50で動作する必要があります。いくつかの大きな例: f(1099511627775) = 40 f(1099511627776) = 81 f(911188917558917) = 728765543 f(109260951837875) = 447464738 f(43765644099) = 5941674

3
素数の階乗の比として有理数を書く
注:このチャレンジはサンドボックスに投稿されています。 前書き この課題は、学部の数学コンテストの問題である2009 Putnam B1に触発されました。問題は次のとおりです。 すべての正の有理数は、素数の階乗の積として書けることを示します(必ずしも別個ではない)。例えば、 チャレンジ あなたの挑戦は、入力として正の有理数の分子と分母(または単に有理数自体)を表す、比較的素数の正の整数のペアを取り、素数の2つのリスト(または配列など)を出力することです入力された有理数は、最初のリストの素数の階乗の積と2番目のリストの素数の階乗の積の比に等しくなります。 ノート 最初のリストと2番目のリストの両方に含まれる素数がない場合があります。ただし、素数は、どちらのリストでも何度でも表示できます。 入力はそれぞれ(厳密には)1〜65535の間であると想定できます。ただし、出力する必要がある数値の階乗がこの範囲にあるとは限りません。 入力と出力の例 有効な入力と出力の例を次に示します。 input=>output 10,9 => [2,5],[3,3,3] 2,1 => [2],[] 3,1 => [3],[2] 1,5 => [2,3,2],[5] (elements of a list may be in any order) 3,2 => [3],[2,2] 6,1 => [3],[] 入力(2,2)、(0,3)、(3,0)、(3,6)および(1,65536)は不正な入力です(つまり、プログラムは特定の方法で動作する必要はありません) )。不正な出力の例を次に示します。 1,2 => [2],[2,2] (2 is in both …

23
配列の単一スワップ
触発さから撮影スタックオーバーフローの問題。 チャレンジ 整数n>1を指定すると、配列内の正確に2つのエントリをスワップすることで取得できるすべての配列を出力します[1, 2, ..., n]。 配列は任意の順序で作成できます。 (1 [0, 1, ..., n-1]ベース)の代わりに一貫して(0ベース)を使用でき[1, 2, ..., n]ます。 追加のルール 入力と出力は通常どおり柔軟です。 すべてのプログラミング言語で、プログラムまたは機能が許可されます。標準的な抜け穴は禁止されています。 バイト単位の最短コードが優先されます。 テストケース 入力2は出力を与えます(1ベースと仮定) 2 1 入力3により出力が得られます(3つの配列の順序は任意です) 1 3 2 2 1 3 3 2 1 入力4は出力を与えます 1 2 4 3 1 3 2 4 1 4 3 2 2 1 3 4 …

14
バイナリプライムチャンク
シーケンスを検索しています 自然数を取る 1,2,3,4,5,6,7,8,9,10,11,12,13,14... 2を底に変換 1,10,11,100,101,110,111,1000,1001,1010,1011,1100,1101,1110... 上記の数字を連結します 110111001011101111000100110101011110011011110... パーティションにこの番号をプライムチャンク (桁の素数を含むチャンク) 素数が順序をascedingに取り込まれます2,3,5,7,11,13,17... [11][011][10010][1110111][10001001101][0101111001101][1110...] 各チャンクの数字の合計を見つける Primes 2 3 5 7 11 13 17 Chunks [11][011][10010][1110111][10001001101][0101111001101][1110...] SumOfDigits 2 2 2 6 5 8 シーケンス 2、2、2、6、5、8、9、10、14、22、11、18、25、27、32、21、28、32、40、40、49、49、32、41、49、 53、63、55、63、70、87、73、51、63、71、78、78、90、107、86、96、108、115、128、138、92、83、95、102、110、 130、106、122、141、149、163、130、140、151、165、181、165、204、200、234、100、130、138、167、149、169、180、209、166、189、 194、222、205、234、260、216、206、217、241、240、267、289、242、274、308、286、329、338、155、189、225、197、240、272、217、 254、282、287、317、281、256、299、286、331、337、316、350、354、391、367、282、327、313、364、358、348、397、406、466 ... チャレンジ nth上記のシーケンスの項を 見つける 入力 整数 n>0 テストケース 1->2 3->2 6->8 36->78 60->165 160->581 260->1099 …

21
周期的に振動しますか?
チャレンジ リストが与えられたら、リストを増加要素と減少要素の実行にグループ化すると、同じサイズのリストのリストになるかどうかを判断します。 つまり、リストの「ターニングポイント」は均等に配置されます。 例 以下に例を示します。 0, 3, 7, 5, 2, 3, 6 0, 3, 7増加、7, 5, 2減少、2, 3, 6増加します。したがって、これは真実です。 もう一つの例: 1, 4, 6, 8, 5, 3, 5, 7, 9 1, 4, 6, 8増加、8, 5, 3減少、3, 5, 7, 9増加します。したがって、これは偽です。 ルールと仕様 隣接する要素は等しくなりません すべての数字は、あなたの言語の合理的な数字の範囲内にあると仮定することができます あなたが提出物をゴルフするのに役立つなら、あなたはすべての数字が整数であると仮定するかもしれません これはcode-golfなので、最短の回答が勝ちます 妥当な表現のリストとして入力し、真実/偽の値として出力します。2つの値は一致している必要があります。 テストケース Input -> Output 1, 3, …

6
コラコスキーのような自己参照シーケンス
これは、コラコスキーシーケンス(OEIS A000002)の定義方法です。 Kolakoski配列が含まシーケンスである1と2、そしてn配列の番目の要素はの長さであるn配列自体に等しい要素(ラン)の番目のグループ。シーケンスの最初の20項とそれぞれの長さは次のとおりです。 1 2 2 1 1 2 1 2 2 1 2 2 1 1 2 1 1 2 2 1 - --- --- - - --- - --- --- - --- --- - 1 2 2 1 1 2 1 2 2 1 2 2 1 基本的に、コラコスキシーケンスの等しい要素のグループの長さはコラコスキシーケンス自体です。 …

15
リストの詳細検索
このチャレンジでは、リストが完全に整数と有効なリスト(再帰的定義\ o /)で構成されている場合にのみ、リストは有効と見なされます。このチャレンジでは、有効なリストと整数を指定して、整数が見つかるすべての深さのリストを返します。 例 list [1, [2, [3, [1, 2, 3], 4], 1], 1]とintegerを考えてみましょう1。次に、次のようにリストを引き出します。 Depth 0 1 2 3 Num 1 2 3 1 2 3 4 1 1 あなたはそれ1が深さで現れることに気付くでしょう0, 1, 3。したがって、出力は0, 1, 3適切な形式にする必要があります(順序は関係ありません)。 深さは0インデックスまたは1インデックスのどちらでもかまいませんが、提出の際にどちらを指定するかを指定してください。 テストケース(0インデックス付き) リストの場合[1,[2,[3,4],5,[6,7],1],[[[[5,2],4,[5,2]]],6],3]: 1 -> [0, 1] 2 -> [1, 4] 3 -> [0, 2] 4 …

6
私は変化が好きではありません!
入力: 改行または空白なしの2つの文字列。 出力: 両方の入力文字列は別々の行にあり、必要に応じてスペースを使用して、2つの文字列のいずれかに†を追加します。文字と三行目はA、R、Mと表す追加、除去、改変、及び不変。 †上部または下部の入力文字列にスペースを追加します(必要な場合)。このチャレンジの目標は、ARM可能な限り少ない変化()で出力することです。これは、レーベンシュタイン距離とも呼ばれます。 例: 入力文字列がABCDEFとAFBECDであるとすると、出力は次のようになります。 A B CDEF AFBECD A A RR 次に、他の無効な出力の例を示します(さらに多くの出力があります)。 ABCDEF AFBECD MMMMM A BCDEF AFBECD A MMMR AB CDEF AFBECD MAMMMR ABC DEF AFBECD MMAMMR ABC DEF AFBECD MMAA RR ABCDEF AFB ECD MMR MA AB CDEF // This doesn't make much sense, AFBECD …
19 code-golf  string 

27
私のポリトーンを見つけてください!
この課題の目的のために、polyphthongが唯一の母音が含まれていることを、文字列の連続したスライスとして定義され、長さが少なくとも2入力として非空の文字列を与えている、あなたのタスクは、出力することが含まれているすべてのpolyphthongsです。 たとえば"abeoic"、次の連続したスライスがあります(スペース区切り): a b e o i c ab be eo oi ic abe beo eoi oic abeo beoi eoic abeoi beoic abeoic 母音以外のものを含むもの、または長さが2より小さいものを削除すると、目的のポリトーンが得られます。 eo oi eoi あなたの提出物は、以下の規則を順守しなければなりません: I / Oには小文字または大文字を選択できますが、出力ケースは入力ケースと一致する必要があります。 母音はaeiou(小文字の場合)とAEIOU(大文字の場合)です。y/ Yは母音とは見なされません。 入力には、印刷可能なASCIIのみが含まれます。 ポリトーンが複数回表示される場合、一度だけ出力するか、すべてのオカレンスを出力するかを選択できます。 妥当なI / O形式とメソッドが許可されます(入力と出力の両方で、文字のリストも使用できます)。 テストケース 入力->出力(小文字) r67 ^^()* 6536782!87-> [] プログラミングパズルとコードゴルフ-> [] aaand ...勝った!-> ['aa'、 'aa'、 …
19 code-golf  string 

14
リンチベルの番号はいくつありますか?
チャレンジ n入力として整数を指定すると、36 >= n >= 2baseにあるリンチベルの数を出力しますn。 出力は基数10でなければなりません。 リンチベル番号 次の場合、番号はリンチベル番号です。 その数字はすべて一意です(数字の繰り返しはありません) 数字はその数字ごとに割り切れます 数字の1つとしてゼロが含まれていません すべての数字は一意である必要があり、各ベースに有限の1桁の数字セットがあるため、有限の数のリンチベル番号があります。 たとえば、基数2では1、他のすべての数字は数字を繰り返すか0を含むため、Lynch-Bell番号は1つだけです。 例 Input > Output 2 > 1 3 > 2 4 > 6 5 > 10 6 > 10 7 > 75 8 > 144 9 > 487 10 > 548 Mathematica Onlineはベース10を超えるメモリを使い果たしました。次のコードを使用して独自のコードを生成できます。 Do[Print[i," > ",Count[Join@@Permutations/@Rest@Subsets@Range[#-1],x_/;And@@(x\[Divides]FromDigits[x,#])]&[i]],{i,10,36,1}] …

5
これは負けた広場ですか?
チェス盤でプレイされるGet Homeというゲームがあります。このゲームでは、両方のプレイヤーが順番に動かす単一のピースがあります。ピースの移動方法にはいくつかのルールがあります。ターンでは、プレイヤーは正のnに対して次のいずれかの動きをしなければなりません。 n個のスペース 左側にn個のスペース n間隔で左上(対角線) ボードの左上隅にピースを移動したプレイヤーがゲームに勝ちます。 次に、負けた正方形の概念を定義します。で、このビデオ(私はアイデアを得たところから)負け広場は、自分のターンを開始する任意のプレイヤーは自分の対戦相手が勝利を強制できるように行動を起こすことを余儀なくされる上の正方形として定義されます。負けた正方形の最も単純な例は、(1,2)の正方形です。(1,2)のピースは、次のいずれかの場所に移動できます。 これらはすべて、次のプレーヤーの勝利への直接の道を持っています。 また、負けたマスへの移動パスが1つあるマスは、そのマスから開始するプレイヤーが勝ちを勝ち取ることができます。これは、負けた正方形から1つ離れていない正方形も負けた正方形であることを意味します。 これにより、負けた正方形のこのかなりきちんとした定義に導かれます。 負けたマスとは、他の負けたマスに移動できないマスであり、(0,0)は負けたマスです。 仕事 任意のサイズのチェス盤上の正方形の座標を考えると、それが負けた正方形かどうかを判断します。2つの値を出力します。1つは正方形を失い、もう1つは他の正方形を失います。 これはコードゴルフであるため、回答はバイト単位でスコアリングされ、バイト数が少ない方が優れています。 テストケース これは、通常の8 x 8チェス盤(0でマーク)の負けたマスです。 0 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 0 1 1 …

12
実数ベース変換
基本変換にはいくつかの課題がありましたが、それらはすべて整数値に適用されるようです。実数でやってみましょう! チャレンジ 入力: 10を底とする正 の実数x。これは、倍精度浮動小数点数または文字列として取得できます。精度の問題を回避するために、この数は10 -6より大きく10 15より小さいと仮定できます。 ターゲット基地 B。これは、2〜36の整数になります。 小数桁数 n。これは、1〜20の整数になります。 出力:基数bのxの表現で、nの小数桁。 出力式を計算するとき、n番目を超える数字は切り捨てる(丸めない)必要があります。たとえばx = 3.141592653589793、base b = 3は10.0102110122...ですのでn = 3、出力は10.010(切り捨て)ではなく10.011(切り捨て)になります。 以下のために、XとB小数部の桁の有限数を生成する、等価な無限の表現(に切り捨てN桁)も許容されます。たとえば4.5、10進数ではとして表すこともできます4.49999...。 浮動小数点エラーを心配しないでください。 入出力フォーマット xは先行ゼロなしで与えられます。場合、xは整数であることを起こるあなたは(それがゼロ小数部分で与えられることになると仮定することができます3.0)、または小数部のありません(3)。 出力は柔軟です。たとえば、次のようになります。 整数部と小数部の間に適切な区切り記号(小数点)を付けた数値を表す文字列。桁数は11、12など(のためにB 10を超えた)の文字として表現することができA、Bいつものように、または任意の他の個別の文字として(指定してください)。 整数部の文字列と小数部の別の文字列。 番号を含む二つの配列/リスト、各部分について1つ、0の35数字として。 唯一の制限は、整数部分と小数部分を区別し(適切な区切り記号)、同じ形式を使用できることです(たとえば、[5, 11]整数部分を['5', 'B']表すリストと小数部分を表すリストにはno )。 追加のルール すべてのプログラミング言語で、プログラムまたは機能が許可されます。標準的な抜け穴は禁止されています。 バイト単位の最短コードが優先されます。 テストケース 出力は、数字と文字列として示されている0...、、 9、A、...、Z使用して、.小数点区切りとして。 x, b, n -> output(s) 4.5, 10, 5 -> 4.50000 or …

8
マトリックスを通る最適なパス
正の整数で構成される行列を指定すると、左上の要素から右下に移動するときに最小の合計のパスを出力します。垂直、水平、斜めに移動できます。上/下、右/左、および斜めにすべての側面に移動できることに注意してください。 例: 1* 9 7 3 10 2 2 10 4* 1* 1* 1* 7 8 3 6 3 8 9 5* 7 8 10 2 5 2 1* 4 5 1 1 3 6 7 9* 最小の合計を与えるパスはアスタリスクでマークされ、次の合計になります:1 + 4 + 1 + 1 + 1 + 5 + 1 …

6
バウンスシーケンス
シーケンスを定義しましょう。a (n )a(n)a(n)は、次の特性を持つ最小数であると言います。バツバツx バツバツxnとは互いに素です(因子を共有しません)nnn バツバツxはシーケンスの前に現れません | n − x | > 1|n−バツ|>1|n - x| > 1 ほとんどのシーケンスとは異なり、シーケンスのドメインと範囲は1 より大きい整数です。 最初の数項を計算してみましょう。 a (2 )a(2)a(2)a (2 )は少なくとも4でなければなりませんが、4と2は2の係数を共有するためは5でなければなりません。a (2 )a(2)a(2) a (3 )a(3)a(3)a (2 )a (3 )= 7は少なくとも5でなければならないが、5はによって取得されるため、少なくとも6であるが、6は3と因子を共有するため、少なくとも7でなければならず、7は3つの要件をすべて満たすため。a (2 )a(2)a(2)a (3 )= 7a(3)=7a(3)=7 a (4 )a(4)a(4) 2要因を共有する 3近すぎる 4近すぎる 5近すぎる 6要因を共有する 7 a(3)撮影 8要因を共有する …

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