タグ付けされた質問 「code-golf」

コードゴルフは、ソースコードの最小バイトで特定の問題を解決するための競争です。

6
騎士の動きに取り組む
六角形のチェスは、セルが従来の正方形ではなく六角形であるボードでプレイされるチェスのバリエーションのファミリーを表します。そのようなバリアントは多数あります。この課題では、最も一般的なGlińskiのバリアントに焦点を当てます。 ボードは3色で構成され(同じ色が端を共有しないように)、六角形の端がプレイヤーに面しています。ボードは、文字でマークされた11個のファイルが、持っていaてl(文字がj(ファイルで60°を曲げ使用されていない)、および11のランクf)。ランク1を介して6各11個の細胞を含む、ランクが79つのセルを有し、ランクは87を有している、というように。ランク11には1つのセルf11のみが含まれます。(それが役立つ場合は、各ランクを非常に幅の広い「V」字型にすると考えてください。) これは、中央のセルに騎士がいるボードの例です。ドットでマークされたセルは、この特定のナイトの合法的な動きです。騎士は「通常の」チェスと同様の方法で2ダウン1オーバーで動きます。六角形のチェスの用語では、それは(エッジを横切る)直交方向の動きであり、次に同じ方向(同じ色に最も近い動き)の斜め方向の動きです。例えば、ナイトが下にある場合、ライトブラウンまでの「上」への直交移動は、最も近いライトブラウンへの「上」と「上」または「左」の斜めの動きを伴います。 https://commons.wikimedia.org/wiki/File:Glinski_Chess_Knight.svgを介してパブリックドメインから この騎士はf6に位置しているため、法的な動きは c4, c5, d3, d7, e3, e8, g3, g8, h3, h7, i4, i5 入力 ナイトの開始セルを提供する単一の入力。これは、1つの文字列としてすることができ"b6"2つの文字列として、"b", "6"など、任意の便利な形式で。入力文字は大文字でも小文字でも構いません。 出力 その場所の騎士が行うことができる有効な動きのリスト。これは、文字列の配列、明確で一貫した区切り文字を持つ単一の文字列、改行で区切られた文字列など、最も便利なものであれば何でもかまいません。出力は必ずしもソート順である必要はなく、大文字または小文字のいずれでもかまいません(任意)。 ルール ボード上に他のピースが存在しないか、動きに干渉しないと仮定します。私たちは騎士だけに焦点を合わせています。 完全なプログラムまたは機能のいずれかが受け入れられます。関数の場合、出力する代わりに出力を返すことができます。 可能であれば、他の人がコードを試すことができるように、オンラインテスト環境へのリンクを含めてください! 標準的な抜け穴は禁止されています。 これはコードゴルフなので、通常のゴルフルールがすべて適用され、最短のコード(バイト単位)が勝ちます。 例 b6 a3, c4, d5, d9, e7, e8 f6 c4, c5, d3, d7, e3, e8, g3, g8, h3, h7, i4, i5 f11 …

