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

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

30
*および+演算子を使用せずに乗算用のCプログラムを作成する方法は?
乗算演算子と加算演算子を使用せずに2つの数値を乗算するCプログラムを作成することは可能ですか? Stack Overflowでこれを見つけました。この貧しいプログラマーの問題を助けてください。そしてc = a/(1/((float)b))、のような答えを与えないでくださいc = a*b。(そして、答えとして既に与えられています。) 2014年1月19日に最も賛成票を投じた回答が勝利します。 注:これはコードトローリングの質問です。質問や回答を真剣に受け取らないでください。詳細については、コードトローリングを参照してください。

17
トランプが壁を築くのを助けてください!
トランプは壁を構築する必要があり、あなたはそれをするつもりです!彼の壁を最も効率的に構築するために、使用できるシンプルで繰り返し可能なパターンを作成しました。 __ __ | |_| | ___| |___ - - - - - - - - - - - - - - - - - - - ——————————————— トランプは、彼が必要とする壁セグメントの数を教えてくれます。そして、あなたはそれらをちょうどこのように構築します。 パターンは次のとおりです。 __ __ <-- 4-2-3-2-4 ' _ _ ' | |_| | <-- 3-1-2-1-1-1-2-1-3 ' | |_| | ' ___| |___ …

30
赤ちゃんサメを歌う
「サメの赤ちゃん」は、サメの家族に関する子供向けの歌です。キャンプファイヤーの歌として長い間人気がありましたが、2000年代半ばからソーシャルメディア、オンラインビデオ、ラジオで人気を博しています。- ウィキペディア 入力を受け取らず、次のテキストを標準出力または任意のファイルに書き込むプログラムを作成します。 Baby Shark doo doo doo doo doo doo Baby Shark doo doo doo doo doo doo Baby Shark doo doo doo doo doo doo Baby Shark! Daddy Shark doo doo doo doo doo doo Daddy Shark doo doo doo doo doo doo Daddy Shark doo doo doo …

23
よ少年、それを合計する必要があります
すべての正の整数は、任意ベースで最大で3つの回文正の整数の和として表すことができるBの ≥5。 Cilleruelo et al。、2017 正の整数は、先行ゼロなしでそのベースでの表現が同じ逆方向を読み取る場合、特定のベースでパリンドロームです。以下では、ベースb = 10 のみが考慮されます。 回文数の合計としての分解は一意ではありません。たとえば、5は5、またはの合計として直接表現できます2, 3。同様に、またはとして132分解できます。44, 44, 44121, 11 挑戦 正の整数を指定すると、10を基数とするパリンドロームの3つ以下の正の整数にその合計分解を生成します。 追加のルール 使用されるアルゴリズムは、任意の大きな入力に対して機能するはずです。ただし、プログラムがメモリ、時間、またはデータ型の制限によって制限されている場合は許容されます。 どんな合理的な手段でも入出力を取ることができます。入出力形式は通常どおり柔軟です。 出力形式が明確である限り、各入力に対して1つ以上の有効な分解を生成することを選択できます。 すべてのプログラミング言語で、プログラムまたは機能が許可されます。標準的な抜け穴は禁止されています。 バイト単位の最短コードが優先されます。 例 入力には多くの分解があるため、これらはテストケースではなく例です。各分解は異なる行に表示されます。 Input -> Output 5 -> 5 2, 3 15 -> 1, 3, 11 9, 6 21 -> 11, 9, 1 7, 7, 7 42 -> 22, …

30
記号を出力する
数値Nが与えられた場合、Nの符号を出力します。 Nが正の場合、出力1 Nが負の場合、出力-1 Nが0の場合、0を出力します Nは、選択した言語で表現可能な整数範囲内の整数になります。

