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

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

20
シリアル化された整数を見つける
仕事 (入力として)正の整数を取るプログラムを作成します。次に0、からカウントアップし、各整数をaに追加します。Stringその長さがString入力の値よりも小さい場合にのみ続行します。 シリアル化された整数が属する最大値と完全に形成された整数として定義されますString。「完全に形成された」ことにより、整数に欠落している数字がないはずです(の長さの制約Stringが満たされる場合に発生します)。 プログラムの出力は、それぞれの正の入力に対してシリアル化された整数でなければなりません。 ルール コードゴルフなので、最短の回答(バイト単位)が勝ちます! 入力は常に正になります。 出力は、10進数(10進数)の整数でなければなりません。 プログラムには0インデックスが必要です。 入力例| 出力 5 | 4 (0 1 2 3 4 - Length of 5) 11 | 9 (0 1 2 3 4 5 6 7 8 9 1 - Length of 11) 12 | 10 (0 1 2 3 4 5 …

2
それらの羊をキャッチ!
あなたは農民であり、羊の群れが逃げ出した!大野! それらを収容するフェンスを構築することにより、それらの羊を切り上げます。予算上の農家として、可能な限り最小のフェンスを使用したいと考えています。幸いなことに、彼らは世界で最も賢い羊ではなく、逃げた後も気にしないでください。 仕事 座標のリストを指定して、羊を収容するのに必要なフェンスセグメントの最小量を出力します。 ルール 羊が歩き回ることができない場合(フェンスに穴がない場合)は収容されます。 フェンスの1つのブロックにすべての羊を入れる必要はありません-互いに独立した複数のフェンスで囲まれたエリアが存在する可能性があります。 フェンスセグメントは基本方向に向けられています。 各座標タプルは単一の羊を表します。 入力は正の整数ペアx>0&y>0でなければなりませんが、言語に合わせて適切にフォーマットできます。 すなわち:{{1,1},{2,1},{3,7}, .. }または[1,2],[2,1],[3,7], .. フェンスで囲まれたエリア内の空きスペースは問題ありません。 座標が特定の順序で入力されていると想定することはできません。 たとえば、1頭の羊には4フェンスセグメントを完全に収容する必要があります。 テストケース [1,1] 4 [1,1],[1,2],[2,2] 8 [2,1],[3,1],[2,3],[1,1],[1,3],[3,2],[1,2],[3,3] 12 [1,1],[1,2],[2,2],[3,7],[4,9],[4,10],[4,11],[5,10] 22 [1,1],[2,2],[3,3],[4,4],[5,5],[6,6],[7,7],[8,8],[9,9] 36 [1,1],[2,2],[3,3],[4,4],[6,6],[7,7],[8,8],[9,9] 32 [2,1],[8,3],[8,4] 10 ノート 入力座標が有効であると想定できます。 アルゴリズムは、合理的に大きな整数座標(言語の最大サポート値まで)に対して理論的に機能するはずです。 プログラムまたは機能の完全な答えは大丈夫です。 これはcode-golfなので、バイト単位の最短回答が勝ちです!
16 code-golf 

7
電卓を回す
前書き: Windowsの標準的な電卓を見てみましょう 。この課題では、次のボタンのみを見て、他のすべてを無視します。 7 8 9 / 4 5 6 * 1 2 3 - 0 0 . + チャレンジ: 入力:次の 2つの入力を受け取ります。 1つは90度単位で回転を示すものです もう1つは、回転した電卓で押されたボタンを表す座標のリストです。 最初の入力に基づいて、上記のレイアウトを時計回りに90度ずつ回転します。したがって、入力がの場合0 degrees、そのまま残ります。ただし、入力がの場合、270 degrees時計回りに3回(または反時計回りに1回)回転します。以下に4つの可能なレイアウトを示します。 Default / 0 degrees: 7 8 9 / 4 5 6 * 1 2 3 - 0 0 . + 90 degrees clockwise: …

11
米国のナンバープレートを生成する
入力として次のいずれかを指定します。 AK,AR,AS,AZ,CA,CT,DC,FL,GA,IL,IN,IA,KS,KY,LA,MD,MI,MN,MS,NV,NH,NJ,NM,NY,NC,ND,MP,OH,OK,OR,PA,PR,RI,SC,TN,TX,UT,VT,VA,WA,WI (引用符付き) "AK","AR","AS","AZ","CA","CT","DC","FL","GA","IL","IN","IA","KS","KY","LA","MD","MI","MN","MS","NV","NH","NJ","NM","NY","NC","ND","MP","OH","OK","OR","PA","PR","RI","SC","TN","TX","UT","VT","VA","WA","WI" 入力に一致する形式の(均一な)ランダムナンバープレートを生成して出力します。複数の(カンマ区切り)形式がある場合は、(均一に)ランダムな形式を使用します。 AK, IA, MS, MP, VT: AAA 000 AS: 0000 AZ, GA, WA: AAA0000 AR, KS, KY, LA, ND, OR: 000 AAA CA: 0AAA000 CT: AA-00000 DC: AA-0000 FL: AAA A00 IL: AA 00000 IN: 000A,000AA,000AAA,AAA000 MD: 0AA0000 MI: AAA 0000,0AA A00,AAA 000 MN: 000-AAA NV: …

30
「Hello、World!」(警官のスレッド)
これは警官のスレッドです。強盗のスレッドはこちらです。 あなたの課題は、特定の入力で正確な文字列Hello, World!と改行を出力するプログラムまたは関数を書くことです。大文字、スペース、句読点は正確でなければなりません。 入力は、標準入力、ファイル、またはコマンドライン/関数の引数を介して取得できます。出力は、戻り値、ファイルへの書き込み、または標準出力を介して提供されます。 プログラムはHello, World!、少なくとも1つの入力に対して印刷する必要があります。プログラムに間違った入力(つまり、印刷させない入力)が与えられると、Hello, World!クラッシュ、ランダムなナンセンスの印刷、チャックノリスの呼び出しなど、何でも好きなことができます。 ハッシュアルゴリズムまたは同様の方法で必要な入力を隠すことはできません。 提出は、TIOで実行およびクラック可能にすることが推奨されます。TIOで実行またはクラックできないサブミッションは許可されますが、ダウンロード/実行の手順を含めてください。 1週間後、このチャレンジは今後の警官の提出に対して閉鎖されます。勝者は、それを投稿してから1週間後に解読されない最短のコードです(「チャレンジ」ではなく「それ」がコードです)。勝者は2週間後に受け入れられます。 投稿してから1週間が経過した後、回答を安全とマークし、入力を表示してください(> ! spoiler quote)。強盗があなたの提出物をクラックした場合(週が終わる前に)、クラックされたものとしてマークし、停止中の入力を表示してください(> ! spoiler quote)。 クラックされていない提出物をお探しですか? fetch("https://api.stackexchange.com/2.2/questions/137742/answers?order=desc&sort=activity&site=codegolf&filter=!.Fjs-H6J36vlFcdkRGfButLhYEngU&key=kAc8QIHB*IqJDUFcjEF1KA((&pagesize=100").then(x=>x.json()).then(data=>{var res = data.items.filter(i=>!i.body_markdown.toLowerCase().includes("cracked")).map(x=>{const matched = /^ ?##? ?(?:(?:(?:\[|<a href ?= ?".*?">)([^\]]+)(?:\]|<\/a>)(?:[\(\[][a-z0-9/:\.]+[\]\)])?)|([^, ]+)).*[^\d](\d+) ?\[?(?:(?:byte|block|codel)s?)(?:\](?:\(.+\))?)? ?(?:\(?(?!no[nt][ -]competing)\)?)?/gim.exec(x.body_markdown);if(!matched){return;}return {link: x.link, lang: matched[1] || matched[2], owner: x.owner}}).filter(Boolean).forEach(ans=>{var tr = document.createElement("tr");var add = (lang, link)=>{var td …

13
n番目の偶数完全数を出力する
チャレンジ 入力として整数nが与えられると、0 <= n <= 2^10は、n番目の偶数完全数を出力します。 完璧な数字 完全数とは、その因子の合計(それ自体を除く)がxに等しい数xです。たとえば、6: 6: 1, 2, 3, 6 そして、もちろん、1 + 2 + 3 = 66は完璧です。 完全数ならば、x、、でもありますx mod 2 = 0。 例 以下は、最初の10個の偶数の完全数です。 6 28 496 8128 33550336 8589869056 137438691328 2305843008139952128 2658455991569831744654692615953842176 191561942608236107294793378084303638130997321548169216 あなたが望むようにこれにインデックスを付けることができることに注意してください:6は1番目または0番目の偶数であってもよいです。 勝ち バイト単位の最短コードが優先されます。
16 code-golf  math  number 

12
Nビット整数乗算オーバーフローのカウント
正の整数を指定するとN、0 <= a <= b < 2**Nなどの整数のペアの数を出力しa*b >= 2**Nます。 ルール あなたのN言語の整数の最大ビット幅以下であると仮定することができます(たとえば、Cの場合、マシンのアーキテクチャに応じて、をN超え32たり64、を超えたりしません)。ご使用の言語が任意の幅の整数を処理できる場合、上限はありませんN。 テストケース 1 0 2 3 3 19 4 96 5 437 6 1876 7 7804 8 31904 9 129170 10 520135 11 2088143 12 8369175 13 33512744 14 134128704 15 536681553 16 2147082274

16
すべてのアナグラムを見つけてください!
anagramsとタグ付けされた17の質問があるにもかかわらず、この質問はまだありません。 あなたのタスク 文字列を受け取ったときに、可能なすべてのアナグラムを出力するプログラムまたは関数を作成する必要があります。この質問の目的上、アナグラムは元の文字列と同じ文字を含む文字列ですが、元の文字列の正確なコピーではありません。アナグラムは、実際の単語である必要はありません。 入力 任意の標準入力方法で、文字列(長さ> 0)を受け入れることができます。ASCII文字を含めることができます。 出力 入力された文字列のすべての可能なアナグラムを標準的な方法で出力できます。同じ文字列を2回出力したり、入力と同じ文字列を出力したりしないでください。 その他の規則 標準の抜け穴は許可されていません 得点 これはcode-golfで、最小バイトが勝ちます。

23
これはハーディ・ラマヌジャン番号のようなハーシャッド番号ですか?
バックグラウンド 番号1729は、ハーディラマヌジャンの番号です。この驚くべき特性は、GHハーディが病院で彼を訪問したときに、S。ラマヌジャン(インドの最も偉大な数学者1として広く知られています)によって発見されました。ハーディ自身の言葉で: 彼がパトニーで病気だったときに彼に会いに行ったことがあるのを覚えています。私はタクシー番号1729に乗っていましたが、番号は私にはむしろ退屈な番号のように見え、好ましくない前兆ではないことを願っていました。「いいえ」と彼は答えました。「非常に興味深い数字です。2つの異なる方法で2つのキューブの合計として表現できる最小の数字です。」 それに加えて、それは他の多くの驚くべき特性を持っています。そのような特性の1つは、それがハーシャッド数であるということです。つまり、その桁の合計(1 + 7 + 2 + 9 = 19)がその要因です。それも特別なものです。藤原正彦が示したように、1729は正の整数であり、その数字が加算されると、その反転を乗算すると元の数が得られる合計を生成します。 1 + 7 + 2 + 9 = 19 19×91 = 1729 このような性質を有する正の整数は、私はハーディ-Ramanujan-として定義するものであるっぽいこの記事の目的のために、Harshad番号。(技術用語があるかもしれませんが、A110921のメンバーでない限り、私はそれを見つけることができませんでした) タスク 正の整数を与えられたn入力かどうかに基づいて、入力、出力truthy又はfalsey値としてnハーディ- Ramanujan-あるっぽい Harshad数。もしそうであれば、真実を出力します。それ以外の場合は、falseyを出力します。 注のみ4ハーディ- Ramanujan-ことっぽいハーシャッド数が存在する(1、81、1458および1729)、あなたは彼らとの等価性チェックされたコードを書くことができます。しかし、私はそれが楽しいとは思わない。 入力 あなたのプログラムは正の整数(言い換えれば自然数)を取るべきです。それが変数に存在すると仮定することを除いて、どのような方法でもそれを取ります。モーダルウィンドウ、入力ボックス、コマンドライン、ファイルなどからの読み取りが許可されます。関数の引数として入力を取ることも許可されています。 出力 プログラムは、真偽値を出力する必要があります。それらは一貫している必要はありません。プログラムは、出力を変数に書き込むこと以外の方法で出力できます。画面、コマンドライン、ファイルなどへの書き込みが許可されています。関数による出力returnも許可されています。 追加の規則 あなたはタスクを達成するためにビルトインを使用してはいけません(どんな言語もそのようなビルトインを持っているでしょうが、それからMathematica ...) 標準の抜け穴が適用されます。 テストケース Input Output 1 Truthy (because 1 × 1 (reverse of …

17
メイウェザー対マクレガー:賞金の準備
前書き 2017年8月26日、フロイドメイウェザージュニアは、ボクシングの試合でコナーマクレガーと対戦します。 両方の参加者は驚異的な額の1億ドルを受け取ります! 残念ながら、まだお金がありませんが、すべての紙幣が入った大きなブリーフケースをすでに準備することができます。 _________________________ | | |=======================================| | $ $$$$$ $$$$$ $ $ | | $ $ $ $ $ $ $$$ $$$ | | $ $ $ $ $ $ $$$ $ | | $ $$$$$ $$$$$ $ $ | |_______________________________________| ブリーフケースが構成され_、|、=と$。 サイズは幅41文字(改行を無視)、高さ6文字(ハンドルの場合は+2)です。 チャレンジ 入力がない場合、完全なプログラムを作成して2Dブリーフケースを出力します(上記を参照)。 スコア これはcode-golfであるため、最短のソリューション(バイト単位)が優先されます。

3
ミラー・ラビンの強い擬プライム
非負の整数Nを指定すると、すべての最初のN素数の基底に対する強い擬似素数である最小の奇数の正の整数を出力します。 これは、OEISシーケンスA014233です。 テストケース(1インデックス付き) 1 2047 2 1373653 3 25326001 4 3215031751 5 2152302898747 6 3474749660383 7 341550071728321 8 341550071728321 9 3825123056546413051 10 3825123056546413051 11 3825123056546413051 12 318665857834031151167461 13 3317044064679887385961981 のテストケースはN > 13、これらの値がまだ見つかっていないため利用できません。シーケンス内の次の用語を見つけることができた場合は、必ずOEISに提出してください! ルール Nインデックスがゼロまたはインデックスが1の値を選択できます。 ソリューションが言語の整数範囲内で表現可能な値(つまりN = 12、符号なし64ビット整数まで)でのみ動作することは許容されますが、ソリューションは、言語が任意の長さの整数をサポートするという前提で、理論的には入力に対して動作する必要があります。 バックグラウンド 正の整数は、奇数のx形式x = d*2^sで記述できますd。dそして、商が2で割り切れなくなるまで2でs繰り返し除算nすることで計算できます。これdはその最終商でありs、2が除算される回数ですn。 正の整数nが素数の場合、フェルマーの小定理は次のように述べます。 任意の有限体 Z/pZ(どこにp素数がある)でも、の平方根1は1and -1(または同等に1and p-1)のみです。 これら3つの事実を使用して、次の2つのステートメントのいずれかが素数に対して真でなければならないことを証明できますn(d*2^s = n-1およびrはの整数です[0, s))。 …


2
ツイート内のバイナリテトリス
最近(数年前)、プログラミング ウェブサイトで140バイトのテトリスの実装に関する話題がありました。... 小さいながらも、Tetrisの簡易バージョンであり、完全な実装ではないことがわかりました。コアロジック関数のみが140バイトのJavascriptに適合します。実際に実行するには、別の〜840文字のHTMLが必要です。 もっと良くできる! この課題は、「Binary Tetris」の完全なバージョンを可能な限り少ないツイートで実装することです。 バイナリテトリスルール: プログラムは、少なくとも5列と6行のセルを含む競技場を表示する必要があります。 フィールドのブロックとエッジが明確にマークされている限り、どのような表示方法を使用してもかまいません。 少なくとも2種類のブロックが必要です: #と##。###Lのような形状のブロックやアングルブロックなどの追加ブロックサポートは私に支持されます:Pとバイナリテトリスの最も完全なゲーム(元の機能や回転機能のような最もブロック)は、私の幸福と賞金50倍の賞金を獲得します。 新しいブロックが一番上の行のフィールドに追加され、1つのブロックセルが中央の列を占める必要があります。 ブロックは固定レートで最下行に向かって下降します。ブロックは、ユーザー入力なしでも下降する必要があります。 ブロックがフィールドの下部または下のブロックに触れると、落下が止まり、固定されます。新しいブロックが追加されます。 行のすべての列がブロックで満たされると、その行は空になり、上のすべての固定ブロックが1行ドロップダウンします。 プログラムはキー入力に応答する必要があります。次の機能を実行する3つの一意のキーが必要です 現在のブロックを1列左にシフト 現在のブロックを右に1列シフト 現在のブロックを1行下にシフト 各ツイートには140文字しか使用できません。ツイートに入れることができるマルチバイト文字の使用は許可されています。 ツイートに含めることができるルールは簡単です。ツイートできる場合は、使用できます。 解釈された言語は同じルールに従います。各セクションは仕様に従う必要があります。限り何も実行時エラーが発生しない(と残りはスペック以下有効である)として、あなたの答えは有効である ゴルフのルール: オリジナルの実装は、「tweetable」だったので、この課題は、同じことを必要とします。エントリーは、一連のツイート(140文字以下の行)として送信できる必要があります。 最初のツイートには、コンパイラ/インタープリターの名前、プログラムの名前、およびコマンドライン引数が含まれている必要があります ファイル「P0」として保存されます 次のN個のツイートには、プログラムを一連の行として含める必要があります。 各ツイートは、T <n>という名前のファイルに保存されます(nは1..N)。 各行は前の行に追加され、コンパイルまたは解釈されます。有効なオブジェクトファイルまたはプログラムを生成する必要があります。 プログラムは、最後の行が追加されるまで機能する必要はありません。 プログラムは次の方法で実行されます(疑似bash) interp,prog,args = split P0 /\s/ touch $prog for file in ./T* do cat $prog file > $prog $interp …

15
日本のマリオのタイトルをアメリカのタイトルに変換する
スーパーマリオシリーズのゲームの命名規則は非常に奇妙であり、地域間で一致していません。 | Japanese Name | American Name | |---------------------|------------------------------------| | Super Mario Bros. | Super Mario Bros. | | Super Mario Bros. 2 | Super Mario Bros.: The Lost Levels | | Super Mario USA | Super Mario Bros. 2 | | Super Mario Bros. 3 | Super Mario Bros. …

1
担当者がいなければ、あなたの評判はどうでしょうか?
この課題では、PPCGにレピュテーションキャップが存在しなかった場合のレピュテーションを計算します。 アドレスはcodegolf.stackexchange.com/reputationで評価の変更のために誰でもrawdataにアクセスできます。生データは、このような設定に従います(これらは、私のバージョンのページの最初の数行です。 total votes: 2955 -- bonuses (100) 2 37663 (10) -- 2014-09-11 rep +110 = 111 2 41751 (10) -- 2014-11-23 rep +10 = 121 2 41751 (10) 2 41751 (10) -- 2014-11-24 rep +20 = 141 最初の行は、このチャレンジとは無関係です(すべての回答と質問に対して受け取った投票の総数を示します)。2行目は「関連付けボーナス」を示しています。ボーナスがない場合、その行はまったくありません。 これらの2行(またはボーナスがない場合は1行)の後に、質問ごとの評判の変更のリストと、毎日獲得または失ったすべての担当者の概要が表示されます。また、その日の終わりにあなたが持っている合計評価のリストを取得します。このリストには、評判が変わった日のみが表示されます。 各行の先頭に識別子があります(毎日の要約行を除く)。これらは、次の潜在的な評判変更の理由を表しています。 1 : Accept (+2 if you accept, +15 if …

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