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

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

11
N回目のプログラムのN回
A入力として正の整数の配列が与えられた場合、何度も繰り返されると、配列kのkth(1-index)値を出力するプログラムを生成します。 たとえば、配列がの[1,11]場合、出力はを出力するプログラム1であり、2回繰り返すと出力されます11。print(end="1");Python 3のようなコードは動作します:print(end="1");1をprint(end="1");print(end="1");出力し、11 を出力します すべてのテストケースを解決するための最小コード長の合計が勝利します。メタコードは60秒で500のテストケースを解決し、各ソリューションコードは10秒で返されるはずです。メタコードとソリューションコードは同じ言語である必要はありませんが、メタプログラムが生成するすべてのソリューションは同じ言語である必要があります。 プレテストデータとジェネレーターはここで見ることができます。7日後、提出時間の合計(12:34平均1234など)をランダムシードとして使用し、最終的なテストケースとして別のテストケースを生成します。 最終シードはGMT + 8で7335なので、最終テストデータはこちら

3
素数を使用してリストを形成する
あなたはコインの山を与えられました。これらの各B 1、B 2、...、B Nパイルを別々のグループに分割することにしました。コインを受け取る人の数は素数でなければならず、各人に与えられる金額は山ごとに異なっている必要があります。 入力:N、B 1、B 2、...、B N(各山のコインの量)。 出力:NP 1、NP 2、...、NP N NPは、コインを受け取る人の数(素数)です。これが不可能な場合は、(のようないくつかの達成不可能な結果をもたらす0、-1、None、[]、または"impossible")、またはエラーを発生させます。 例: 3 7 8 9 出力: 7 2 3 7は、7を均等に分割できる唯一の素数であるため、8と2および9と3についても同じです。また、(7/7 = 1)≠(8/2 = 4)≠(9/3 = 3 )。