30
マジックザギャザリング:友達か敵か?
カードゲームMagic:the Gatheringには、白(W)、青(U)、黒(B)、赤(R)、緑(G)の5つの異なる色があります。これらは多くの場合、次のように五角形に配置されます。 W G U R B MtGの伝承と多くのカードメカニズムの両方で、この五角形の隣接する色は通常同盟国と見なされ、隣接していない(反対の種類の)色は敵と見なされます。 この課題では、2色が与えられ、それらの関係を決定する必要があります。 挑戦 セットから任意の2つの異なる文字が与えられますBGRUW。これらは、2文字の文字列、文字間に区切り文字がある文字列、2つの個別の文字値、2つのシングルトン文字列、コードポイントを表す2つの整数、または2つの文字/文字列/整数を含むリストまたはセットタイプとして使用できます。 出力は、選択した2つの異なる一貫した値の1つである必要があります。1つは2つの色が味方であることを示し、もう1つは敵であることを示します。これらの2つの値のいずれかは、まったく出力されない場合があります。 プログラムまたは関数を記述し、入力を受け取り、出力を提供する当社の標準的な方法のいずれかを使用できます。 任意のプログラミング言語を使用できますが、これらの抜け穴はデフォルトでは禁止されています。 これはcode-golfであるため、バイト単位で測定された最短の有効な回答が勝ちます。 テストケース 可能な入力は20個しかないため、すべてをリストします。 友達: WU UB BR RG GW UW BU RB GR WG 敵: WB UR BG RW GU BW RU GB WR UG

8
ランダムな白黒の森を描く
あなたの仕事は、800x600の白黒の画像を森に似たもので描くプログラムを書くことです。 このように(ディザリングされた写真です): ルール 既存の画像を使用することは許可されていません-純粋にアルゴリズム的に画像を生成する必要があります 2色のみを使用-白黒(グレースケールなし) プログラムを実行するたびに、イメージは新しくなければなりません-毎回ランダムです 1本の木は森ではありません(5本の木を最小としましょう) 木/森を描くための特別なライブラリは許可されていません 投票数が最も多い回答

24
自分自身をダウンロードするプログラムを書く
このサイトに接続し、投稿されたまさにその答えをダウンロードし、独自のソースコードを抽出して印刷するプログラムを作成します。出力はソースコードと同一である必要があります。最短コード(バイト単位)が優先されます。 ルール: URL短縮サービスは許可されていません。 答えは通常の形式である必要があります-言語名とサイズ、オプションの説明、コードブロック、オプションの説明と説明の見出し。不自然な区切り文字は許可されていません。 出力は、サイトに投稿された実際のコードブロックから発信する必要があります。 機能は回答リスト内の位置に依存してはなりません。複数のページがあり、最初のページではなく答えがある場合でも機能するはずです。 新規:ブラウザーで実行することになっている回答に関する特別な注意: codegolfドメインで実行する必要があります(同一生成元ポリシーに従うため)が、ドメインとパスはソリューションに含める必要がありますそれを公平にします。

30
スリースリースリー!
次のような出力を生成するプログラムを作成します。 少なくとも3つの異なる文字が表示されます。 各文字の出現回数は3の倍数です。 例えばA TEA AT TEE、4つの異なる文字のそれぞれのための有効な出力でありA、E、T及び(space)、3回発生。 もちろん、3番目の課題には3番目の要件が必要です。そう: プログラム自体も最初の2つの要件に従う必要があります。(つまり、プログラムの長さは少なくとも9バイトになります。) 関数ではなく、完全なプログラムを作成する必要があります。回答には必ずプログラムの出力を表示してください。 また、物事を面白くするために、次のことを強くお勧めします。 要件3を満たすためにコメントを使用しないでください。 3回繰り返される単なる文字列ではない出力を生成する 出力をプログラム自体とは異なるものにするために(独自のプログラムのコンテンツを自動的に出力できる言語については、このコミュニティWikiに貢献できます)。 これはcode-golfです。バイト単位の最短コードが優先されます。