2
ゴルフのエンドツーエンド暗号化
このチャレンジには、最初に答えて少なくとも3日間無敵のままでいるために200ポイントの報奨金が課せられます。user3080953が主張しています。 最近、エンドツーエンドの暗号化について多くの話があり、製品からそれを削除するように企業に圧力をかけています。私はその権利と不正には興味がありませんが、私は疑問に思いました。コードをどれだけ短くすれば、会社はそれを使わないように圧力をかけるでしょうか? ここでの課題は、ネットワーク化された2つのシステム間でDiffie Hellmanキー交換を実装し、生成された対称キーを使用してユーザーがやり取りできるようにすることです。このタスクの目的のために、他の保護は必要ありません(たとえば、キーの循環、IDの確認、DoSからの保護など)。インターネットを開くことができます(リッスンするポートはすべてのユーザーが利用できます)。組み込みの使用が許可され、推奨されています! 次の2つのモデルのいずれかを選択できます。 サーバーとクライアント:クライアントはサーバーに接続し、サーバーまたはクライアントは他方にメッセージを送信できます。2つの間のサードパーティは、メッセージを読むことができない必要があります。フローの例は次のとおりです。 ユーザーAがサーバーを起動します ユーザーBはクライアントを起動し、それをユーザーAのサーバーに転送します(IP /ポート経由など)。プログラムは接続を開きます ユーザーAのプログラムは接続を確認します(オプションでユーザーに最初に同意を求めます) ユーザーBのプログラムはDHシークレットの生成を開始し、必要なデータ(公開キー、プライム、ジェネレーター、実装に必要なもの)をユーザーAに送信します。 ユーザーAのプログラムは、送信されたデータを使用して共有シークレットの生成を完了し、必要なデータ(公開キー)をユーザーBに送り返します。この時点から、ユーザーAはメッセージを入力できます。 B(例:標準出力)。 ユーザーBのプログラムは、共有秘密の生成を完了します。この時点から、ユーザーBはユーザーAにメッセージを送信できます。 または:2つのクライアントが接続されたサーバー:各クライアントはサーバーと通信し、サーバーはメッセージを他のクライアントに転送します。サーバー自体(およびその間のサードパーティ)は、メッセージを読み取れないようにする必要があります。初期接続以外のプロセスは、最初のオプションで説明したものと同じです。 詳細なルール: 単一のプログラム、または複数のプログラム(サーバーとクライアントなど)を提供できます。スコアは、すべてのプログラムの合計コードサイズです。 プログラムは理論的にはネットワークを介して通信できる必要があります(ただし、テストにはlocalhostで十分です)。選択した言語がネットワークをサポートしていない場合は、サポートしているもの(シェルスクリプトなど)と組み合わせることができます。この場合、スコアは使用されるすべての言語にわたるコードサイズの合計です。 Diffie Hellmanキー生成では、ハードコードされた「p」および「g」値を使用できます。 生成された共有キーは、少なくとも1024ビットである必要があります。 キーが共有されたら、対称キー暗号化の選択はあなた次第ですが、それに対して実際的な攻撃があることが現在知られている方法を選択してはなりません)。許可されたアルゴリズムの例: AES(任意のキーサイズ) RC4(理論的には壊れていますが、言及できる実用的な攻撃はないため、ここでは許容されます) ユーザーAとBはどちらも、相互にメッセージを双方向に送信できる必要があります(双方向通信)(たとえば、stdinからの行の読み取り、継続的なプロンプト、ボタンを押すなどのイベント)。簡単になった場合は、交互の会話を想定できます(つまり、ユーザーがメッセージを送信した後、次のメッセージを送信する前に応答を待つ必要があります) 言語の組み込みが許可されています(既にサポートされている場合、独自の暗号化またはネットワークメソッドを記述する必要はありません)。 基礎となる通信形式はユーザー次第です。 上記の通信手順は一例ですが、従う必要はありません(必要な情報が共有され、中間キーが共有キーまたはメッセージを計算できない場合) サーバーへの接続に必要な詳細が事前にわからない場合(ランダムポートでリッスンする場合など)、これらの詳細を印刷する必要があります。マシンのIPアドレスがわかっていると想定できます。 エラー処理(無効なアドレス、接続の切断など)は必要ありません。 課題はコードゴルフであるため、バイト単位の最短コードが勝ちます。

9
セミプライムの因子を明らかにする最小の乗数
与えられた半素数 N、最小の正の整数見つけるMの二つの要因の一つのバイナリ表現ようにNがバイナリ表現に見出すことができるN * Mを。 例 半素数N = 9799を考えてみましょう。 1から始まるmの異なる値を試します。 m | N * m | N * m in binary ---+--------+------------------ 1 | 9799 | 10011001000111 2 | 19598 | 100110010001110 3 | 29397 | 111001011010101 4 | 39196 | 1001100100011100 5 | 48995 | 1011111101100011 6 | 58794 | …

