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

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

15
空白を埋める
入力 非負の整数n、およびs英数字とアンダースコアのみを含む空でない文字列_。の最初の文字はsです_。の下線はs、他の文字で埋めることができる空白スペースとして解釈されます。 「無限ストリング」の無限シーケンスを次のように定義します。文字列は、無限に何度も繰り返されます。すべての場合、文字列はの文字で空白スペースを埋めることから取得されます。したがって、最初のが、で置換され、2番目がで置換されます。の最初の文字はでないため、すべての空白スペースが最終的に埋められ、すべてが最終的な値で置き換えられた無限の文字列で示されます。s1 = s s s...sk > 1sk+1sks1_sks1[0]s1[1]s_s∞_ 出力 の最初のn文字列。s∞ 例 入力n = 30とを考慮してくださいs = ab_c_。我々は持っています s1 = ab_c_ab_c_ab_c_ab_c_ab_c_ab_c_ab_c_... 代入のブランクに、我々は持っていますs1s1 s2 = abacbab_ccab_caabbc_abcc_abacbab_cc... 再び空白に置き換えます。その結果、s1 s3 = abacbabaccabbcaabbc_abcccabacbab_cc... もう1つの置換: s4 = abacbabaccabbcaabbcaabcccabacbabbcc... これから、の最初の30文字をすでに推測できます。s∞ abacbabaccabbcaabbcaabcccabacb これは正しい出力です。 ルール 完全なプログラムまたは関数を作成できます。最小のバイトカウントが優先され、標準の抜け穴は許可されません。誤った入力でのクラッシュは許容されます。 テストケース 0 "ab__" -> "" 1 "ab__" -> "a" 3 "ab__" -> "aba" …
14 code-golf  string 

1
トラックを荷造りするのに必要なロボット・ローディ
バンドのローディーとして、トラックを梱包する必要があります。プログラムは、最小の高さに収まるようにパッケージを配置します。 ひどく詰まったトラック ルール パッケージは90度の倍数で回転できます。パッケージは接触する場合がありますが、重なってはなりません。 出力は(ファイルまたはstdoutへの)再パックされたイメージです。プログラムは、任意の入力または出力ラスター画像形式を使用できます。 プログラムは、最大4000x4000ピクセルの画像でさまざまな形状のパッケージをいくつでも受け入れなければなりません。このテストイメージ用にハードコーディングしないでください。提出物がこの特定の画像に合わせて調整されていると思われる場合は、新しいテスト画像に置き換える権利を留保します。 スコア スコアは、配置を含む四角形の最小の高さです(幅は入力四角形の幅です)。同点の場合、最も早いエントリーが勝ちです。 通常の標準的な抜け穴は禁止されています。

4
それはほとんどLispです!
チャレンジ あなたの課題は、Lispに似た言語用のインタープリターを設計することです。GLispのプログラムコードは、次の形式の括弧で示された任意の量のネストされた式で構成されます。 (func arg1 arg2 ...) インタプリタは、括弧、関数、および引数の前後に余分な空白文字を許可する必要があることに注意してください。 タイプ 整数、リスト、ブール、関数の4つのタイプを実装します。整数とブール値は、独自の構文を使用してソースコードに明示的に挿入できます。インタープリターは、一連の数字が整数を示すと想定する必要があります(負の整数を明示的に挿入する構文を実装する必要はありません)。また、インタープリターはtrue、falseブール値が指定されていると想定する必要があります。関数はユーザーが明示的に定義することはできず、常に単一の値(任意の長さのリストが単一の値としてカウントされます)を返します。 関数 以下の関数は実装する必要があり、形式はFunction、Arityです。Arityの前にnプラス記号が付いている場合、それは1 nつ以上の引数を示しています。特に指定されない限り、関数に与えられたすべての引数は同じ型であると仮定することができます。また、certian型に動作が指定されていない場合、その関数の引数はその型にはならないと想定することもできます。引数は、次の図のように参照されます。 (func argument1 argument2 ... argumentn) +、2 + すべての引数がInteger型の場合、引数の合計を返す必要があります すべての引数がList型の場合、引数の連結を昇順(arg1+arg2+ ...)で返す必要があります すべての引数のタイプがBooleanの場合、引数のすべての論理シーケンスを返す必要があります (+ 1 2 3 4 5) -> 15 (+ (list 1 2) (list 3 4)) -> (list 1 2 3 4) (+ true true true) -> true …

