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

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

9
用紙と封筒のサイズ
仕事 文字(A、B、C)、および数字(0-10)を指定して、一致する標準用紙サイズ(シリーズAおよびB)または一致する標準封筒サイズ(Cシリーズ)のサイズをミリメートルの形式で出力します。aaaa x bbbbここでaaaaおよびbbbbは、ISO216(シリーズAおよびB)またはISO296(シリーズC)によるミリメートル単位の幅と高さの測定値です。 物事を簡単にするために、ウィキペディアの用紙サイズの表から引用します ISO paper sizes in portrait view Format A series B series C series Size mm × mm mm × mm mm × mm 0 841 × 1189 1000 × 1414 917 × 1297 1 594 × 841 707 × 1000 648 × 917 2 420 …
17 code-golf 

3
ドロップするまで描く
Dungeons&Dragons 5th edition(および他のほとんどのエディション)には、Deck of Many Thingsと呼ばれる魔法のアイテムが存在します。カードはすべて非常に強い正または負の効果を持っているため、非常に強力なアイテムです。デッキを使用するには、キャラクターが数字を宣言し、その数のカードを引き出します。効果は順番に適用されます。キャラクターが宣言したすべてのカードを描画せず、最後のカードが描画されてから少なくとも1時間経過している場合、残りのカードは自動的に描画され、効果が適用されます。各カードが描かれた後、それはデッキに戻され、デッキはシャッフルされます。 以下は、各カード1を引くことの効果のリストです: バランス:あなたの心はひどい変化を被り、あなたのアライメントが変化します。合法は混oticとし、善は悪となり、逆もまた同様です。あなたが真のニュートラルまたは非同盟である場合、このカードはあなたに影響を与えません。 コメット:遭遇する次の敵対的なモンスターまたはモンスターのグループを単独で倒すと、1レベルを得るのに十分な経験値を獲得します。そうでない場合、このカードは効果がありません。 ドンジョン:あなたは姿を消し、異次元の球体でアニメーションが中断された状態で埋葬されます。あなたが身に着けていて運んでいたものはすべて、あなたが姿を消したときにあなたが占有していた空間に留まります。あなたが発見され、球から取り除かれるまで、あなたは投獄されたままです。あなたは占いの魔法で見つけることはできませんが、願いの呪文はあなたの刑務所の場所を明らかにすることができます。これ以上カードを引きません。 エウリュアレ。カードのメデューサのような顔はあなたを呪います。この方法で呪われている間、あなたはスローをセーブすることで-2ペナルティを受けます。この呪いを終わらせることができるのは、神か運命カードの魔法だけです。 運命:Realityのファブリックは解きほぐされ、新たに回転します。これにより、1つのイベントを、発生しなかったように回避または消去できます。カードを引くとすぐ、または死ぬ前であればいつでもカードの魔法を使うことができます。 炎:強力な悪魔が敵になります。悪魔はあなたの破滅を求め、あなたの人生を苦しめ、あなたを殺そうとする前にあなたの苦しみを味わいます。この敵意は、あなたか悪魔が死ぬまで続きます。 愚か者:10,000 XPを失い、このカードを捨てて、デッキから再び引きます。両方の引きを宣言した引きの1つとして数えます。それほど多くのXPを失うとレベルが失われる場合、代わりにレベルを維持するのに十分なXPだけが残る量を失うことになります。 宝石:各2,000 gpに相当する25個の宝石、または各1,000 gpに相当する50個の宝石が足元に現れます。 白痴:インテリジェンスを恒久的に1d4 + 1(最小スコア1まで)減らします。宣言されたドローを超えて追加のカードを1枚引くことができます。 道化師:10,000 XPを獲得するか、宣言したドローを超えて2枚の追加カードを引くことができます。描いた後、このカードを捨てます。 キー:熟練したレアまたはレアな魔法の武器が手に現れます。GMは武器を選択します。 ナイト:あなたは、あなたの30フィート以内の選択したスペースに現れる第4レベルの戦闘機のサービスを獲得します。ファイターはあなたと同じ人種であり、運命が彼または彼女をあなたに引き寄せたと信じて、死ぬまで忠実にあなたに仕えます。あなたはこのキャラクターをコントロールします。 ムーン:ウィッシュスペルを1d3回キャストすることができます。 Rogue:GMが選択したノンプレイヤーキャラクターは、あなたに対して敵対的になります。新しい敵の身元は、NPCまたは他の誰かが明らかにするまでわかりません。願いの呪文や神の介入以外に、あなたに対するNPCの敵意を終わらせることはできません。 破滅:魔法のアイテム以外の、あなたが持っているか所有しているあらゆる種類の富はあなたに失われます。ポータブルプロパティは消滅します。所有しているビジネス、建物、土地は、現実をほとんど変えない方法で失われます。このカードで紛失したものを所有する必要があることを証明する文書もすべて消えます。 スカル。あなたは死のアバターを召喚します-ボロボロの黒いローブに身を包み、スペクトルの鎌を運んでいる幽霊のようなヒューマノイドのスケルトン。それはあなたの10フィート以内のGMが選択したスペースに現れ、あなたを攻撃します。あなたが死ぬか、ヒットポイントが0になるまでアバターは戦うので、消えます。誰かがあなたを助けようとした場合、ヘルパーは死のアバターを召喚します。死のアバターによって殺されたクリーチャーは、生き返ることができません。 スター:能力スコアの1つを2つ増やします。スコアは20を超えることができますが、24を超えることはできません。 Sun:50,000 XPを獲得し、不思議なアイテム(GMがランダムに決定します)が手に現れます。 Talons:あなたが身につけたり運んだりするすべての魔法のアイテムは崩壊します。あなたが持っているアーティファクトは破壊されませんが、消えます。 玉座:説得スキルの習熟度を獲得し、そのスキルで行われたチェックの習熟度ボーナスを2倍にします。さらに、世界のどこかにある小さなキープの正当な所有権を取得します。ただし、現在、キープはモンスターの手にあります。モンスターをキープする前にクリアする必要があります。 Vizier:このカードを引いてから1年以内にいつでも、瞑想で質問をすることができ、その質問に対する真実の答えを精神的に受け取ることができます。情報に加えて、答えは不可解な問題やその他のジレンマを解決するのに役立ちます。言い換えれば、知識はそれをどのように適用するかについての知恵を伴っています。 The Void:この黒のカードは災害を引き起こします。あなたの魂はあなたの体から引き出され、GMが選んだ場所のオブジェクトに含まれています。1人以上の強力な存在が場所を守っています。あなたの魂がこのように閉じ込められている間、あなたの体は無力化されています。願いの呪文はあなたの魂を回復することはできませんが、呪文はそれを保持するオブジェクトの場所を明らかにします。これ以上カードを引きません。 (D&D 5th edition SRDからコピーされたカードの説明) いくつかの特に愚かなプレーヤーは、有害なカードのバランスを取るために少なくとも1つの強力な恩恵を得ることを望んで、一度に多数のカードを引きます。予想されるように、これは多くの場合、キャラクターの死またはカードを引き続けることができないという結果になります。 チャレンジ 22枚の多くのモノのデッキから繰り返し描画をシミュレートし、描画された各カードを出力し、次の条件のいずれかが満たされた場合にのみ停止します。 キャラクターは死にます(Skullを引くか、FlamesまたはRogueを引いた後に5枚のカードを引くことで、The FatesまたはMoon active 2の恩恵は受けません)。 キャラクターは、より多くのカードを引くことができません(ドンジョン、タロン、ボイド3の効果、またはキャラクターの知能スコアが白痴4で 3以下に低下する)。 …
17 code-golf  random  game 