1
プログラムが変異しているかどうかを検出する
エラーなしで終了するプログラムを作成します。 単一のバイトが他のバイトで置き換えられた場合、プログラムは出力する必要があります CORRUPTED ファイルからソースコードを読み取らないでください プログラムは他の出力を生成しないはずです これはコードゴルフなので、バイト単位の最短回答が勝ちです。 編集:「破損していない」要件を削除

18
値を計算します
チャレンジ 入力として整数与えられ、が値を出力する場合(はリーマンゼータ関数を表します)。sssS ≥ 1s≥1s\geq 1ζ(s )ζ(s)\zeta(s)ζ(x )ζ(バツ)\zeta(x) さらに詳しい情報 ζ(s )ζ(s)\zeta(s)は次のように定義されます: ζ(s )= ∑n = 1∞1nsζ(s)=∑n=1∞1ns\zeta(s) = \sum\limits^\infty_{n=1}\frac{1}{n^s} 回答を小数点以下5桁まで出力する必要があります(これ以上、それ以下)。答えが無限であることが判明した場合は、または同等の言語を出力する必要があります。∞∞\infty リーマンゼータのビルトインは許可されていますが、そのようにするのは面白くありません;) 例 出力は次のとおりでなければなりません Input -> Output 1 -> ∞ or inf etc. 2 -> 1.64493 3 -> 1.20206 4 -> 1.08232 8 -> 1.00408 19 -> 1.00000 バウンティ 組み込みを許可するための慰めとして、組み込みのゼータ関数を使用しない最短回答に対する100人の報奨金を提供します。(緑色のチェックマークは、全体として最も短いソリューションに移動します) 勝ち バイト単位の最短コードが優先されます。
16 code-golf  math 

30
累乗組み込みなしで整数xを累乗xにします
タスク-タイトルはほぼそれを要約しています。整数xをxの累乗にし0<xます。 制限事項: 累乗の使用、exp()、ln()、およびその他の権限に関連する言語組み込み関数は、のようなpow()、x^x、x**x禁止されています。 指定された整数が、選択したプログラミング言語の制限に適合すると仮定できます。 テストケース: Input | Output --------------- 2 | 4 3 | 27 5 | 3125 6 | 46656 10 | 10000000000 これはcode-golfであるため、バイト単位の最短プログラムが優先されます。

5
ais523のBackFlipを実行してください!
この課題は、のための賞であるais523のための勝利「新人王」のカテゴリを「PPCG 2016のベスト」。おめでとう! BackFlipは、ユーザーais523によって作成された難解なプログラミング言語です。ais523は、他にも30以上の興味深いesolangを作成しています。 BackFlipはBefungeや> <>のような2D言語で、命令ポインターがテキストのグリッド(プログラム)を横断し、上、下、左、右に移動し、文字に応じて方向を変えます。重大なことに、BackFlipプログラムのグリッドは、ラングトンのAntのように、移動中に変化します。 この課題では、BackFlipプログラムは常にテキストの長方形のグリッド(すべての行が同じ長さ)で、サイズが少なくとも1×1で、文字のみを含むと想定できます./\<>^V。(.スペースではなく、可視性のために使用されます。)ここで使用するBackFlipは、意味的には元のspecと同じです。 BackFlipの命令ポインター(IP)は、常にプログラムの左上隅のすぐ右から始まります。遭遇する可能性のあるコマンドには3つのタイプがあります。 .ノーオペレーションです。IPは、進行方向に進みます。ノーオペレーションはノーオペレーションのままです。 /と\ミラーです。それらは、角度で示される方向にIPを反射し、その後、他のタイプのミラーに変わります。 たとえば、IPが左に向かう場合、\左ではなく上方向に動き始め、はに\なります/。 <、>、^、およびV矢印です。IPを指し示す方向にリダイレクトし、IPが来た方向(IPが動いていた方向とは反対)を指す矢印に変わります。 たとえば、IPが下に向かう場合、IPは下>ではなく右に移動し始めます。これは、IPの方向で>ある^ためです。 BackFlipプログラムは、IPが範囲外に移動すると、つまりグリッドから外れると終了します。それは結局のところ、すべての無限ループが不可能であるため、バク転プログラムが最終的に終了します。(これは真実であると仮定できます。) この課題の目標は、BackFlipプログラムを取り込んで、プログラムが終了する前に命令ポインターが取る移動数を出力するプログラムまたは関数を作成することです。つまり、プログラムの実行中にIPは何ステップを実行しますか?これには、グリッドへの最初のステップとグリッドからの最終ステップが含まれます。 たとえば、指示ポインターは、単純なグリッドで5つのステップを取ります....。 .... <- empty 4×1 grid 012345 <- step number of the IP したがって、への出力....は5です。 より複雑な4×2グリッド \... \.>< IPは9番目のステップでグリッドを終了するため、出力は9次のようになります。 step grid IP position (@) 0 \... @.... \.>< .... 1 \... @... \.>< .... 2 /... .... …