2
行って星空にする
このコンテストでは、白​​黒のピクセル画像を受け入れ、変更を試みて、できるだけ少ない変更で白色の形状が星の領域を形成するようなプログラムを作成する必要があります。 許可される変更は、白いピクセルを黒いピクセルに変え、黒いピクセルを白いピクセルに変えることです。 出力も同じ画像で構成されている必要がありますが、今回はすべての変更があり、中央にマークが付いています。白から黒に変更されたピクセルは青で表示され、黒から白に変更されたピクセルは黄色で表示され、少なくとも1つの中心ピクセルは赤で表示されなければなりません。(正確な色はあなた次第です。)プログラムは、指定された画像と加えられた変更の総数を出力する必要があります。 定義 スタードメイン 画像の白いピクセルのセットは、(少なくとも)中央に 1つのピクセルがある場合(そしてその場合のみ)、スタードメインを表します。中心画素は、によってconnecedすることができる白画素の1つであり、直線ラインが白画素のみを通過するように、他の白画素の全てに。(したがって、中心ピクセルは必ずしも一意ではありません。) 2つのピクセル間の直線 (開始および終了は、以下の図の両方赤)2つの画素所与、straigth線二つの画素間の全ての画素からなり、そのタッチ(数学下図で黄色)線最初の中心から導くこと最後のピクセルの中心へのピクセル。ピクセルが角に接している場合、ピクセルはラインに接触していないため、ピクセルがピクセルラインに属するためには、(数学的な、黄色の)ラインが問題のピクセルをゼロ以外の長さで横切らなければなりません。(コーナーポイントのみに触れる場合、これは長さゼロと見なされます)。以下の例を検討してください。 例 最初の画像は、テストケースの「入力」の例を表し、他の2つの画像は、与えられた例の2つの有効な出力を表します。 黄色の領域(以前は黒)も「白」の領域にカウントされ、青色の領域(以前は白)は領域外の「黒」の部分にカウントされ、赤い点は毎回1つの可能な中心ピクセルを表します。 テストケース 次のテストケースは、それぞれ256 x 256ピクセルのサイズのpngです。 得点 次のテストケースでプログラムを実行し、回答に出力(イメージ/変更の数)を含めてください。各テストケースのリーダーボードを作成します。スコアはリーダーボードの各ランキングの合計になります-スコアが低いほど良いです。標準の抜け穴が適用されます。プログラムにこれらのテストケースを認識させ、それらの特別なケースを実行させることは許可されていません。(これらの各テストケースの最適な中心ピクセルを事前に計算して保存することはできません。)プログラムはすべての画像に対して機能するはずです。 リーダーボード Name | Score | 1 - rk | 2 - rk | 3 - rk | 4 - rk | 5 - rk | 5 - rk | Total Changes ------------+-------+------------+------------+------------+------------+------------+------------+-------------- …