6
それは満足できる数ですか?
このチャットの会話に触発されました 満たす数は、その10進表現形式である数でありabx、以下の特性を有します: x末尾の繰り返しの最長サフィックス、または末尾に繰り返しがない場合は最後の数字(123333-> 3333、545656-> 5656、123-> 3) bx(123333-> 2、55545656-> 4)の前の1桁 a残りのプレフィックスです(123333-> 1、55545656-> 555) a == c**b(**は指数を表します)、cはx(1623333-> 4(3 3 3 3、not 33 33))の最小繰り返し部分の繰り返し数です) 例えば、8300と満足する数でありa = 8、b = 3、c = 2、およびx = 00。24651ので、満足する数ではないx = 1、b = 5、a = 246何の整数が存在しないと、cその満たしますc^5 = 246。1222も満足のいく数値ではありません。これは、x = 222およびを使用するとb = 1、残りの数字がないためです。a。 正の整数を指定するとn >= 100、出力するかどうかnを指定すると、が満足できる数値。 例 8300: True (a=8, b=3, …

1
アドベントチャレンジ8:保管カート輸送計画!
<<前へ PPCGコミュニティのおかげで、サンタは現在、保管カートのバランスを調整しています。今、彼はそれらをローディングベイに送ることができるようにそれらを輸送ドックに移動する必要があります。残念ながら、カートを移動するためのトラックはめちゃくちゃで、一緒にクラッシュせずにすべてを移動する方法を見つける必要があります! チャレンジ 各カートのトラックは、「ラベル」(またはステーション)のリストとして提供されます。カートは、いつでも2つのカートが同じラベル/ステーションにないように移動する必要があります。基本的に、カートはそれぞれに固有のラベルが付いている位置の間を移動します。 仕事 各カートのトラックをラベルのリスト(すべて正の整数)のリストとして指定し、すべてのカートをできるだけ短い時間で安全に目的地に送るために、各カートをいつリリースするかを決定します。 ここでは、トラックシステム全体の仕組みについて説明します。たとえば、カートiがt_iラベル付きのトラックにリリースされたとしT_i_1, T_i_2, ..., T_i_nます。すると、中にt_1までt_i-1、カートがiグリッド上ではなく、無視することができます。 時間枠t_iで、カートはラベルT_i_1にあり、t_kからt_iまでの時間枠ごとt_i+nに、カートはラベルにありT_i_k+1ます。 を含むすべての時間枠t_i+nで、カートは目的地にあり、グリッド上にありません。 所要時間の合計t_Tは、カートがシステムのトラック上に残っている最後の時間枠です。 仕様書 トラックシステムが指定されている場合、カートが時間に開始[t_1, t_2, ..., t_n]する時間枠のリストを返します。これにより、他の配置ではカートがより短い時間で目的地に安全に到着できなくなります。it_i 任意の時間枠であれば「安全」の面では、t_1へのt_T任意のラベル上に複数のカートがあり、それらが衝突し、配置が「安全」ではなかったです。トラックが2ウェイであるため、2つのカートがからa, bに移動してb, aも「安全」であることに注意してください。 フォーマット仕様 入力は、適切な形式の正の整数の行列として与えられます。出力は、適切な形式の正の整数のリストとして提供する必要があります。インデックスのない時間枠で出力を与えることができるので、出力は適切な形式の非負整数のリストになります。 ルール 標準抜け穴が適用されます これはコードゴルフなので、バイト単位の最も短い答えが勝ちます 回答は受け付けられません テストケース Input -> Output [[1, 2, 3], [4, 5, 6], [7, 8, 9]] -> [1, 1, 1] [[1, 2, 3], [1, 2, 3]] …

4
許可はありますか?
チャレンジ ファイルのUNIXパーミッションとその所有権(ユーザーIDとグループID)の記号表記を示す文字列を指定しAて、特定のユーザーがファイルの読み取り/書き込み/実行のパーミッションを持っているかどうかを判断します。 関連。 UNIXシステムでの権限 UNIXでは、すべてのファイルは、パーミッション(3つのクラスがあるユーザー、グループ、および他のどのグループには属しているユーザーを含む)と所有権を、。 記号表記は10文字で構成されます。この課題では、最初のキャラクターは重要ではありません。残りの9文字は、3つの文字の3つのセットに含まれ、ユーザー、グループ、その他のクラスの権限を表します。各セットの文字は、読み取り/書き込み/実行が許可されているかどうかを示します。許可されている場合はr、wまたはになりxます。それ以外の場合はになります-。 そのノートのsetuid、setgidの及びスティッキービットは、各セットの3番目の文字を変更することができるs、S、tまたはT。単純なルールは次のとおりです。文字が小文字の場合、権限が設定されます。そうでなければ、そうではありません。 (権限の記号表記の詳細については、こちらを参照してください。) すべてのユーザーにはユーザーIDがあり、すべてのグループにはグループIDがあります。すべてのIDは負でない整数になります。ユーザーは少なくとも1つのグループに属します。ユーザーAがファイルへのアクセスを取得したい場合、システムは次のようにユーザーの権限を確認します。 ファイルがuser Aに属している場合は、userクラスの権限を確認してください。 ファイルがに属していないが、ファイルAがA属するグループに属している場合は、グループクラスの権限を確認してください。 それ以外の場合は、他のクラスの権限を確認してください。 ただし、例外が1つあります。ユーザーIDが0(スーパーユーザー)の場合、ユーザーは何でも実行する権限を持っています。 仕様書 プログラム/関数は、これらを適切な形式の入力として受け取る必要があります。 記号表記のアクセス許可。 ファイルが属するユーザーIDとグループID。 のユーザーID A、およびA所属するグループIDのリスト。 アクセスのタイプ。読み取り、書き込み、実行には、3つの異なる1桁または1文字の値を使用できます。 Aファイルへのアクセス権限がある場合は真の値を返し、そうでない場合は偽の値を返す/出力します。 表記の最初の文字は常に-(通常のファイル)であると想定できます。 これはcode-golfなので、バイト単位での最短が勝ちます! テストケース ここのフォーマットは[permissions, user ID of file, group ID of file, user ID of A, group IDs of A, type(r/w/x)]です。 [-rwx------, 13, 15, 13, [15, 24], r]: …

3
RoboZZleインタープリター
あなたの仕事は、RoboZZleインタープリターを作成することです。ゲームに慣れていない場合は、robozzle.comのビデオをご覧になるか、以下の説明をお読みください。 ロボットは、赤、緑、青、または黒に着色された正方形の長方形のグリッドに住んでいます。黒い四角はアクセスできません。他はアクセス可能であり、それらのいくつかは星を含んでいます。目標は、黒い四角を踏んだり、地図から落ちたりすることなく、すべての星を集めることです。ロボットは1つの正方形を占め、特定の方向(左、右、上、または下)を向きます。これは、サブルーチンF1、F2、...、F5にグループ化されたアセンブリのような命令に従います。指示は、述語(「なし」、「赤の場合」、「緑の場合」、「青の場合」)とアクション(「進む」、「左に曲がる」、「右に曲がる」)のペアです。 「現在の正方形の赤をペイント」、「緑をペイント」、「青をペイント」、「何もしない」、「F1を呼び出す」、「F5を呼び出す」)。サブルーチンの呼び出しはスタックを使用し、再帰的である場合があります。従来のプログラミングと同様に、サブルーチンの最後の命令が完了した後、サブルーチンが呼び出されたところから実行が続行されます。実行はF1の最初の命令から始まり、ロボットが星のあるすべての正方形を訪問するか、ロボットが黒い四角またはマップの外側を踏むか、1000命令が実行されるまで続きます(失敗した述語と「何もしない」アクション)カウントしない)、または実行する命令がなくなる(スタックアンダーフロー)。 入力: a-マップをエンコードする12x16文字のマトリックス(通常は言語で表される文字列の配列など)- '#'アクセスできない(黒い)四角形、'*'星付きの四角形'.'、その他 c-アクセシブルな正方形の色を表す12x16文字のマトリックス- 'R'(赤)、'G'(緑)、または'B'(青)。アクセスできない正方形は、3つのうち任意の文字で表されます。 yおよびx-ロボットの0ベースの行と列。a[y][x]であることが保証されています'.' d-ロボットが向いている方向:0 1 2 3右用、下、左、上、すなわちに向けました(y,x+1)、(y+1,x)、(y,x-1)、(y-1,x) f-単一の文字列、F1 ... F5の連結された実装。各実装は、(空の可能性がある)述語とアクションのペアのシーケンスであり(サブルーチンごとに最大10ペア)、で終了します'|'。 述語:'_'なし、'r'赤、'g'緑、'b'青 アクション:'F'前進、'L'左折、'R'右折、'r'赤く'g'塗る、緑に'b'塗る、青に塗る、'1'F1を'5'呼び出す...、F5を呼び出す、'_'何もしない 上記のように入力に名前を付ける必要はありませんが、それらの値は指定どおりでなければなりません。 出力:(1またはtrue)ロボットがルールに従ってすべての星を収集する場合、0(false)そうでない場合。 例: a=["################","################","##*....*...*#.##","##.####.#####.##","##.####.#####.##","##.####*...*#.##","##.########.####","##*........*#.##","################","################","################","################"] c=["RRRRRRRRRRRRRRRR","RRRRRRRRRRRRRRRR","RRRBBBBRGGGGRRRR","RRBRRRRGRRRRRRRR","RRBRRRRGRRRRRRRR","RRBRRRRRGGGBRRRR","RRBRRRRRRRRGRRRR","RRRBBBBGGGGBRBRR","RRRRRRRRRRRRRRRR","RRRRRRRRRRRRRRRR","RRRRRRRRRRRRRRRR","RRRRRRRRRRRRRRRR"] y=2; x=6; d=2 // and then depending on "f": f="_FrLg2_1|_FbLrR_2||||" // result:1 f="_FrRg2_1|_FbLrR_2||||" // result:0 (stepped on a black square) f="_FrLrL_1|_FbLrR_2||||" // result:0 (1000-step limit exceeded) f="_FrLg2__|________||||" …