12
クイーンズパズルを確認する
女王がチェスで何をしているのかわからなければ、それは大した問題ではありません。それはただの名前です:) 入力は、クイーンをいくらか含む任意の幅と高さの正方形になります。入力ボードは次のようになります(このボードの幅と高さは8です)。 ...Q.... ......Q. ..Q..... .......Q .Q...... ....Q... Q....... .....Q.. このボードにはクイーンが8人います。たとえば、ここに7、1、または10があると、ボードは無効になります。 ここでは.、空のスペースにaを使用Qし、女王にa を使用します。代わりに、希望する非空白文字を代わりに使用することもできます。 この入力は有効であることが確認できます。真実の値を印刷(または返す)する必要があります(有効でない場合は、偽の値を印刷(または返す)必要があります)。他と同じ行、列、対角線、または対角線にクイーンがいないため有効です。 例(括弧内に出力しないでください): ...Q.... ......Q. ..Q..... .......Q .Q...... ....Q... Q....... .....Q.. 1 ...Q. Q.... .Q... ....Q ..Q.. 0 Q. Q. 0 ..Q ... .Q. 0 (this is 0 because there are only 2 queens on a 3x3 board) …

15
最初のx個のプライムの中の加算プライム
加法素数の定義: ちょうど2つの除数が呼び出されている番号プライム番号。 素数でその桁数も素数である数は、加法素数と呼ばれます 仕事: 整数を与えx、最初の中のすべての添加の素数を計算するxと、素数2最初の素数と添加素数の両方とみなされています。数値は基数10で表されます。 ルール: 出力は、最初のx素数の中のすべての加法素数で構成されます 0 < x < 151、この課題のために、機能的な目的のために 加法素数はすべて整数であるため、小数は許可されず(例:2ではなく、出力2.0する必要があります)、小数として表示してはなりません。 例: 10 -> 2 3 5 7 11 23 29 説明: 最初の10個の素数は2 3 5 7 11 13 17 19 23 29であり2 3 5 7 11 23 29、それぞれの桁数の素数のみを持ち、それぞれ2,3,5,7,2,5,11であるため、加法素数です。 の説明に従ってexample 1、他のテストケースは次のようになります。 2 -> 2 3 25 -> 2 3 …