7
フォールトトレラントハローワールド(別名インタビュー)
インタビューの最後に、悪のインタビュアーは次のように語っています。「すべての応募者に短いコーディングテストを行って、彼らが話していることを本当に知っているかどうかを確認します。心配しないでください。実用的なプログラムです。すぐに仕事を提供します。」彼はあなたが近くのコンピューターに座るようにジェスチャーします。「あなたがしなければならないのは、有効なHello Worldプログラムを作成することです。しかし」-そして彼は広く笑います-「キャッチです。残念ながら、このマシンにある唯一のコンパイラには小さなバグがあります。ソースコードファイルをコンパイルする前に。OK、5分でお会いしましょう!」そして彼は部屋から出て、喜んで口whiを吹く。 あなたが仕事を得ることを保証できますか? タスク Hello, world!ファイル内の任意の位置から単一の文字が削除された後でも、標準出力に印刷するプログラムを作成します。または、できるだけこれに近づいてください。 ルール 無関係な出力なし - Hello, world!標準出力に印刷される唯一の実質的なものでなければなりません。選択した言語によって自然に生成される他の文字を含めることは問題ありません -末尾の改行やそのようなもの[1] "Hello, world!"(たとえば、Rを使用している場合)でも、毎回まったく同じものを印刷する必要があります。たとえば、 印刷できないHello, world!Hello, world!場合がありますHello world!" && x==1。ただし、警告は許可されます。 テストスコアをテストするために、プログラムの各可能な順列をテストする必要があります。各文字を削除してテストし、正しい出力が生成されるかどうかを確認します。この目的のために、多くの言語で機能するはずの簡単なPerlプログラムを以下に示しました。うまくいかない場合は、テストプログラムを作成して回答に含めてください。 採点あなたのスコアはあるプログラムが失敗した回数。言い換えると、文字を削除するとプログラムが機能しなくなるファイル内の個々の位置の数です。最低スコアが勝ちます。同点の場合、最短のコードが優先されます。 "Hello, world!"いくつかの言語(15のスコア)などの単純なソリューションは受け入れられますが、勝つことはできません。少なくともスコア4のPerlソリューションを見つけましたが、最終的に投稿します。 更新: 公式の勝者はチューリング完全なプログラミング言語を使用し、印刷する定義済みのメカニズムを使用しませんHello, world!。使用される外部リソース(言語の標準ライブラリ以外)はプログラムの一部と見なされ、同じ1文字の削除の対象となります。 これらの要件は、ポストイットノートでデスクに貼り付けられていました。最初に表示されなかった場合はおologiesび申し上げます。 アップデート2:はい、あなたのプログラムは実際にスコアを受け取るために上記のタスクを達成しなければなりません!つまりHello, world!、少なくとも1回は正常に印刷されるはずです。これは明らかなはずです。機能を追加するコマンドラインスイッチおよびその他の設定もプログラムの一部としてカウントされ、単一文字の削除の対象となります。プログラムは、ユーザー入力なしでタスクを実行する必要があります。コンパイルに失敗すると、失敗カウントにカウントされます。 幸せなプログラミング、そして仕事を手に入れてください。しかし、あなたが失敗した場合、おそらくその邪悪なボスのために働きたくなかったでしょう。 Perlテストスクリプト: use warnings; use strict; my $program = 'test.pl'; my $temp_file = 'corrupt.pl'; my $command = "perl -X $temp_file"; …

30
奇妙な難読化された「Hello World!」[終了]
仕事: 印刷する難読化されたプログラムを作成しますHello World!(まったく同じように)。プログラムに文字列が含まれていない可能性があります。 ルール: 好きなプログラミング言語を使用できます。 それを作る難読化可能として これは人気コンテストなので、最も賛成票が多い方が勝者となります。 注意: これはこの質問の複製ではありません。それはコードゴルフであり、異なるルールがありました。

30
Collat​​z予想(OEIS A006577)
これはCollat​​z予想(OEIS A006577)です。 整数n > 1から始めます。 次の手順を繰り返します。 nが偶数の場合、2で割ります。 nが奇数の場合、3を掛けて1を加算します。 5 * 2 60まで、または約5764000000000000000までのすべての正の整数に対して、nは最終的に1になることが証明されています。 あなたの仕事は、それが到達するために(プラス1を三倍半減かの)かかり反復回数見つけることです1。 関連するxkcd :) ルール: 最短のコードが優先されます。 2未満の数値が入力された場合、または非整数または非数値の場合、出力は関係ありません。 テストケース 2 -> 1 16 -> 4 5 -> 5 7 -> 16
66 code-golf  math 