16
プライムクラスターを共有しますか?
プライムクラスタ整数Nよりも高い2は最高素数によって形成対として定義される厳密より低いNプライム最低厳密以上N。 整数が素数自体である場合は、上記の定義を以下、そのプライムクラスタが素数の組であることに注意先行及び後続それは。 仕事 2つの整数整数N、M(N、M≥3)が与えられた場合、NとMが同じ素数クラスターを持っているかどうかに基づいて、真/偽の値を出力します。 これはcode-golfであるため、目的はバイト数をできるだけ減らすことです。したがって、すべてのプログラミング言語で最も短いコードが優先されます。 テストケース/例 例えば、のプライムクラスタ9がある[7, 11]ので、: 7は9より厳密に低い最高の素数であり、 11は9よりも厳密に高い最低の素数です。 同様に、67の素数クラスターは[61, 71](67は素数であることに注意)です。 真実のペア 8、10 20、22 65、65 73、73 86、84 326、318 513、518 偽のペア 4、5 6、8 409、401 348、347 419、418 311、313 326、305

6
映画を探すのは難しい
これは、シンプルな(ish)Webスクレイピングの課題です。 入力 コードは、MPAAフィルムレーティングと0〜100の数値を入力として受け取る必要があります。それはあなたが便利だと思う方法でこれを行うことができます。 出力 コードは、a)その映画の評価とb)rottentomatoesからのTomatometerの数値スコアがある映画の名前を返す必要があります。 そのような映画がない場合、それはあなたが好きなものを出力することができます。 可能なMPAAフィルムの評価はG, PG, PG-13, R, NC-17, NRです。 あなたのコードは、あなた次第の1つ以上の映画を報告するかもしれません。 明確にするために、コードはWebにアクセスしてクエリへの回答を取得するためのものです。 例 入力が「PG、98」であるとすると、コードは「Zootropolis」を出力できます。 映画の評価PGとスコア98に対応するコードの例と回答を示してください。