11
魔法のメール変換!または:NSAが電子メールアドレスからメタデータを抽出するのを支援します
電子メールアドレス、その電子メールアドレスに適用された変換の結果、および2番目の電子メールアドレスを指定すると、2番目の電子メールアドレスに適用された同じ変換の出力が返されます。 メールアドレスはすべて次の構造になります。 英数字と最大1文字.(ローカル部分)@を含む正の長さの文字列と、それに続く記号、英数字の集計(ドメイン)を含む正の長さの文字列、それに続く.記号、および正の長さの最終文字列英数字(TLD)を含む。 許可される変換は4つあります。 アイデンティティ(変更なし)。(a.b@c.d -> a.b@c.d) ローカル部分(の前のすべて@)を変更せずに返します(a.b@c.d -> a.b)。 .存在する場合に分割されたローカル部分を返し、各半分の最初のシンボルを大文字にします。(a.b@c.d -> A B)。 変更されていないドメイン(@との間のすべて)のみを返します.。(a.b@c.d -> c)。 複数の変換が可能な場合、任意の可能性の出力を提供できます。出力の開始と終了の空白は重要ではありませんが、真ん中は関係します(つまり、分割a.bする場合A B、真ん中に1つだけのスペースが必要です(および出力の開始と終了の任意の数)が、分割する場合a.、その後A、いずれかの側に任意の数のスペースがあれば、すべて受け入れられます)。 例(input | output): john.doe@gmail.com, John Doe, phillip.maini@gmail.com | Phillip Maini John.Doe@gmail.com, John Doe, Phillip.Maini@gmail.com | Phillip Maini foo.bar@hotmail.com, foo.bar, gee.whizz@outlook.com | gee.whizz foo.bar@hotmail.com, foo.bar, gEe.Whizz@outlook.com | gEe.Whizz rodney.dangerfield@comedy.net, comedy, michael.scott@office.0 | …
17 code-golf  string 

