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

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

7
ソースコードの変容
mbomb007は、自己切断プログラムを作成するように依頼しました。それは興味深い挑戦ですが、私は個人的に自分のプログラムが自傷行為になることを奨励したくありません。私は、すべてのプログラムの中心にあるのは、飛び出すのを待っている美しい蝶だと思うのが好きです。 そのため、初めてのCode Golfチャレンジでは、Stack Exchangeにバタフライを変身させます。プログラムは、独自のコードを入力および出力として受け入れ、I am a caterpillar!その後に同じ言語の別のプログラムのコードが続く必要があります(出力間に仕切りを入れても入れなくてもかまいませんが、蝶について話しているので、可愛さは重要です!)。この2番目のプログラムは出力するはずですI am a beautiful butterfly! 変態:このプログラムは自分自身を変更する必要があるため、入力として渡されます。私は、I am a caterpillar!ソースコードを出力するprintステートメントに他ならない退屈なネストされたプログラムが欲しくありません。コード自体を変形させる必要があるため、最も退屈な受け入れ可能な答えはI am a caterpillar、印刷し、入力から文字列を切り取って(これはコードである)、それを印刷するものです。もちろん、これは書くための非常にトリッキーな小さな要件であるため、「挑戦の精神」と考えるべきです。正式な要件は、「プログラムにプログラムと同じ長さのランダムな文字列が与えられているI am a butterfly場合、2番目のプログラムの実行時に5%未満の確率で印刷されるはずです」に設定されます。 概要: 入力として独自のコードを提供するI am a caterpillar!と、ソースコードのブロックが続く(間に区切り文字があるかどうかにかかわらず)印刷するプログラムを作成します。 ソースコードのこの2番目のブロックは、同じ言語としてコンパイル/解釈されると、印刷されます I am a beautiful butterfly! プログラムに入力として独自のソースコードが渡されず、代わりに独自のコードと一致しないランダムな文字列が与えられる場合、結果はコンパイル/解釈に失敗するかI am a butterfly!、少なくとも95%のランダムで印刷されない文字列(精神:入力から独自のソースコードを読み取り、それをつなぎ合わせてバタフライにします)。 変身のアイデアの精神を守り、独自のコードを変更している限り、これを証明していないのは安心ですが、入力を使用して回避するために抜け穴ゲームをプレイしようとしている場合は、それを証明するために。 標準的な抜け穴が適用されます これらの美しさで判断したいのですが、それは明らかに非定量的なアプローチなので、通常の「バイト数」ルートを使用して判断できます ボーナス:-20%-プログラムの最初の3文字と一致しない3文字の文字列を選択します。caterpillarプログラムを実行しますが、最初の3文字が指定された文字に変更されるように入力を変更する場合は、I am Batman!代わりに印刷してください。常にバットマンになりましょう。(これには同じランダムな文字列ルールが適用されます...変態!) 簡単な例(python): """ print "I am a beautiful butterfly!" …

5
4バンドの色分けされた抵抗の抵抗を計算する
抵抗器は一般に、抵抗値をオームで識別するために使用される色分けされたバンドを持っています。この課題では、通常の4バンド、タン、アキシャルリード抵抗のみを考慮します。それらを次のように表現します。 xyzt ここで、x最初の有効数字の最初のバンドであり、y第二の有効数字のための第2バンド、あるz乗算器のための第3バンド、及びtための第四の帯域であるトレランス。 それぞれはxyzt、バンドの色を短縮する文字を表します。 K = Black N = Brown R = Red O = Orange Y = Yellow G = Green B = Blue V = Violet A = Gray W = White g = Gold s = Silver _ = None したがって、たとえば、NKOg特定の抵抗器があります。 抵抗は、次の表を使用して計算できます。 表が示すように: xとyを除く任意の文字することができg、sと_。 z以外のものを指定できます_。 私たちは、制限するだろうtだけであることをg、sまたは_。 (これは、私たちとまったく同じ抵抗器セットを扱う便利な抵抗計算機です。) …

30
Bogosortを実装する
数独を解くのは難しいですか?でも、ブルートフォースバージョン?これは少し簡単なコーディング演習です。私は願います。:-P bogosortを実装する最短の関数を作成します。具体的には、関数は次のことを行う必要があります。 入力として配列(またはあなたの言語の同等物)を取る 要素が並べ替えられているかどうかを確認します。もしそうなら、配列を返します そうでない場合は、要素をシャッフルし、再度開始します 最短のエントリーが勝ちです。同点の場合、カスタムコンパレータ(および/または擬似乱数ジェネレータ)をサポートする関数が優先されます。残りの関係は、以前の提出を支持することによって解決されます。 明確化:もちろん、それらを注文する方法がある限り、任意の要素タイプを使用できます。また、シャッフルは均一でなければなりません。この「私はそれをクイックソートしてシャッフルしたと呼ぶ」ビジネスはありません。:-)

30
ペダルのコサイン
上司からコサイン関数を書くように言われました。数学のオタクとして、私の心はすぐに適切なテイラーシリーズを思いつきました。 cos(x) = 1 / 0! - x^2 / 2! + x^4 / 4! - x^6 / 6! + ... + (-1)^k x^(2k) / (2k)! + ... しかし、私の上司はとてもうるさいです。彼は、計算するテイラー級数の項の数を正確に指定できるようにしたいと考えています。この関数を書くのを手伝ってもらえますか? あなたのタスク to xからの浮動小数点値とより小さい正の整数が与えられた場合、上で与えられたのテイラー級数の最初の項の合計を計算します。02 pin100ncos(x) これはcode-golfなので、最短のコードが優先されます。入力と出力は、標準的な方法で取得できます。標準的な抜け穴は禁止されています。 ノート xとの間に明確な区切りがある限り、入力は任意の合理的な形式で行うことができますn。 入力と出力は浮動小数点値である必要があります。少なくとも、標準の丸め規則で単精度IEEE浮動小数点数を使用して式を計算するのと同じくらい正確です。 使用されている言語に理にかなっている場合、正確な有理量を使用して計算を実行できますが、入力と出力は10進数形式のままです。 例 x | n | Output ----+----+-------------- 0.0 | 1 | 1.0 0.5 …

20
Stewieのシーケンス:+ *-/ + *-/
4つの基本的な操作、加算+、乗算*、減算-、除算/(整数ではなく浮動)を使用しましょう。 Stewieのシーケンスは次のように定義されます。 x = [x(1), x(2)] // Two initial numbers (one indexed) x(3) = x(1) + x(2) x(4) = x(2) * x(3) x(5) = x(3) - x(4) x(6) = x(4) / x(5) x(7) = x(5) + x(6) ... and so on. チャレンジ: 入力として2つの非負整数(x(1), x(2))と1つの正整数Nを取ります。 x(1)そしてx(2)、シーケンスの最初の2つの番号でNあり、出力する必要があるシーケンスの長さです。(リストを0ベースにすることもできます。この場合N、長さよりも1つ少なくなります)。 あなたはそれを仮定することはできませんx(2) >= x(1)。 N常に>21ベースの場合(>10ベースの場合)になります。 ゼロによる除算エラーを処理する必要はありません。 …

30
このチャレンジでは「+」文字を使用します
あなたのタスク:番号を指定すると、中心から離れた文字でnある「+」記号が生成さnれます。これがわかりにくい場合は、テストケースを確認してください。 入力の標準方法:出力は文字列または印刷でなければなりません。標準の抜け穴が適用されます。 Input: 1 Output: + ] 1 away from center `+`. Input: 2 Output: + ] 2 away from center `+`. +++ ] 1 away from center `+`. + Input: 3 Output: + ] 3 away from center `+`. + +++++ + + これはcode-golfなので、最短のコードが勝ちます!

4
輪郭に沿って矢印を移動する
サンドボックス 一定の時計回りまたは反時計回りの方向に一貫した矢印(各輪郭には独自の方向があります)と正の数nの矢印を持つ、閉じた重複しない2D輪郭(対角線上でも少なくとも1つのスペースで分離)のセットが与えられた場合、矢印を移動しますn輪郭に沿ってそれぞれの方向にステップします。矢印は、> v < ^それぞれ右、下、左、および上方向で表されます。他のキャラクターは、-(水平)、|(垂直)、+(角)です。矢印が角にある場合、矢印は現在の方向を維持し、方向転換が行われた後にのみ変更します。 任意の2つの角の間には常に直線のセグメント(またはスペース)があります(+-+水平の場合と垂直の場合と同様)-つまり、急Uカーブは禁止されています。コーナー間のセグメントは垂直または水平のいずれかであり、コーナーでの屈曲は常に90度です。 入力: 正の整数-- nステップ数 等高線のASCII表現-複数行の文字列、文字列のリスト、文字のリストなどです。 出力: すべての矢印が同じ輪郭でn、各輪郭の全体方向にステップがシフトしました。 テストケース: 1。 入力: n = 1 +----->-> | | | v---+ | | +---<-------+ 出力: +------>+ | v | +>--+ | | +--<--------+ 2。 入力: n = 2 +-----+ +---+ | | | | +-->--+ | v | …

14
元のビットチェック
範囲内の2つの整数取るプログラム/機能書くに包括的に、数字のバイナリ形式かどうかを返しますが、正確に一つは、異なるビットされています。000255255255 たとえば、とはバイナリ形式とがあり、これらは1ビット離れています。同様に、とはand であるため、trueを返します。1110000000000100000000152152152242424010011000000011000 ただし、コードは初期状態でなければならず、プログラムのいずれかのビットが反転した場合、エラーがスローされます。たとえば、プログラムがシングルバイトa(01100001)の場合、8つの変更可能なプログラムすべて: á ! A q i e c ` エラーをスローする必要があります。バイト単位で変更していることを確認してください(たとえば、実際の2バイト文字ではなく、実際にáはバイト表します)。225225225á テストケース: 0,1 => Truthy 1,0 => Truthy 152,24 => Truthy 10,10 => Falsey 10,11 => Truthy 11,12 => Falsey 255,0 => Falsey ルール: 可能なプログラム(バイト数* 8)が多数あるため、プログラムが適切に初期状態であることを検証できるテストフレームワークを提供するか、または初期状態の完全な証拠を提供します。 投稿する前に、プログラムが有効であることを確認してください。 出力は、真実/偽(どちらの方法でも問題ありません)であるか、2つの異なる非エラー値である必要があります エラーには、ランタイム、コンパイラ、インタプリタなどがあります。


12
レターボックスバリデーター
New York Timesには、Letter Boxedと呼ばれる毎日のオンラインゲームがあり(リンクはペイウォールの背後にあります。ゲームについてもここで説明します)、広場に次のように表示されます。 3文字の4つのグループが与えられます(各グループは写真の片側に対応します)。文字が2回表示されません。ゲームの目的は、次のような12文字(およびそれらの文字のみ)で構成される単語を見つけることです。 各単語は少なくとも3文字の長さです。 連続した文字を同じ側から出すことはできません。 単語の最後の文字は、次の単語の最初の文字になります。 すべての文字は少なくとも1回使用されます(文字は再利用できます)。 このチャレンジでは、文字と単語のリストが与えられます。目標は、単語のリストが有効なレターボックスソリューションであるかどうかを確認することです。 入力 入力は、(1)3文字の4つのグループと(2)単語のリストで構成されます。任意の適切な形式にすることができます。 出力 単語のリストがそれらの4×3文字のレターボックスチャレンジに対する有効なソリューションである場合は真理値、それ以外の場合は偽値です。 テストケース 文字のグループ={{I,C,O}, {M,R,E}, {G,N,S}, {A,P,L}}。 真実の価値 巡礼、囲い 作物、セール、リーン、NOPE、ENIGMA 偽値 PILGRIMAGE、ECONOMIES(同じ側にいるのでCOを持つことはできません) CROPS、SAIL、LEAN、NOPE(GとMは使用されていません) PILGRIMAGE、ENCLOSURE(Uは12文字のうちの1つではありません) ENCLOSE、PILGRIMAGE(最初の単語の最後の文字は2番目の単語の最初の文字ではありません) 詐欺、SO、ORGANISE、ELOPE(すべての単語は3文字以上でなければなりません)。 このチャレンジでは、単語が有効かどうか(辞書の一部)は気にしないことに注意してください。 得点: このcode-golfは、バイト単位の最低スコアが勝ちです!

8
+と*を使用して1の数を見つけて数を取得
前書き あなたの目標は、入力値を取得するために加算または乗算する必要があるものの最小数を見つけることです。これはA005245です。 入力 一つの正の整数N。 出力 Nを取得するために追加/乗算する必要がある最小数。 サンプル入力 7 サンプル出力 6 説明 (1+ 1+ 1)*(1+ 1)+ 1= 7 これには61つが必要なので、出力は6 テストケース 1 1 2 2 3 3 5 5 10 7 20 9 50 12 これはコードゴルフの挑戦なので、バイト数が最も少なくなります。

12
𝗠𝗮𝘁𝗵𝖲𝖺𝗇𝗌𝗔𝗹𝘁𝗲𝗿𝗻𝗮𝘁𝗼𝗿
前書き 単語を2つの異なるUnicodeフォントに変換してみてください。 チャレンジ あなたの仕事は、入力文字列をユニコード文字に変換することです。 すべての大文字の単語は、小文字の𝗠𝗮𝘁𝗵𝗦𝗮𝗻𝘀𝗕𝗼𝗹𝗱単語になるはずです。 例:WORD->𝘄𝗼𝗿𝗱 すべての小文字の単語は𝖬𝖺𝗍𝗁𝖲𝖺𝗇𝗌単語になるはずです 例:other words->𝗈𝗍𝗁𝖾𝗋 𝗐𝗈𝗋𝖽𝗌 大文字と小文字が混在する単語はすべて変更しないでください 例:Mixed Case Words->Mixed Case Words ピリオドとスペースは変更しないでください。 単語はスペースまたはピリオドで区切られます 例(強調表示されているものは単語です): Hello。This is a word。S。O。are these 入力:文字、スペース、およびピリオドを含む文字列([A-Za-z .]+) 出力:フォーマットされた文字列 これはゴルフの挑戦なので、最低バイト数が勝ちます 入力と出力の例 入力: これは、入力される可能性のあるSTRINGの例です。複数の文を含めることができます。 出力: この𝗂𝗌𝖺𝗇𝖾𝗑𝖺𝗆𝗉𝗅𝖾𝘀𝘁𝗿𝗶𝗻𝗴𝗍𝗁𝖺𝗍𝖼.𝗈.𝘂.𝗹.𝖽。𝖻𝖾𝗶𝗻𝗽𝘂𝘁𝘁𝗲𝗱。𝖼𝖺𝗇𝖼𝖺𝗇𝗆𝗎𝗅𝗍𝗂𝗉𝗅𝖾𝗌𝖾𝗇𝗍𝖾𝗇𝖼𝖾𝗌。 参照 Math Sans Bold:𝗮𝗯𝗰𝗱𝗲𝗳𝗴𝗵𝗶𝗷𝗸𝗹𝗺𝗻𝗼𝗽𝗾𝗿𝘀𝘁𝘂𝘃𝘄𝘅𝘆𝘇(文字120302から120327) Math Sans:𝖺𝖻𝖼𝖽𝖾𝖿𝗀𝗁𝗂𝗃𝗄𝗅𝗆𝗇𝗈𝗉𝗊𝗋𝗌𝗍𝗎𝗏𝗐𝗑𝗒𝗓(文字120250から120275)

26
ペル方程式の基本解
正方形ではない正の整数nnnが与えられた場合、関連するペル方程式の基本解を見つける(x 、y)(バツ、y)(x,y) バツ2- N ⋅ Y2= 1バツ2−n⋅y2=1x^2 - n\cdot y^2 = 1 詳細 基本は、が最小で正の方程式を満たす整数ペアです。(数えられない些細な解が常にあります。)(x 、y)(バツ、y)(x,y)x 、yバツ、yx,yバツバツx(x 、y)= (1 、0 )(バツ、y)=(1、0)(x,y)=(1,0) は正方形ではないと仮定できます。nnn 例 n x y 1 - - 2 3 2 3 2 1 4 - - 5 9 4 6 5 2 7 8 3 8 3 1 9 …

18
長いクインラインに立ち向かう
または:垂直クインを作成します に触発さ長い列に立ち向かいます。 あなたの仕事は、可能な限り短い線の長さで垂直クインを構築することです。 得点 最短の行長(改行を除く)が勝ち、コードゴルフの基準がタイブレーカーとして使用されます。 行の長さは、改行文字を除いてプログラムで最も長い行として決定されます。 例えば: $_= Q. P 行の長さは3で、バイト数は8です。 Q $ _ P 行の長さは1で、バイトカウントは7です(末尾の改行がないと仮定)。 ルール クインはコミュニティのクインの定義を満たさなければなりません。 標準的な抜け穴は禁止されています。

8
Codeium Golfide
この課題では、あなたの仕事は陰イオンと陽イオンを取り、化合物の化学式を出力することです。入力は次の規則に従います。 陰イオンと陽イオン、例えば表現(任意の順序で)2列に乗りF、NH_4、またはをAl。 各イオンの電荷を取り込むには、文字列の一部としてキャレット(例:)で区切るF^-1か、追加の数値引数を取り込むことができます。 注:数値入力タイプが署名されている限り、陰イオンの電荷は負の数として渡されます。 シンボルは常に本物であり、正確に課金されます。 出力は次のルールに従う必要があります。 _下付き文字に使用:Fe 2 O 3はになりますFe_2O_3。 最初にカチオン:ClNaではなくNaCl。 中性分子:リチウム2 O、ではないのLiOかのLiO - 。 可能な最低係数:Fe 4 O 6ではなく、Fe 2 O 3。 下付き文字なし:NaCl、Na 1 Cl 1ではありません。 いいえ変速ない:NH 4 OH、NHない5 O. 条件付き括弧: 単一原子イオン(Mg(Cl)2ではなくMgCl 2)に括弧を使用しないでください。 唯一の分子当たりのイオンの一つがある場合は、括弧を使用しないでください:KClO 3、ないK(のClO 3)。 ことができる:分子イオンの2つ以上存在する場合に使用括弧をDO 3(PO 4)2できない、3 PO 4 2又はて3 P 2 O 8。 追加の入力および出力のサンプルを次に示します。 Input Output Fe^+3, …

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