3
何に何を割り当てることができますか?
関連した 何に何を割り当てることができますか? この課題では次の2つのタイプを与え、されるAとBしてかどうかを判断Aに割り当て可能であるB、Bに割り当て可能であるA、またはどちらも。 型システム (私はtあらゆるタイプを表すために使用します) 基本的なタイプ 基本タイプは、などの単一の大文字で表されXます。彼らは基本的にクラスです。 X割り当て可能であるY場合Yと同じか、またはの親クラスですX。 交差点タイプ 交差タイプはで表されintersect<X, Y>、の間に任意の数のタイプを含めることができます<(たとえばintersect<X, Y, Z, D, E>)。 tがすべてに割り当て可能なintersect<X1, X2... Xn>場合tに割り当て可能Xです。 intersect<X1, X2... Xn>に割り当て可能なものがtあれば、Xに割り当てられtます。 ユニオンタイプ ユニオンタイプはで表されunion<X, Y>、の間に任意の数のタイプを含めることができます<(たとえばunion<X, Y, Z, D, E>)。 tがに割り当て可能なunion<X1, X2... Xn>場合tはに割り当て可能Xです。 union<X1, X2... Xn>割り当てているtすべての場合Xにアサインされていますt。 入力 入力として受け取ります: クラス階層。クラス階層の入力方法を選択できます。ツリーの表現、または親のリストを含む各タイプ、またはクラス階層を正確に表すその他のものを入力できます。 2つのタイプ(表記に一貫性がある限り、入力は柔軟ですが、これらのタイプを自由に受け取ることができます)。 出力 次の3つの一貫性の異なる値の出力1を意志、それらを呼び出すX、YとZ。2種類を考えるAとB、出力X場合Aに代入されB、出力Yの場合はBに割り当て可能でA、出力Zそうでない場合(IFがAに割り当て可能であるBとBに割り当て可能であるA、あなたを出力してもよいX、Y両方、または4番目の値)。 テストケース フォーマット: # of types [type, parents...] [type, parents...] Type …

3
完全カバーパズル
チャレンジ グループ化された文字のセットが与えられたら、それらをボード全体に配置して、領域全体を覆うようにします。 ボード表現(別名SHIP DECK) ボードは6x6グリッドです。 常に36の正方形があります。 列はAFとマークされています。 行には1〜6のマークが付けられています。 例: A B C D E F +---+---+---+---+---+---+ 1 : : : : : : : +---+---+---+---+---+---+ 2 : : : : : : : +---+---+---+---+---+---+ 3 : : : : : : : +---+---+---+---+---+---+ 4 : : : : : : …

3
Unicode長方形
与えられた aからの文字の行列u=" ╶╺╵└┕╹┖┗╴─╼┘┴┶┚┸┺╸╾━┙┵┷┛┹┻╷┌┍│├┝╿┞┡┐┬┮┤┼┾┦╀╄┑┭┯┥┽┿┩╃╇╻┎┏╽┟┢┃┠┣┒┰┲┧╁╆┨╂╊┓┱┳┪╅╈┫╉╋" 部分行列の座標x、y、w、h(左、上、幅> 1、高さ> 1) t1(のように┌)または2(のように┏)の厚さ 既存の線を考慮して、指定された太さで部分行列の内側の境界をレンダリングします。 x=4;y=1;w=2;h=3;t=2; a=[' ┌───┐', '┌┼┐ │', '│└┼──┘', '└─┘ '] // output r=[' ┌───┐', '┌┼┐ ┏┪', '│└┼─╂┨', '└─┘ ┗┛'] 線のフラグメントを上書きする場合、新しい太さは古い太さとのどちらか大きいほうになりtます。 これは、あなたが取ることができるので、入力の解析またはUnicodeのコルモゴロフ複雑性を見つけることに関するものではありませんa、u、x、y、w、h、t変数として使用可能です。また、と同じ型でrあれば、結果を返すか出力する代わりに変数に入れることもできます。ra 言語によってコードを関数(C、Java、Haskellなど)に配置する必要があり、ソリューションが単一の関数で構成される場合は、関数のヘッダーとフッターを省略できます。 より大きなテスト: x=4;y=1;w=24;h=4;t=1; a=['┏┱─────┐ ┌┐ ┎──┲━┓', '┠╂─────┘ ││ ┃ ┗━┛', '┃┃ ││ ┃ ', '┠╂──┲━━┓ ┏━━━━┓ ││ ┌╂┰┐ ', '┃┃ ┗━━┩ ┃ ┃ …