1
ノスタルジックな素数ジェネレーター[終了]
閉じた。この質問には詳細または明確さが必要です。現在、回答を受け付けていません。 この質問を改善したいですか?詳細を追加し、この投稿を編集して問題を明確にします。 閉じた3年前。 単純なドキュメントまたはWebページを開くと、コンピューターにあるすべての貧弱なリソースを食い尽くしていたため、非常に遅いという古き良き時代を覚えていますか?そして、今日、プロセッサが数百倍高速であり、数千倍のメモリにアクセスしているにもかかわらず、同じことをするのはさらに遅くなりますか? 現在のドキュメントビューアーおよび同様のアプリケーションでの肥大化の影響をシミュレートするには、より強力なマシンで実行したときに目に見えるパフォーマンスの問題があるプログラムを作成します。 すべての人に共通のタスクを持たせるには、それを素数ジェネレータにします。 このプログラムは、2から始まる新しい素数の連続する素数を印刷しなければなりません。これは永久に(またはメモリ不足になるまで)する必要があります。このような: 2 3 5 7 11 13 17 各行の印刷には、人間が認識できる程度の遅延が必要です。 この遅延は、プログラムが実行されているマシンが高速になるほど長くなります。マシンが速いほど、プログラムは遅くなります。 主観的になる可能性があるため、正確なベンチマークを指定しませんが、2台のマシンのパフォーマンスに大きな違いがある場合、2台の異なるマシンで人間が知覚できる速度の違いがあるはずです。 プログラムの速度は、これまでに作成されたすべての既存のマシンで単調に減少する必要はありません。これは特定するのが難しく、検証するのはさらに困難です。マシン間で大幅に異なるパフォーマンスと見なすことができるものについて、出場者の常識を信じており、それで十分です。 また、正確な上限または下限を指定しませんが、妥当な制限内である必要がありますので、2行を印刷する間で日数または年数を指定しないでください。 Eniacから現代までのすべてで実行する必要はありませんが、たとえば2つの特定のCPUタイプでのみ動作し、特定の1つのCPUの名前を具体的に検出することは許可されません低速または高速で実行されます。 コードはコンパイラーまたはインタープリターのバージョンに依存するべきではありません。同じバージョンのコンパイラ/インタープリターが低速マシンと高速マシンの両方にインストールされている場合、またはバイナリ/バイトコードが1台のマシンでコンパイルされてから2台の異なるマシンで実行されている場合でも動作します。 プログラムの動作原理を説明してください。結果を再現するのは難しいため、回答の有効性はメソッドの実行可能性に依存する場合があります。 残念ながらこのサイトは「プログラミングパズルとコードゴルフ」ではなく、単に「コードゴルフ」に過ぎないため、最も短いコードが勝ちます。

7
ワン1、ツー1、ワン2ワン1
チャレンジ: 正の非ゼロ整数の入力を受け取り、以下に説明する順序で次の4つの数値を出力するプログラムを作成します。 注:入力が実際にゼロ以外の正の整数であるかどうかを確認する必要はありません シーケンス: このシーケンスのすべての数値(入力である最初の数値を除く)は、n桁で構成されます(nは偶数)。番号をn / 2ペアに分割する場合、ペアごとに、最初の数字は前の数字に2番目の数字が現れた回数でなければなりません 視覚的な説明: この例「シーケンススターター」または入力を検討してください。 入力には1 "6"、1 "5"および2 "7"があるため、6577 シーケンスの次の番号は次のように161527なります。 入力の桁数が多すぎる場合(1桁で9桁以上)、正しい出力を取得することはできません。 例:111111111111(12 1's) 次の番号は、12 1を記述する必要があります。したがって、それを9個の1と3個の1に分割します(合計9 + 3 = 12) 次の数:9131 入力を4回繰り返して出力する必要があります(4つの整数のリスト/配列を返すか、スペースで区切って出力します。改行も使用できます)。 「数字はいろいろな方法で書くことができますが、どうやって書くのですか?」: 考えてみると、入力例6577は271516(2つの7、1つの5、1つの6)と書くこともできます。ただし、これは無効な出力です。数値を左から右に繰り返す必要があります。したがって、161527。7の7657量、6の量、5の量を反復する場合、有効な出力は次のようになります。271615 I / Oの例: 入力:75 出力:1715 211715 12311715 4112131715 入力:1 出力:11 21 1211 3112 入力:111111111111(12 1's) 出力:9131 192113 31191213 23411912 :シーケンスが異なっているので、これは、質問「あなたが見る何を言う」とは違ってhttps://oeis.org/A005150: -このようなこの1つのリターン番号< 入力:1211出力:111221 シーケンスは、私が求めているもののどうなる …

