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

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

30
ボックスを動的に作成する
チャレンジ: ASCIIボックスの長方形を描きます:[] ルール: 幅と高さの入力を受け取ります あなたはこれらの両方が数字であると仮定することができます 改行文字を含む文字列を生成する必要があります、\ n 例: 2、2: [][] [][] 2、3: [][] [][] [][] 最少バイト数が勝ちます。

12
縮退を逆にして追加する
イントロ リバースと追加は、見た目と同じくらい簡単nで、逆の順序で数字に追加します。(例:234 + 432 = 666)。 このプロセスを繰り返し適用すると、いくつかの数字は最終的に素数にヒットし、一部は素数に到達しません。 例 私は現在持っています 11431担当者 11431 is not prime 11431 + 13411 = 24842 which is not prime 24842 + 24842 = 49684 which is not prime 49684 + 48694 = 98378 which is not prime 98378 + 87389 = 185767 which is prime! この数は素数に当たります …

19
単語のバイナリ分割合計を計算する
文字列を取り、 s入力可能な印刷可能なASCII含むを取得し、その「バイナリ分割合計」を出力します。説明が必要ですか? バイナリ分割合計はどのように取得しますか? A4次の説明では、文字列を例として使用します。 文字をバイナリに変換し、各文字を7ビットASCII文字として扱います A -> ASCII 65 -> 1000001 4 -> ASCII 52 -> 0110100 2進数を新しい2進数に連結します A4 -> 1000001 & 0110100 -> 10000010110100 新しい2進数をチャンクに分割します。チャンクは左に配置1できません0。連続したを分割しないでください1。 10000010110100 -> 100000, 10, 110, 100 これらの2進数を10進数に変換します 100000, 10, 110, 100 -> 32, 2, 6, 4 これらの数値の合計を取ります。 32 + 2 + 6 + 4 …

20
最初のブラケットマッチを見つける
これは、Brain-Flakの誕生日に至る一連の課題の1つでした。詳細はこちらをご覧ください。 チャレンジ この課題の目的は、完全に一致するブラケットの文字列から一致するブラケットの最初のペアを見つけること()[]{}<>です。完全に一致する文字列のDJMcMayhemの定義を借用するには: この課題のために、「括弧」は次の文字のいずれかです()[]{}<>。 次のように、開始ブラケットと終了ブラケットが正しい順序であり、その中に文字がない場合、一対のブラケットは「一致」とみなされます。 () []{} または、その中のすべてのサブ要素も一致する場合。 [()()()()] {<[]>} (()()) サブエレメントは、いくつかのレイヤーの深さにネストすることもできます。 [(){<><>[()]}<>()] <[{((()))}]> ブラケットの各ペアに正しい順序で正しい開始ブラケットと終了ブラケットがある場合にのみ、文字列は「完全一致」と見なされます。 入力 入力は、文字のみを含む単一の空でない文字列またはchar配列で構成()[]{}<>され、完全に一致することが保証されます。I / Oデフォルトに対応する合理的な方法で入力を行うことができます。 出力 プログラムまたは関数の出力は、最初の括弧を閉じる括弧のインデックスになります。出力は0、1インデックス化されているか、どちらかでなければなりません。繰り返しますが、出力はi / oのデフォルトに対応する合理的な方法で行われます。 テストケース Input 0-indexed 1-indexed () 1 2 (<>) 3 4 <[]{<>}> 7 8 {}{}{}{} 1 2 [[]<>[]] 7 8 これはcode-golfで、最少バイトが勝ちます!

10
文字列を点字化する
いいえ、これはASCIIテキストを点字に変換するのではありません。 2つありますUnicodeに 8 = 256 点字パターンがあります。(「点字」とは、8セルを意味します) 待って ASCII文字はいくつありましたか? 2 7 = 128? それでは、ASCIIを点字に変えてみましょう。 ASCIIから点字への道 各セルがビットを表し、各セルが「パンチ」されているかどうかがわかります。 これで、各セルを割り当てて、ASCII文字のビットをバイナリとして表すことができます。 (1 )(16 ) (2 )(32 ) (4 )(64 ) (8 )( - ) * ( - )は空白です これでASCIIを点字に変換できます。たとえば、A(65 = 01000001)は次と等しい⠡。 例 Input -> Output Braille! -> ⠢⠺⠱⡱⡴⡴⠵⠑ (Upscaled) .. .o o. o. .. .. …