21
英語のソースコードを外国語に翻訳する[終了]
私は、英語に基づいたコンピューター言語の数が不釣り合いに多いことに気付きました。既存のコンピューター言語を外国語に翻訳することでこれを修正することを提案します! 英語のキーワード/機能を使用するコンピューター言語を選択してください 英語以外の自然な*言語を選択してください 独自のソースコード、または同じキーワード/関数のサブセットを使用して記述された他のプログラムを他の言語に翻訳するプログラムを作成する ソースコードと出力(翻訳されたコード)を投稿する 次のようなもので投稿を開始します。 ベーシック、フランス語 または ベーシック、フランス語-フォンダメンタル あなたがしたくない場合は、言語名を翻訳する必要はありません、それはただの楽しみのためです! 選択した言語ですべてのキーワード/機能を翻訳する必要はありません。ソースコードで実際に使用しているものだけです。たとえば、PHPには数千個あるので、すべてを翻訳する必要はありません!また、コメントを使用する場合は、コメントも翻訳してください。プログラムが終了した後、外国語に適切でない限り、認識可能な英語の単語はないはずです。文字列内の単語も翻訳する必要があります(翻訳されたプログラムは、実行できたとしても、英語のソースコードでは動作しなくなります!)。他の言語を話すプログラマにとって、あなたのプログラムが何らかの意味をなすことを願っています! たとえば、フランス語にif () {} elseif () {} else {}なるかもしれませんsi () {} sinonsi () {} sinon {}!Perl elsifをフランス語に翻訳している場合はn、2番目eを英語でドロップするのと同じ方法で2 番目をドロップする可能性がありますsinosi。フランス語では、他の可能性が高いだろうAUTREが、代替sinon(または他の、そうでない場合は)私にはよりよい感じ! クリエイティブに!コンピューターと自然言語の両方の感触をキャプチャしてみてください!英語のトークンを持たないBrainfuck、CJamなどの言語は使用できません。BASICやCOBOLなどの言語がはるかに適しています。言語が英語の単語である変数名をサポートしていない場合を除き、意味のある変数名を使用して翻訳します。 コンピューター/自然言語の組み合わせごとに1つずつ、複数の回答を投稿できます。ライブラリまたは外部ツールを使用して翻訳を行うことはできません!コードは、翻訳を行う他の何かを呼び出すのではなく、翻訳自体を行う必要があります!これはコードゴルフではありません!プログラムが入力を受け取る場合、それは独自のソースコードのみである必要があり、ディスクから読み取る場合はソースファイルのみである場合があります。 *この課題の目的のために、私はエスペラント語、ロジバン、ヴォラピュク、インターリングアなどを自然言語と見なします。この挑戦のためにあなた自身の言語を発明することはできません! 明示的なクインを防止するルールを追加しました。翻訳するために、キーワード/機能のすべてのサブセットを選択することができます。あなたのプログラムは最低限それ自身を翻訳できる必要があります。つまり、元のソースに単語が含まれている場合、プログラム自体ではなく入力コードに任意の場所をprint追加してprint(42)も正しい結果が得られます。 例えば: function translate() { ... } print(translate()); になるかもしれない fonction traduire() { ... } imprimer(traduire()); 入力が次のように変更された場合 print(42); function translate() …

30
Cyclops番号ですか?"誰も知らない!
仕事: 整数の入力が与えられたら、それがサイクロプス数であるかどうかを判断します。 Cyclops番号とは何ですか?まあ、それはバイナリ表現0が中央に1つしかない数値です! テストケース: Input | Output | Binary | Explanation -------------------------------------- 0 | truthy | 0 | only one zero at "center" 1 | falsy | 1 | contains no zeroes 5 | truthy | 101 | only one zero at center 9 | falsy | 1001 | contains …

14
☣(バイオハザードシンボル)を描く
明確な色の背景に任意の色でバイオハザードシンボルを描画します。特定の比率は、1974年6月27日に発行された米国政府の連邦官報に掲載されました。 詳細 出力として、ファイルへの書き込み(ラスターおよびベクター形式が許可されます)または画面への表示の両方が許可されます。 境界線または塗りつぶされた図形のみを描画できます。 ラスターイメージを使用する場合は、出力の解像度(幅/高さなど)を調整できるパラメーター(または2つ)を入力として使用する必要があります。 背景には、少なくともシンボルの境界ボックスのサイズが必要ですが、それより大きくてもかまいません。 UnicodeシンボルOutputを出力するだけでは不十分です。 使用された距離の正確な比率は、次の図に示されています(元々はここから)。 また、同じ測定値で追加の図を作成しようとしました。 (99%invisibleの投稿に触発された)

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