20
x ^ 2が7 ^ x-1を除算するような数値x
仕事 分割するxような数のセットがあります。x^27^x-1 あなたの仕事はこれらの数字を見つけることです。nを入力すると、コードはこの規則に従うn番目の数字を出力します。 例1-インデックス In Out 3 3 9 24 31 1140 関連するシーケンスはここで見つけることができます。 ルール 最短回答が勝者となります* 標準的なゴルフ規則が適用されます 抜け穴は許可されていません あなたの答えは、0または1のいずれかのインデックスになります。答えに明記してください

9
タワーブロックを印刷してください
可能な限り短いコードでタワーブロックを印刷します。 入力: 入力は、タワーブロックの階数を定義します。1階には、ドアの両側に窓があります。ウィンドウは3x3ハッシュで構成されています。 4階建てのタワーブロックの例を以下に示します。 ===================== )V V V V V V V V V V( )V V V V V V V V V V V( )V V V V V V V V V V V V( )V V V V V V V V V V V V …

9
2017年まで成長
この課題では、年齢を経るにつれて成長するプログラムを構築します。2017年までです。 チャレンジ このチャレンジの説明に「プログラム」と記載されている場合は、「機能」も読むことができます。 送信すると、実行すると、THE LENGTH OF YOUR SUBMISSION+ 1バイト長のプログラムが出力されます。 ときにそのプログラムが実行され、それが出力され、プログラムされますTHE LENGTH OF YOUR SUBMISSION+は2バイトの長...というように。 ただし、プログラムが2017バイトの長さに達すると、代わりに出力2017して終了する必要があります。 ルール 最終プログラムの出力は2017唯一でなければなりません2017。これは、文字列または整数を指定できますが、それは読まなければなら2017ない2017.0か、0x7E1または他のそのようなナンセンス。 標準的な抜け穴はありません。 初期プログラムのみが入力を要求することが許可されており、これはバイトカウントに追加されます。したがって、最初のプログラムの長さが324文字で入力が13バイトの場合、合計スコアは 324 + 13 = 337に なり、出力されるプログラムの長さは 338バイトでなければなりません。 perl -Xただし、初期プログラムと生成されたすべてのプログラムが同じフラグを使用している限り、コマンドラインフラグ(例:)を使用しても問題ありません。また、それらも合計バイト数にカウントされます。コマンドラインフラグの前にあるダッシュ、スラッシュなどは合計にperl -Xはカウントされないため、たとえば1バイト追加されます。 関数を返す場合、評価時に関数を生成する文字列ではなく、実際の関数である必要があります。 不適切なクイン(プログラムがクインの場合)は許可されません。 例 擬似コード、99バイト IF (PROGRAM LENGTH == 2017) PRINT 2017 ELSE PRINT (THE SOURCE OF THIS PROGRAM + 1 BYTE …

25
友達に「コンマクラブ」を教えてください
このようなシリコンバレーの「3コンマクラブ」シーンに触発され、このチャレンジでは10人にそれぞれが属する「コンマクラブ」を伝えます。 「コンマクラブ」という用語に慣れていない場合は、説明しましょう。持っているお金が1,000.00ドルから999,999.99ドルの範囲であれば、1コンマクラブにいます。$ 1,000,000.00から$ 999,999,999.99の範囲にある場合、2コンマクラブにいます。地球上の個人(AFAIK)は1兆ドル以上を所有していないため、これらの「クラブ」は3コンマクラブを通じて繰り返されます(日本円はすぐに別の話になります)。したがって、銀行口座のカンマの数は、米国および英国で最も一般的な表記基準に従って、あなたが所属するカンマクラブを示します。同じ「コンマ」ルールが負の数値にも適用されます(ただし、負のコンマクラブにはなりたくないでしょう)。包括範囲[-0.01、-999の負の量。 テストケース Friend Amount John 100000 Jamie 0.05 Kylie 1549001.10 Laura 999999999.99 Russ 986000000 Karla 1 Reid 99.99 Mark 999.99 Manson 1000.01 Lonnie 999999999999.00 Nelly -123.45 正しい答え: John is in the 1-comma club. Jamie is in the 0-comma club. Kylie is in the 2-comma club. Laura is …
16 code-golf 

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