30
n番目の文字は最後の文字のn番目と同じですか?
インスピレーション開始は終了と等しいか 文字列sと整数nを指定すると、nth char in sがnend char inのth と等しいかどうかについて、true / falseyを出力しsます。 入力 空ではない文字列と整数。0ベースのインデックス付けまたは1ベースのインデックス付けを使用できます。整数は、文字列に基づいて有効であることが保証されています。たとえば、文字列が「supercalifragalistic123」の場合、整数は、1ベースのインデックス付けの場合は1〜23、0ベースのインデックス付けの場合は0〜22です。nの長さの半分よりも大きくなる可能性があることに注意してくださいs。 入力は印刷可能なASCIIに制限されています。 出力 nthの値sがのn最後の値からのth と等しいかどうかに基づく真偽値s。 最後の文字は、0ベースのインデックス付けでは位置0に、1ベースのインデックス付けでは位置1にあることに注意してください。文字列とその逆を比較すると考えてください。 テストケース 0インデックス付き "1", 0 Truthy 1 == 1 "abc", 1 Truthy b == b "aaaaaaa", 3 Truthy a == a "[][]", 1 Falsey ] != [ "[][]", 0 Falsey [ != ] "ppqqpq", …
22 code-golf  string 

11
位置計算をしましょう!
ウィキペディアの記事から: 位置算術(ラテン算術localis)は、加算的(非位置)2進数字システムであり、John Napierが論文Rabdology(1617)の計算手法として、記号的およびチェス盤のようなグリッド上で探索しました。 何? ロケーション数字は、アルファベットの文字を使用して数字を書く方法です。 バイナリ表記はまだ標準化されていなかったため、Napierはロケーション番号と呼ばれるものを使用してバイナリ数を表しました。Napierのシステムは、符号値表記を使用して数値を表します。英語のアルファベットの連続した文字を使用して、2の累乗を表します。a = 2 ^ 0 = 1、b = 2 ^ 1 = 2、c = 2 ^ 2 = 4、d = 2 ^ 3 = 8、e = 2 ^ 4 = 16など。 例 ab 基数10で= 1 + 2 = 3 aabb = 10 + 1 + …

12
分割して分割して征服する
時々、目の前に出てくる数字をなんとなくしようとするとき¹、しばらくして、思ったより簡単だと気づきました。テイク2156例えば:最終的には、両方のことを私に起こる21と56の倍数である7ので、確かに、とは2156 = 21 x 100 + 56またの倍数です7。 あなたの仕事は、この種の偶然の一致により因数分解しやすい数字を識別するコードを書くことです。 より正確に: n入力として正の整数を取り、2つに切り分けてそれぞれが2の倍数である2つの正の整数を生成できる除数d(より大きい1)が存在する場合、真理値を返すプログラムまたは関数を記述します。そうでない場合は、偽の値を返します。nd 「2つにチョップ」とは、あなたが考えることを意味します。nある時点で前半と後半に分割され、他の2つの10進整数を生成する通常の10進表現です。2番目の整数の先頭にゼロが付いていても問題ありません(ただし、正の整数である必要があるため、分割1230して有効123で0はないことに注意してください)。 真実の値と偽の値は入力に依存します。たとえば、選択した言語でゼロ以外の整数が真である場合、除数dまたはn(またはnそのこと自体)。 たとえば、セット内の少なくとも2桁の偶数 {2, 4, 6, 8}があると、真の値が得られます。最初の偶数の後に分割するだけです。また、たとえば、n1桁の数値と同様に、素数は偽の値を生成します。 素因数を考慮するだけで十分です。 d。 入力が有効であると仮定できます(つまり、正の整数)。 これはコードゴルフですであるため、バイト単位の最短コードが優先されます。しかし、すべての言語のソリューションは歓迎されているため、全体の最短コードだけでなく、各言語の最短コードを目指して努力することができます。 テストケース (真実または偽の値のみを出力する必要があります。以下の注釈は説明のためのものです。)真実の値を生成する入力は次のとおりです。 39 (3 divides both 3 and 9) 64 (2 divides both 6 and 4) 497 (7 divides both 49 and 7) 990 (splitting into 99 and 0 …

30
パリティを交換する
仕事 正の整数が与えられた場合n、出力n+1if nは奇数、出力n-1if nは偶数です。 入力 正の整数。整数は言語の処理能力の範囲内であると想定できます。 出力 上記で指定された正の整数。 テストケース input output 1 2 2 1 3 4 4 3 5 6 6 5 7 8 8 7 313 314 314 313 得点 これはcode-golfであるため、バイト単位の最短回答が優先されます。 標準の抜け穴が適用されます。 参照資料 OEIS A103889
22 code-golf  number 

14
数字の安全性
正の整数の周期的シーケンスがn、シーケンス内で発生するすべての整数について、n2つの連続するオカレンスの間に他の整数を超えないという特性があるかどうかを判別するプログラムを作成しnます。 たとえば、2, 3, 5, 2, 3, 6, 2, 3, 5, 2, 3, 6, ...このプロパティを持っている:の連続発生のすべてのペア2のようなそれらの間にほとんど二つの整数(に持っている2, 3, 5, 2と2, 3, 6, 2、の連続発生のすべてのペア3それらの間の最も3つの整数で持っている;そして同じのため5と6。 ただし、2, 3, 5, 2, 3, 4, 2, 3, 5, 2, 3, 4, ...このプロパティはありません:の2つの連続したオカレンス4、つまり4, 2, 3, 5, 2, 3, 4、間に4つ以上の整数があります。 入力:正の整数の周期的シーケンスの合理的な表現。たとえば、などの有限リスト{2, 3, 5, 2, 3, 6}は、2, 3, 5, 2, 3, 6, …

16
画像のRGBチャンネルを抽出する
入力として(おそらくRGBトリプレットで)画像を入力するか、入力としてファイル名を使用して(画像に特定のファイル名があり、拡張子がない場合)、画像の単一のカラーチャンネルを表す画像を出力します。 また、出力するチャネルを表す別の入力を取得します。入力は、3つの異なるシンボルのいずれかです。ただし、記号は文字列または数字である必要があります。ただし、行列を入力として配列に適用することはできません。({1, 0, 0}、またはなど{0, 1, 0})。 <input>入力画像のチャンネルを出力します。ファイルに保存するか、RGBペアのセットを出力します。 プログラムは画像のサイズ(px)に制限がなく、画像形式として.png、.jpg/ .jpeg/ .JPG、またはRGB 3成分のいずれかをサポートする必要があります。(ただし、必要な数だけサポートできます) テストケース: 赤チャネル: グリーンチャンネル: 青チャンネル: もう1つのテストケースは、すべて赤です。 元の写真、赤、緑、青。(警告:あまりにも長い間見るために平野と赤のチャンネルが痛い) さらに2つのテストケース: オリジナル、赤、緑、青。 オリジナル、赤、緑、青。 後者の2つのテストケースは、すべての色の画像からのものです。

30
最初に0ではなく、個別の数字でランダムなn桁の数字を取得します
私はこの質問を読み、それがいい挑戦になると思った。 仕事 入力0<n<10で乱数を生成する 正確にn桁 最初ではない 0 そう f(n)>10**(n-1)-1 個別の数字 受賞基準 これはコードゴルフなので、最短のコードが優先されます。 ランダム ランダムに均等に分散されるということです。そのため、プログラムの観点からは、考えられる各数字には同じチャンスがあります。あなたが書いている言語が奇妙な乱数ジェネレーターを持っているなら、それを使用しても大丈夫です。 例 ランダムに選択する値のリストn=2は次のとおりです。 [10, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 45, 46, 47, 48, …
22 code-golf  number  random  grid  game  king-of-the-hill  javascript  code-golf  arithmetic  statistics  code-golf  math  code-golf  math  code-golf  string  palindrome  code-golf  string  interactive  code-golf  quine  polyglot  code-golf  string  stack-exchange-api  code-golf  number-theory  decision-problem  code-golf  tips  code-golf  string  internet  code-golf  graphical-output  image-processing  fractal  code-golf  ascii-art  geometry  hexagonal-grid  code-golf  string  restricted-source  hello-world  code-golf  game  code-golf  cipher  code-golf  permutations  cops-and-robbers  permutations  cops-and-robbers  code-golf  internet  stack-exchange-api  code-golf  ascii-art  random  code-golf  tips  code-golf  ascii-art  code-golf  code-golf  kolmogorov-complexity  code-golf  string  unicode  code-golf  number  sequence  primes  palindrome  code-golf  game  decision-problem  code-golf  math  geometry  code-golf  graphical-output  interactive  code-golf  set-partitions  code-golf  number  arithmetic  restricted-source  code-golf  decision-problem  python  recursion  code-golf  ascii-art  code-golf  source-layout  code-golf  function  recursion  functional-programming  code-golf  game  combinatorics  permutations  code-golf  string  file-system  code-golf  string  hashing  code-golf  stack-exchange-api  code-golf  string  code-golf  math  number  arithmetic  polyglot 

12
N時間のアスタリスクアナログ時計を描画します
チャレンジ: HOURを表す入力N(0から24までの数字)を受け取る関数またはプログラムを作成します。 出力は、時間Nを示すアスタリスクからアナログ時計を描画する必要があります。 🕛🕐🕑🕒🕓🕔🕕🕖🕗🕘🕙🕚🕛🕐🕑🕒🕓🕔🕕🕖🕗🕘🕙🕚🕛 ノート: •分針は時間針よりも長くする必要があります(使用するアスタリスクの数に関して) •分針には少なくとも2つのアスタリスクが必要です。 •正午、午後3時、午後6時、午後9時は常に直交します。中間時間の出力は、度単位で並べると、その日の時間と同じ順序になります。つまり、正午の時針は0ºであり、午後3時の時針は90ºです。したがって、午後1時と午後2時の出力の場合、次の条件を満たしている必要があります 0pm_deg < 1pm_deg < 2pm_deg < 3pm_deg。このルールとは別に、実際の学位額はあなたが決めるものであれば何でもかまいませんが、明らかにフォントやその他のネイティブ要因によって変わります。 •時針と分針の間の接続ジョイントは、あらゆる種類の円形/楕円形のユニコード文字です。 o, O, •, 0, etc. 入力/出力の例(描画スタイルによって異なる場合があります) N = 3; * * * O * * N = 4; * * * O * * N = 5; * * * 0 * * N …

12
シンプルなコードゴルフチャレンジ:キャラクターパターン!
このチャレンジでは、X、Y、Zなどの文字列を含む文字列を入力として受け取ります。「XYZZ」。X、Y、Zは特定の文字を表します。次に、このパターンを2番目の文字列入力と比較します。パターンが2番目の入力に部分文字列として存在する場合はreturn True、そうでない場合はreturn False。単語でパターンが見つかると、プログラムは検索を停止してを返しますTrue。 例 パターン:「XXYY」 succeed ---> True (pattern found: ccee) success ---> False (pattern not matched) balloon ---> True (pattern found: lloo) パターン:「XYXYZ」 bananas ---> True (pattern found: nanas) banana ---> False (pattern not found) 注:これは実際の入力ではありません。これは、プログラムの動作方法の例です。プログラムは、TrueまたはFalse、またはその他のTruthy / Falsy値を出力する必要があります。 その他の重要/有用な情報 パターンには、X、Y、およびZを含める必要はありません。XとY、または(多少無意味ですが)Xだけを含めることもできます。 パターンを空にすることはできませんが、これはテストケースとして使用されません。 検索文字列は空ではなく、小文字になります。 パターン内のX、Y、Zのアルファベット順は重要ではありません。 X、Y、Z は一意の文字でなければなりません。 任意のライブラリを使用できます。 スコアは、バイト単位のコードサイズによって決まります。最低スコアが勝ちます。 がんばろう!
22 code-golf 

11
UKMT IMCペーパーにマークを付ける
今年はIMCをやりました。ここの他の誰かがそれをしましたか? UKMT Intermediate Maths Challengeの論文には、25の質問があります。最初の15の質問では、正解すれば5つの点が付けられます。他の10個の質問については、それらを正しく評価するために6つのマークを取得します。最後の10問では、間違った場合はマークを失います!16から20の質問では、1つのマークを失います。最後の5つの質問では、2つのマークを失います。質問を空白のままにすると、マークは授与または控除されません。最初の15の質問のいずれかを間違えたとしても採点は差し引かれません。論文は複数の選択肢があります。各質問に対して、A、B、C、D、およびEから回答を選択できます。各質問には常に1つの正解があります。 2つの文字列を取り、スコアを出力するプログラム/関数を作成します。最初の文字列は、論文への回答になります。質問をスキップする場合は、スペース、ヌルバイト、またはアンダースコアを使用してください。それ以外の場合は、回答に文字A、B、C、D、またはEを使用します。入力は大文字でも小文字でもかまいません。2番目の文字列は、論文の各質問に対する正解になります。プログラム/関数はスコアを出力します。コードを短くしてください。 テストケース: DDDDDDDDDDDDDDDDDDDDDDDDD ABCDEABCDEABCDEABCDEABCDE 15 BDBEACCECEDDBDABBCBDAEBCD BDBEACCECEDDBDABBCBDAEBCD 135 DBACBDCDBAEDABCDBEECACDC_ DBADBDCDBAEDABCDBEEDACDCA 117 _________________________ DABDABDABDABDABDABDABDABD 0 DBADBDCDBAEDABCD_E__A__C_ DBADBDCDBAEDABCDBEEDACDCA 99 _______________BBBBBBBBBB AAAAAAAAAAAAAAAAAAAAAAAAA -15
22 code-golf 

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