5
磁気彫刻
これは、グラフの構築に関する私の以前の課題の緩やかな継続です。 バックグラウンド 風変わりなアーティストが彼の彫刻の構造的完全性を推定するためにあなたを雇いました。彼は立方体の磁石の束を取り、それらを一つ一つ巨大な山に落とすことによって彼の芸術作品を作成します。彼の方法をよりよく分析するために、次の2次元モデルを使用します。空の床から始め#、任意の整数座標に磁石をドロップします0。 | v # =============== 0 別の磁石をで落とすと0、前の磁石の上に配置されます: | v # # =============== 0 次に、にもう1つ磁石をドロップし0、次に1つにドロップし1ます。 | #v ## # =============== 0 上記のように、落下する磁石は、通過する2番目の磁石に付着します(最初の磁石は単に減速させます)。2番目の磁石は最初の磁石のすぐ下にある必要はなく、両側の磁石は1つの磁石としてカウントされます。 # # ##|## # v # ### # # # =============== 0 アーティストは、最終的な彫刻の最大垂直ギャップ、つまり、同じ列の2つの磁石、または磁石とその下の地面の間の空きスペースの最大数を計算することを望んでいます。上の図では、この数は3(列2)です。 入力 アーティストが磁石を落とす座標を表す整数のリスト。左から右に読みます。座標が満たされ-1024 <= i < 1024、リストの長さが最大1024であると仮定することができます。 出力 最終的な彫刻の最大垂直ギャップ。-1私たちの彫刻家はダダイストであるため、空の彫刻にはギャップがあり、このケースを含める必要があります。 追加のルール 機能または完全なプログラムを提供できます。最短のバイトカウントが優先され、標準の抜け穴は許可されません。説明付きのコードが推奨されます。 テストケース [] -> -1 …
14 code-golf  grid 