9
整数平方根のシーケンス
整数平方根のシーケンスを定義しましょう。まず、a(1)=1。次に、a(n)は、これまでに見られなかった最小の正の整数です。 sqrt(a(n) + sqrt(a(n-1) + sqrt(... + sqrt(a(1))))) 整数です。いくつかの例: a(2)は3で、これsqrt(a(2) + sqrt(a(1))) = sqrt(a(2) + 1)は整数であるような最小の整数であり、以前にシーケンスに3が出現していなかったためです。 a(3)は、整数である最小の整数であるためsqrt(a(3) + sqrt(a(2) + sqrt(a(1)))) = sqrt(a(3) + 2)、2であり、2は前のシーケンスでは発生していません。 sqrt(a(4) + 2)整数であるため、a(4)は7 です。シーケンスに2がすでに発生しているため、a(4)= 2を使用できませんでした。 パラメーターnを指定したプログラムまたは関数を作成すると、一連の数値a(1)からa(n)が返されます。 シーケンスは1,3,2,7,6,13,5、...から始まります。 このシーケンスのソースは、このMath.SE質問からのものです。 シーケンスの最初の1000個の要素のプロット:

14
パスワードを変更する
一般的な単語は、パスワードとして使用するために依然として避ける必要があります。この課題は、mungesは、指定されたパスワード(という非常に簡単なプログラムをコーディングについてですM odify U ntil N OT Gは uessed Eを asily)。 入力 単語abcdefghijklmnopqrstuvwxyz。アルファベットで書かれた文字列です。文字が小文字でも大文字でも構いません。 ムング 同じ文字の繰り返しシーケンスを、その文字が繰り返された回数が前に付いたそれ自体に変更します(LLLLwith 4L) 最初の変更aで@ 最初の変更bで8 最初の変更cで( 最初の変更dで6 最初の変更eで3 最初の変更fで# 最初の変更gで9 最初の変更hで# 最初の変更iで1 で2番目iを変更する! 最初の変更kで< 最初の変更lで1 で2番目lを変更するi 最初の変更oで0 最初の変更qで9 最初の変更sで5 で2番目sを変更する$ 最初の変更tで+ 最初の変更vで> で2番目vを変更する< 最初の変更wでuu で2番目wを変更する2u 最初の変更xで% 最初の変更yで? ルール1は、それ以上適用できなくなるまで、必要な回数だけ適用する必要があります。その後、残りのルールが適用されます。 出力変更された単語 例 codegolf -> (0639o1# programming -> pr09r@2m1ng puzzles -> …
17 code-golf 

14
与えられた因子の積としての最小整数
最近、素数/素数の因数分解に関連する多くの課題がありました。 与えられた: 正の整数n、および 正の整数の空でないリスト f およびが要素の非負の整数乗の積であるiような最小の整数を見つける完全なプログラムまたは関数を記述します。i >= nif 例: としn = 11, f = [2, 3, 5]ます。 最初のいくつかの製品は次のとおりです。 1 = 2^0 * 3^0 * 5^0 2 = 2^1 * 3^0 * 5^0 3 = 2^0 * 3^1 * 5^0 5 = 2^0 * 3^0 * 5^1 4 = 2^2 * …

3
乗算から加算への累乗
2つの整数間の乗算は、次のように一連の加算に減らすことができます。 3 * 5 = 3 + 3 + 3 + 3 + 3 = 5 + 5 + 5 べき乗(上昇電力にbが)また、乗算のシリーズに低減することができます。 5 ^ 3 = 5 * 5 * 5 したがって、乗算式を作成することにより、べき乗を一連の加算に減らしてから、一連の加算に減らすことができます。たとえば、5 ^ 3(5立方体)は次のように書き換えることができます。 5 ^ 3 = 5 * 5 * 5 = (5 + 5 + 5 + 5 …

10
同様の力を持つ数字
整数p> 1が与えられた場合、qの素因数分解の指数のリストが素因数の順序や値に関係なくpの指数と同じになるように、最小整数q> pを見つけます。 例 p = 20の素因数分解は2 2 x 5 1です。素因数分解で同じ指数を持つpより大きい最小整数はq = 28 = 2 2 x 7 1です。 p = 2500の素因数分解は2 2 x 5 4です。素因数分解で同じ指数を持つpより大きい最小整数は、q = 2704 = 2 4 x 13 2です。 ルール 入力は1より大きい整数であることが保証されています。 これはcode-golfであるため、バイト単位の最短回答が優先されます。 テストケース Input | Output ------+------- 2 | 3 20 | 28 103 | …

11
サイクロトミック多項式
背景(定義にスキップ) オイラーは、複素数に関する美しい定理を証明しました:e ix = cos(x)+ i sin(x)。 これにより、de Moivreの定理が証明しやすくなります。 (e ix)n = e i(nx) (cos(x)+ i sin(x))n = cos(nx)+ i sin(nx) 2次元ユークリッド平面を使用して複素数をプロットできます。水平軸は実数部を表し、垂直軸は虚数部を表します。このように、(3,4)は複素数3 + 4iに対応します。 極座標に精通している場合、極座標では(3,4)は(5、arctan(4/3))になります。最初の数値rは、原点からのポイントの距離です。2番目の数値θは、正のx軸からポイントまでの反時計回りの角度です。その結果、3 = rcosθおよび4 = rsinθです。したがって、我々は再び= R +cosθとsinθとRI = R(cosθとsinθと+ I)として3 + 4Iを書き込むことができるIθを。 複素方程式z n = 1を解きましょう。nは正の整数です。 z = reiθとします。次いで、Z N = R N E inθ。原点からのz nの距離はr …

21
マトリックスのデルタを合計する
バックグラウンド 整数の配列のデルタは、連続する要素の差を取得することにより形成される配列です。たとえば[1, 2, 4, 7, 3, 9, 6]、次のデルタがあります[1, 2, 3, -4, 6, -3]。 ここで、整数の行列のデルタを、各行とそれに含まれる各列のデルタとして定義します。 例として: Row deltas: 1 2 3 4 │ => [1, 1, 1] 4 5 6 7 │ => [1, 1, 1] 7 1 8 2 │ => [-6, 7, -6] Column deltas (the matrix' columns have …

11
エチオピアの乗算
この質問は、この答えに触発されています。偶然にも、私は子供の頃エチオピア乗法を使用していましたが、最近までその方法の名前を知りませんでした。 エチオピアの乗算は、加算、倍増、および半分だけを使用して整数を乗算する方法です。 方法: 乗算する2つの数値を取得し、2つの列の上部に書き留めます。 左側の列では、値1を書き込むまで、最後の数値を繰り返し半分にし、残りをすべて破棄し、同じ列の最後の結果の下に結果を書き込みます。 右側の列で、最後の数字を繰り返し2倍にして、以下の結果を書きます。左側の列に1が表示されているのと同じ行に結果を追加すると停止します。 作成されたテーブルを調べて、左側の列の値が偶数である行を破棄します。残っている右側の列の値を合計して、元の2つの数値を乗算した結果を生成します。 例:17 x 34 17 34 最初の列を半分にする: 17 34 8 4 2 1 2列目を2倍にするには: 17 34 8 68 4 136 2 272 1 544 最初のセルが偶数の取り消し線は、これらの数値を角括弧で囲んで右側に配置します。 17 34 8 [68] 4 [136] 2 [272] 1 544 右側の列の残りの数値を合計します。 17 34 8 [68] 4 [136] 2 [272] …

23
単純な複雑さ
出力 ########## ### ## #### ########### #### ## ###### ####### ######### ##### ##### ##### ######## ####### ########## #### ############### ## ### ##### ######## ########### ### ## ######## ####### #### ###### ############### ####### ###### #### ####### ###### ## ########### #### ####### ####### #### ########### ## ###### ####### #### ###### ####### ############## …

5
壁にASCIIビール91本
多数のボトル(および棚)が欠落しているビールのボトルのスタックを出力する単一の整数を指定xし0 <= x <= 91ます。簡単にするために、最初の6本のボトルと、最初の各入力の内容を示します。 ボトルのスタックは次のとおりです。各数字は、その入力に対して削除する必要のあるボトルです(1から始まる): https://pastebin.com/wSpZRMV6 99はボトルのスタックが不安定になるため、99ではなく91を使用していることに注意してください。 例 ボトルが0個不足している(x=0): |=| | | | | / \ . . |-----| | | |-----| |_____| ============= |=| |=| | | | | | | | | / \ / \ . . . . |-----| |-----| | | | | |-----| …

2
失われたRNGを作成する
Lostは、IPの開始位置と方向が完全にランダムな2次元プログラミング言語です。 これにより、決定論的なロストプログラムを作成することが非常に困難になります。しかし、今日は決定論的なプログラムを書いているのではなく、RNGを書いています。 入力を受け取らず、1桁(0、1、2、3、4、5、6、7、8、または9)を出力するロストプログラムを作成します。すべての数字は出力される確率が等しくなります。Lostの開始位置と方向がランダム性の唯一のソースであるため、これを行う唯一の方法は、ソースのすべての位置に0〜9の異なる数字を出力させ、各数字を同じ数字で出力することです。 -Qフラグを使用してこのpythonスクリプトにパイピングすることにより、各桁の確率を計算できます import sys a=sys.stdin.read().split()[:-1] for x in range(10):print x,':',a.count(`x`) print[x for x in a if x not in list("1234567890")] オンラインでお試しください! これはコードゴルフであるため、回答はバイト単位でスコアリングされ、バイト数が少ない方が優れています。 ロストの概要 Lostは、クラインの型から多くを奪う、暗黙のIO 2D言語のラッピングです。失われたコマンドの機能の簡単なチートシートを次に示します \、/、|ミラーIP <、^、>、vの方向でipポイント [IPが東に移動している場合、IPを反映します。]IPが水平方向に移動している場合になります ]IPが西に移動している場合、IPを反映します。[IPが水平方向に移動している場合になります ! 次の操作をスキップします ? スタックの一番上から飛び出し、ゼロでない場合はジャンプします : スタックの最上部を複製します $ スタックの上位2つのアイテムを交換します ( スタックからポップし、スコープにプッシュします ) スコープからポップしてスタックにプッシュします 0- 9プッシュnはスタックの最上部へ "文字列リテラルを開始および終了します。文字列リテラルでは、コマンドは実行されず、代わりに文字値がスタックにプッシュされます。 + 上位2つの数字を追加します * 上位2つの数値を乗算します …
17 code-golf  random  lost 

30
消える要素
文字列Sとインデックスのリストを指定すると、その結果をの新しい値として使用しながら、の各インデックスの要素を削除してX変更SしSますS。 例えば、与えられたS = 'codegolf'とX = [1, 4, 4, 0, 2]、 0 1 2 3 4 5 6 7 | c o d e g o l f | Remove 1 c d e g o l f | Remove 4 c d e g l f | Remove 4 c …
17 code-golf  string  array-manipulation  code-golf  string  ascii-art  code-golf  number  sequence  pi  code-golf  number  array-manipulation  code-golf  string  ascii-art  code-golf  math  number  game  code-golf  math  sequence  polynomials  recursion  code-golf  math  number  sequence  number-theory  code-golf  permutations  balanced-string  code-golf  string  ascii-art  integer  code-golf  decision-problem  hexagonal-grid  code-golf  ascii-art  kolmogorov-complexity  code-golf  number  code-golf  matrix  binary-matrix  code-golf  math  statistics  code-golf  string  polyglot  code-golf  random  lost  code-golf  date  path-finding  code-golf  string  code-golf  math  number  arithmetic  number-theory  code-golf  tetris  binary-matrix  code-golf  array-manipulation  sorting  code-golf  number  code-golf  array-manipulation  rubiks-cube  cubically  code-golf  grid  optimization  code-golf  math  function  code-golf  string  quine  code-golf  ascii-art  grid  code-golf  decision-problem  grid  simulation  code-golf  math  sequence  code-golf  path-finding  code-golf  ascii-art  grid  simulation  code-golf  number  whitespace  code-golf  sequence  code-golf  sequence  code-golf  sequence  integer  code-golf  math  game  code-golf  internet  stack-exchange-api  code-golf  sequence  code-golf  internet  stack-exchange-api  code-golf  math  factoring  code-challenge  sequence  polyglot  rosetta-stone  code-golf  string  browser  code-golf  date  code-golf  base-conversion  code-challenge  cops-and-robbers  hello-world  code-golf  cops-and-robbers  hello-world 

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