22
複素数の指数
負、ゼロ、または正であり、得る2つの整数、所与a及びb(任意の合理的なフォーマットで撮影普通の複素数を入力するなど)に変換するa + bi場合i虚数(負の一方の平方根)です。次に、それを3番目の(正の整数)入力変数で累乗cします。その後、のようになるはずです。その後、出力しなければならない、またはリターン、および(任意の合理的な形式でプレーンな複素数を出力含みます)。(a + bi)cd + eide 入力と出力は、任意の順序で取得または出力できます。 例: 5, 2, 2 -> 21, 20 1, 4, 2 -> -15, 8 -5, 0, 1 -> -5, 0

11
特別な期間の画像を生成する
次の形式で入力を受け取るプログラムまたは関数を作成します。 <width>, <height>, <color1>, <color2> そして色の画素間のように、第1の行を交互に出力を生成 <color1>し、<color2>周期のを<height>。次の各行の期間はです<height> - <row number>。<color1>常に行を開始することに注意してください。 出力例 入力120, 6, #000000, #FFFF00: 入力80, 50, #000000, #FFFF00: (サンプル出力は明確にするためにスケーリングされています) これはcode-golfなので、有効なバイトで最短のエントリが優先されます。

3
ブラインドバイナリ加算器
2つのボックスB(x)とがありB(y)、それぞれに不明なビット-0または1が含まれていて、FそれらをX線撮影してB(x^y)(xor)の3つ目のボックスを生成できるマシンがあるとします。(および)Fも計算できます。-実際には、それらは、機械が実行できる単一の操作のちょうど特別な場合である内積それぞれ、で示さ以下。B(x*y)F() 2つの同じ長さの配列の場合 [B(x[0]), B(x[1]), ..., B(x[n-1])] [B(y[0]), B(y[1]), ..., B(y[n-1])] 内積は次のように定義されます B(x[0]*y[0] ^ x[1]*y[1] ^ ... ^ x[n-1]*y[n-1]) 「それぞれ」は、F()一度に複数ののペアを処理できることを意味します。そして一組からは同じ長さでなければなりません。異なるペアの-sと-sは必ずしも必要ではありません。x[]y[]x[]y[]x[]y[] ボックスは一意の整数IDで表されます。 JavaScriptでのそれぞれの内積の実装は次のようになります。 var H=[0,1]; // hidden values, indexed by boxId function B(x) { // seal x in a new box and return the box id return H.push(x)-1; } function F(pairs) { …

12
単純な州の売上税計算機
米国の消費税は控えめに言っても複雑です。通常、州の売上税があります(州の売上税を徴収しないいくつかの州があります)が、郡の売上税、学区の売上税、地方自治体(市)の売上税、または首都圏消費税。都市のさまざまな部分で異なる消費税が発生する場合もあります。ただし、この課題では、州の売上税のみに焦点を当てます。 ゼロより大きい米ドル金額(小数点以下第2位までの精度)と州(氏名または2文字の略称のいずれか、選択、大文字小文字は関係ありません)を指定し、以下の売上税率のチャートを使用すると、特定の販売のために徴収する必要がある、対応する州の売上税を正確に小数点以下2桁に切り捨てて出力します。コードが丸めを処理する方法を指定してください。 編集:ワシントンの略語は、WAではなくWSとして誤ってリストされていました。それは私の間抜けだったので、回答はどちらかの略語を使用することがあります。 State Abbr % Alabama AL 4.00% Alaska AK 0.00% Arizona AZ 5.60% Arkansas AR 6.50% California CA 6.00% Colorado CO 2.90% Connecticut CT 6.35% Delaware DE 0.00% Florida FL 6.00% Georgia GA 4.00% Hawaii HI 4.00% Idaho ID 6.00% Illinois IL 6.25% Indiana IN 7.00% Iowa IA …

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