1
Pythonのアドバイス:内省的な関数呼び出しの移植性
Pythonでは、dir任意のオブジェクトで関数を使用して、そのインスタンス関数の名前のリストを取得できます。 >>> dir('abc') ['__add__', '__class__', '__contains__', '__delattr__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getnewargs__', '__getslice__', '__gt__', '__hash__', '__init__', '__le__', '__len__', '__lt__', '__mod__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__rmod__', '__rmul__', '__setattr__','__sizeof__', '__str__', '__subclasshook__', '_formatter_field_name_split', '_formatter_parser', 'capitalize', 'center', 'count', 'decode', 'encode', 'endswith', 'expandtabs', 'find', 'format', 'index', 'isalnum', 'isalpha', 'isdigit', 'islower', 'isspace', …
14 code-golf  tips  python 

5
2つの番号を繰り返し追加して、任意の番号を作成します
あなたは、2つの16ビットレジスタを持つマシンを与え、しているxとy。レジスタが初期化されx=1、y=0。マシンが実行できる唯一の操作は、65536を法とする加算です。つまり、次のとおりです。 x+=y- xは次のものに置き換えられ(x + y) mod 65536ます。y変わらない y+=x -同様に y x+=x- xは次のものに置き換えられ2x mod 65536ます。x偶数の場合にのみ合法 y+=y -同様に y 目標は、レジスタのいずれxか(またはy)で事前に定義された数を取得することです。 プログラムまたは番号(で受け取るサブルーチン書くstdin、argv関数のパラメータ、スタックの上部または任意の他の従来の場所)、そしてこの番号を取得するためのプログラムを出力します。出力は、に行くstdoutか、(言語がを持たない場合stdout)他の従来の出力デバイスに行く必要があります。 出力プログラムは、最大100%プラス最適から2ステップまで可能です。つまり、ターゲット番号を取得する最短プログラムにnステップがある場合、ソリューションはを超えることはできません2n+2。この制限は、「簡単すぎる」ソリューション(1、2、3、...など)を回避することですが、完全な最適化は必要ありません。最短のプログラムを見つけるのが最も簡単だと思いますが、確実ではありません... 例:入力=25。出力: y+=x x+=y x+=y x+=x x+=x x+=x y+=x 別の例:フィボナッチ数の場合、出力にはこの交互パターンがあります。入力= 21の場合、出力は y+=x x+=y y+=x x+=y y+=x x+=y y+=x 最短コード(バイト単位で測定)が優先されます。 (このパズルは、最近生成しなければならなかった16ビットプロセッサのコードに触発されました) PS不思議-最適なプログラムが最も長いのはどの番号ですか?

5
x-illionを標準形式に変換する
接頭辞と「illion」で構成される文字列を指定すると、この数値が標準形式に変換されます。 例えば: "million" -> 10^6 "trillion" -> 10^12 "quattuordecillion" -> 10^45 プログラムは、Centillion(10 ^ 303)までの入力を処理できる必要があります。名前とその標準形式の値のリストはここにあります -これは、10 ^ 3ごとに10 ^ 63までの値を提供しますが、10 ^ 30の増分でそれらを提供しますが、パターンは非常に簡単です。 プログラムは、100のケースすべてを提供する必要があります(提供されているWebサイトで明示的に指定されていないものも含む)-以下に例を示します。 "sexvigintillion" -> 10^81 "unnonagintillion" -> 10^276 "octotrigintillion" -> 10^117 入力は、STDIN、関数の引数、または文字列としてハードコード化することで指定できます。 これはコードゴルフなので、最短のコードが勝ちです!

4
Scriptbot Warz!
Scriptbot Warz! 結果は内にあり、暗殺者が私たちのチャンピオンであり、3試合中2試合に勝ちました!Scriptbotを送信したすべての人に感謝します!優れたパスを表示し、すべてのアクションオプションを最大限に活用したBestOpportunityBotのホーンに感謝します。 地図1 暗殺者は早い段階でBestOpportunityBotを使用しましたが、残りの試合はかなり退屈でした。詳細なプレイバイプレイはこちら。 暗殺者:HP 10、ダメージ10、ダメージ3 The Avoider v3:10 HP、0ダメージ、0ダメージ 食べ終わった:10 HP、0ダメージ、0ダメージ BestOpportunityBot:HP 0、ダメージ3、ダメージ10 地図2 BestOpportunityBotはこの試合でほとんどの作業を行いましたが、アサシンは最終的に彼を連れ去ることができました。詳細なプレイバイプレイはこちら。 暗殺者:2 HP、10ダメージ、9ダメージ BestOpportunityBot:HP 0、ダメージ32、ダメージ10 The Preventer v3:0 HP、0ダメージ、12ダメージ 食べ終わる:0 HP、0ダメージ、11ダメージ 地図3 BestOpportunityBotは、この試合で全員をtrapに追い込みました。とてもかっこいい。詳細なプレイバイプレイはこちら。 BestOpportunityBot:HP 10、ダメージ30、ダメージ0 暗殺者:0 HP、0ダメージ、0ダメージ 食べ終わる:0 HP、0ダメージ、0ダメージ The Avoider v3:HP 0、ダメージ0、ダメージ0 ご回答ありがとうございます!Scriptbotが4つしかないため、以下の各マップに1つずつ、3つの完全無料試合のトーナメントプランを放棄します。最高の勝利記録を持つスクリプトボットが勝利します。ネクタイが発生した場合、ネクタイを破ったスクリプトボットが最初に勝つという突然の死になります。 あなたがそれを受け入れることを選択した場合、あなたの仕事は、ASCIIマップを横断してその敵を破壊できるScriptbotをコーディングすることです。各バトルは、ランダムなスタート順のターンベースのゲームの形をとり、各スクリプトボットはアクションを起こすためにエネルギーポイント(EP)を費やす機会があります。GameMasterスクリプトは、各Scriptbotに入力を送り、出力を解釈します。 環境 各Scriptbotは独自のディレクトリ内に含まれており、そこでファイルとファイルから読み取りmap、statsファイルへの読み取り/書き込みがdataできます。このdataファイルは、役に立つと思われる永続的な情報を保存するために使用できます。 統計ファイル statsファイルには、あなたの対戦相手についての情報が含まれており、次のようにフォーマットされます。各プレイヤーは別々の行に表示されます。最初の列はプレーヤーIDです(@あなたを意味します)。2番目の列は、そのプレーヤーの健康状態です。 1,9HP @,10HP 3,9HP 4,2HP マップファイル …

3
プロパティXなしで最高スコアのマトリックスを見つける
この課題は、一部はアルゴリズムの課題、一部は最適化の課題、一部は単に最速のコードの課題です。 巡回行列は、最初の行で完全に指定されrます。残りの行はr、行インデックスに等しいオフセットを持つ行の各循環順列です。正方形ではない巡回行列を許可するため、最後の行の一部が欠落しているだけです。ただし、行数は列数以下であると常に想定しています。たとえば、次の3行5列の巡回行列を考えます。 10111 11011 11101 行列に同じ(ベクトル)合計を持つ非同一のインデックスを持つ2つの空でない列のセットが含まれている場合、行列はプロパティXを持つと言います。2つの列のベクトル和は、単純に2つの列の要素ごとの合計です。つまり、x要素を含む2つの列の合計は、それぞれx要素を含む別の列です。 最初の列と最後の列が同じであるため、上記のマトリックスにはプロパティXがあります。単位行列にプロパティXが含まれることはありません。 上記のマトリックスの最後の列を削除するだけの場合、プロパティXを持たず、4/3のスコアを与える例が得られます。 1011 1101 1110 タスク タスクは、エントリがすべて0または1で、プロパティX を持たない最高スコアの巡回行列を見つけるコードを記述することです。 スコア スコアは、列の数を最適なスコアマトリックスの行数で割ったものになります。 タイ・ブレーカー 2つの回答のスコアが同じ場合、最初に提出された方が勝ちです。 無制限のスコアを取得する方法を誰かが見つけた(非常に)まれなイベントでは、そのようなソリューションの最初の有効な証明が受け入れられます。可能性がさらに低い場合、有限行列の最適性の証明を見つけることができるので、もちろん勝利も授与します。 ヒント 12/8のスコアを取得するのはそれほど難しくありません。 言語とライブラリ 自由に利用できるコンパイラー/インタープリター/などがある言語ならどれでも使用できます。LinuxおよびLinuxでも自由に利用できるライブラリ用。 主要なエントリー 36/19 by Peter Taylor(Java) Suboptimus Primeによる32/17(C#) 21/12で半分(Python 2)

4
Dominionで2倍および3倍のアクションを解決する
ひらめき この質問は、人気のあるデッキ構築カードゲームDominionの玉座の間と王宮に触発されています。 ターンの一部として、一連のアクションを実行します。これら2つの特定のアクションにより、次に再生されるアクションが2、3回繰り返されます*。他の「一般的な」アクションは特定のゲーム効果を引き起こしますが、詳細には興味がなく、単に文字でラベル付けするだけです。 興味深いのは、玉座の間または王宮が別の王宮の玉座に影響を及ぼし、倍増または三倍効果自体が倍または三重になる場合です。玉座の間の長いチェーン、キングコート、および複数のアクションは、経験豊富なDominionプレイヤーでさえ混乱させる可能性があります。 あなたの目標は、可能な限り少ないバイトを使用して、これらのチェーンを正しく解決するコードを書くことです。Dominionルールでチェーンがどのように解決されるかを説明する前に、プログラムの要件について説明します。 *技術的には、玉座の部屋または王の裁判所の解決の一環として影響を受けるアクションを選択しますが、このビューはこの課題に対してよりクリーンです。 プログラム要件 プログラムまたは名前付き関数を作成します。再生された一連のアクション(STDINまたは関数入力)を取り込み、2倍および3倍の効果から得られた一連のアクションを出力または印刷する必要があります。少ないバイトが勝ちます。 入力 再生されたアクションのシーケンスを表す文字列。一般的なアクションは大文字で表されAてZ。特別なダブリングアクションの玉座の間は、キャラクター2で表され、トリプルアクションのキングズコートは3、 文字(アクション)の数は、1〜30の間です。必要に応じて、改行で入力を終了することができます。 入力例: WA23G3GA 出力 大文字の文字列AへZ。これは、2倍効果と3倍効果を、発生する順序で解決した結果生じる一連の一般的なアクションである必要があります。 必要に応じて、出力を改行で終わらせることができます。それ以外の場合、追加の文字はありません。 出力例:WAGGGGGGAAA。 Dominionでの2倍および3倍の仕組み ここでは、ドミニオンのルールに従って、玉座の間(2)と王宮()のチェーンがどのように機能するかを説明し3ます。 をプレイした後2、解決すべき次のアクションが2回発生します。したがって、最初にを再生した場合2、次にAが発生しますA。 2A -> AA 同様に、 A2BC -> ABBC 3DE -> DDDE 3N2BC3XY2 -> NNNBBCXXXY 最後の例では、決勝戦2に倍増するものは何もなかったため、効果がないことに注意してください。 興味深いのは、2倍または3倍の効果自体が2倍または3倍になった場合です。例えば、 22AB -> AABB まず、あなたがプレイし2ます。次に、別のを再生します。2これは、前のから2倍になり2ます。その結果、次の2つのアクションが2倍になります。まず、A解決の2つのコピー。次に、B解決のコピー。 A4倍ではないことに注意してください。最初のコピーが最初に2動作したA後、次のコピーは次の未解決の動作に作用しBます。なしではB、 22A -> AA の2番目のコピーは2次のアクションが2倍になるのを待っていますが、アクションは発生しません。 最後に、複雑な例を見てみましょう。 223BCDE -> BBBCCCDDE 前と同じように、最初のもの2は2番目のもの2を2倍にします。したがって、次の2つのアクションは2倍になります。の最初のコピーは2次のアクションを2倍にします。次のアクションは3、の次のコピーを解決する前に完全に解決する必要があります2。3トリプルの最初のコピーB、および2番目のコピートリプルC。現在、まだ待機中の2番目のコピーは2、次の未解決のアクションを2倍にしDます。この後、2倍または3倍の効果は残りませんE。最終的なアクションが発生します。 テストケース …
14 code-golf  game 

6
サイクリックタグシステムのシミュレーション
環状タグシステムは、 2シンボルアルファベットからなる小さな、チューリング完全な計算モデル(私は使用しますである{0,1})、有限の空ではない環状リストプロダクションそれら二つのシンボルで構成され、無限語もから成りますこれらの2つのシンボル。 各ステップで: 単語の最初の要素が削除されます 0現在の生産だった場合はスキップされます それが1現在の生産であったならば、単語の終わりに追加されます。 次のプロダクションがアクティブになります。これが最後のプロダクションであった場合、最初のプロダクションに戻ります。 単語が空になると、システムは停止します。 例(ウィキペディアから): Productions: (010, 000, 1111) Initial word: 11001 Generation Production Word (before) Word (after) 0 010 11001 → 1001010 1 000 1001010 → 001010000 2 1111 001010000 → 01010000 3 010 01010000 → 1010000 4 000 1010000 → 010000000 5 1111 010000000 …

2
海賊番号
Piは無理数です。つまり、その10進表現は終了したり繰り返されたりすることはありません。 Piは小数点以下41桁(40桁)に切り捨てられ3.1415926535897932384626433832795028841971ます。 小数点を無視し、重複を避けるために数字を正の整数のシーケンスとしてリストすると、3 1 4 15 9 2 6 5 35 8 97 93 23 84 62 64 33 83 27 950 28 841 971(OEIS A064809)が得られます。 (すでに発生したためでは15なく、シーケンスに表示される通知。 また、正でないため発生しないことに注意してください。最初のゼロが含まれています。)1 510950 最初の著作数を作成するには、このシーケンスを使用してPiの数字にインデックスを付けます(最初の数字は3、2番目の数字は1など)。 したがって、最初の著作権侵害番号の1桁目はPiの3桁目 、2桁目はPiの1桁目 、3桁目はPiの4桁目、4桁目はPi の15桁目など です。 Piを模倣するために、最初の桁の後に小数点が追加されます。 したがって、41桁の最初の著作権侵害番号は4.3195195867462520687356193644029372991880です。 (30桁目では、Piの974桁目まで行かなければならなかったことに注意してください。) 2番目の著作権数を作成するには、Piの代わりに最初の著作権数を使用してプロセスを繰り返します。(Pi自体は0番目の海賊番号と呼ばれる場合があります。)したがって、新しいシーケンスはで4 3 1 9 5 19 58 ...あり、最初の海賊番号は2番目を生成するためにインデックス付けされます9.14858...。 同様の方法で追加の著作権侵害番号が作成され、それぞれ前の番号から生成されます。 チャレンジ あなたの仕事は、2つの整数を取り、可能な限り最短のプログラムを作成することです。NそしてD、10進N数に切り捨てられたthの実数を出力しDます。 Dは常に正ですがN、負ではなくD、Piの数字Nは0の …
14 code-golf  pi 

1
最小限のボッグルのような配置
同じ文字キューブを複数回使用しないというルールが無視される場合、任意の大きなBoggleグリッドに単語を配置する方法を検討してください。また、無制限の数の文字キューブ(すべての文字が存在する)があり、ちょうどであると仮定します。QuQ 単語MISSISSIPPIは6個のキューブのみを使用して配置できます。可能な取り決めの1つを次に示します。 S MIS PP から始めて、M単語全体が綴られるまで、水平、垂直、または斜めに任意のステップを繰り返し実行します。 驚いたことに、次のような長いフレーズでAMANAPLANACANALPANAMAも必要なキューブは6つだけです。 MAN PLC ただし、より長く複雑な文字列に必要なキューブの最小数は必ずしも明らかではありません。 チャレンジ 文字列を取り込んで、最小数のキューブが使用されるように、このBoggleのような方法でそれを配置するプログラムを作成します。(結果のグリッドの寸法と空のセルの数は関係ありません。) 空のグリッドセルとして使用されるため、スペース(16進コード21〜7E)を除く各印刷可能ASCII文字に対して無制限の数のキューブがあると仮定します。印刷可能なASCII文字列(スペースなし)のみが入力されます。 入力は、stdinまたはコマンドラインから取得する必要があります。出力はstdout(または最も近い代替)に送られます。 出力の先頭または末尾の改行とスペースは問題ありません(ただし、異常な量がないことが望ましいです)。 検索スペースは、文字列が長くなるにつれて指数関数的に爆発しますが、アルゴリズムを効率的にしようとする必要はありません(それはいいことですが:))。これはコードゴルフであるため、バイト単位の最短ソリューションが優先されます。 例 入力がOklahoma!(最小8文字)の場合、これらはすべて正確に8つの塗りつぶされたグリッドセルを持ち、(改訂された)Boggle読み取りパターンに従うため、これらはすべて有効な出力になります。 Oklaho !m または ! Oamo klh または lkO !amo h 等

4
数学をする時間です
前書き これは私のお気に入りの数学パズルの1つです。 数字(3など)とその数字を使用する回数(5など)を指定して、+のみを使用して1、2、3、4、5、6、7、8、9、10になる10個の式を生成します。 −、×、÷、^、および√(ルート)(グループは操作をグループ化できます)。 例えば: (3^3 + 3)/(3 + 3) = (33 - 3)/(3 + 3) = 3 + 3/3 + 3/3 = 5 上記のすべてが5つの3を使用し、数学演算と結果が5になることに注意してください。√の前に3を使用して、立方根を表すこともできます。4番目のルートを示すために、√の前に4を使用する場合も同様です。 また、2つの3を使用して33を形成したり、3つの3を使用して333を形成したりできることにも注意してください。 チャレンジ 関数の引数、STDIN、またはコマンドライン引数として2つの数字(両方とも1〜5)が与えられます。 最初の数字は使用する数字を示し、2番目の数字はその数字が式で使用される回数を示します。 プログラムは、サイズ10(またはスペースで区切られた10個の数値)の配列を出力する必要があります。各要素は、(index + 1)数値を生成する数式(許可演算子のみを使用)が可能かどうかを示します。 たとえば、入力が 1 3 次に、出力は [1, 1, 1, 0, 0, 0, 0, 0, 0, 1] なぜなら、1、2、3、および10のみが3つの1を使用して表現できるからです。 スコア これはコードゴルフなので、バイト単位の最小コード長が優先されます。 ボーナス …

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