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

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

14
NULLポインター例外をスロー[クローズ]
閉まっている。この質問はトピック外です。現在、回答を受け付けていません。 この質問を改善したいですか? 質問を更新することがありますので、上のトピックコードゴルフスタックExchange用。 3年前に閉店しました。 あなたの仕事は、null-pointer例外を生成することです。つまり、プログラムはnull以外の値を受け取る必要があり、値がnullであるため例外/エラーまたはクラッシュをスローする必要があります。 さらに、コードを読んでも値がnullであることは明らかではありません。あなたの目標は、実際には値がnullでないことを読者に明らかにすることです。 nullの代わりに、nil、none、nothing、またはあなたの言語で同等のものを使用できます。未定義、未初期化などを使用することもできます。 コードの問題は、プログラムがnull以外の変数を予期している場合、変数が(驚くほど)nullである必要があります。 プログラムは、例外をスローしたり、エラーをスローしたり、クラッシュしたり、予期しないnullに遭遇したときに通常行うことによって、nullに応答できます。 これは人気コンテストですので、気をつけてください!

15
スピログラフ時間!
スピログラフは、下垂体と外epi体を描くおもちゃです。この課題のために、私たちはただ単にトロポコイドに焦点を合わせます。 ウィキペディアから: ヒポトロコイドは、半径Rの固定円の内側を転がる半径rの円に取り付けられた点によってトレースされるルーレットであり、その点は内部円の中心からの距離dです。 それらのパラメトリック方程式は次のように定義できます。 ここで、θは水平とローリングサークルの中心によって形成される角度です。 あなたの仕事は、上記で定義されたポイントによってトレースされたパスを描くプログラムを書くことです。入力として、R、r、およびdが与えられます。これらはすべて1〜200の整数です。 この入力は、stdin、引数、またはユーザー入力から受け取ることができますが、プログラムにハードコーディングすることはできません。あなたにとって最も都合の良い形式でそれを受け入れることができます。文字列、整数などとして 仮定: 入力単位はピクセルで指定されます。 R > = r 出力は、入力によって定義された次トロコイドのグラフィック表現である必要があります。ASCIIまたはその他のテキストベースの出力は許可されていません。この画像はファイルに保存するか、画面に表示できます。選択した入力の出力のスクリーンショットまたは画像を含めます。 コントラストの制限に従って、パス/背景に好きな色を選択できます。2つの色には、少なくともスケールの半分離れたHSV「値」コンポーネントが必要です。たとえば、からHSVを測定している場合、[0...1]少なくとも0.5違いがあるはずです。間[0...255]に最小の128差があるはずです。 これはコードゴルフで、ソースコードの最小サイズがバイト単位で勝ちます。

8
ほぼ等辺ヘロニアン三角形
ほぼ等辺ヘロンの三角形は、フォームの整数長を有する三角形でありn-1、nおよびn+1また、整数面積を有しています。最初のいくつかは: 3, 4, 5 -> 6 13, 14, 15 -> 84 51, 52, 53 -> 1170 クエスト:そのnようなトリプルを出力する最短のプログラムを生成します。(ヒント:これは既知のシーケンスです)。 受賞者は2014年5月2日に選出されます。

4
2つのポーカーハンドを比較する
チャレンジ: 2枚の5枚のカードハンドが与えられたら、ポーカーハンドの標準ランキングでどちらが勝つかを決定します。 入力: stdinからスペースで区切られた10枚のカード、またはコマンドライン引数として、どちらか好きな方。最初の5枚のカードはプレイヤー1の手で、最後の5枚はプレイヤー2の手です。各カードは、RがランクでSがスーツである形式RSの2文字の文字列になります。ランクの範囲は2〜9、Tは10、J、Q、K、およびAはそれぞれジャック、クイーン、キング、エースです。スーツは、それぞれハート、ダイヤモンド、クラブ、スペードのH、D、C、Sです。勝ったプレイヤーの番号を出力する必要があります: '1'または '2'。 カードの例: AS - the Ace of Spades QD - the Queen of Diamonds 2C - the Two of Clubs TH - the Ten of Hearts 入力から出力の例: 5H 5C 6S 7S KD 2C 3S 8S 8D TD -> 2 説明:プレーヤー1には5のペアがあり、プレーヤー2には8のペアがあります。 5D 8C 9S JS AC …
14 code-golf  game 

7
この生成されたバイナリマトリックスに特定の値を出力します
次のようにして、無限行列Mをon N^2 -> {0, 1}(ここでNはからでは1なく0)で定義するとします: M(1, 1)= 0。 すべてのためにx > 1、M(x, 1)= 1場合はx、プライム、とある0そう。 ごとにy > 1、M(1, y)=のyth番目の用語Thue-Morse sequence。 すべてのためにx, y > 1、M(x, y)= M(x, y-1) + M(x-1, y) mod 2。 16x16このマトリックスの左上のセクションは次のようになります(x行とy列): 0 1 1 0 1 0 0 1 1 0 0 1 0 1 1 0 1 0 1 …

4
犬を散歩に連れて行く
私の犬は私にbarえていますが、私は彼を散歩に連れて行くのが面倒です。考えがある!コードゴルフの人々に私のためにやってもらいましょう! あなたの課題は、犬の散歩をシミュレートすることです。犬の散歩のルールは次のとおりです。 人間(H)は0,0(デカルト)座標平面から開始し、1秒ごとにランダムに1スペース上、左、右、または下に移動します。 犬(D)は同じ位置から始まり、毎秒0、1、2、または3つのスペースを上、左、右、または下に(もちろんランダムに)行きます。犬は予測が難しく、時には速く走ったり、完全に止まったりします。 犬は、人間から一定量(ユークリッド距離)以上離れることはありません。これは、綱の長さ(L)です。たとえば、Lisの6場合、有効な位置はH(0,0) D(4,4)(距離が約5.65ユニットであるため)ですが、そうではありませんH(0,0) D(5,4)(約6.4ユニット)。 犬が動いたときにリーシュ距離要件に違反する場合、犬は、距離要件に違反しない決定された方向に可能な限り遠くに行かなければなりません。たとえば、位置がH(0,0) D(3,4)あり、犬がランダムに3スペース右に移動することに決めたD(4,4)場合、6ユニット以上離れることなく移動できるため、犬はに移動します。(これにより、スペースが0移動する、つまりまったく移動しないことに注意してください!) その他のルール:人間が最初に動きます。人間は、その動きで綱の長さを超えてはいけません。その場合、別の方向を選択する必要があります。「ランダム」とは、「均一に分布し、パターンがない」ことを意味します。 入力は次の形式で提供されます(STDIN、関数パラメーター、ファイルなど)。 "<amount of seconds the walk will last> <leash length>" 例えば: 300 6 // a 5 minute walk with a 6 yard leash 次の形式で出力する必要があります(STDOUT、関数の戻り値、ファイルなど)。 H(0,0) D(0,0) H(0,1) D(2,0) H(1,1) D(2,1) H(1,0) D(2,-1) ... (行数はカウントされないseconds + 1ため、出力されるH(0,0) D(0,0)行数はになります。) これはcode-golfなので、バイト単位の最短コードが勝ちます!
14 code-golf  random 

3
Chompの最適な開始移動を見つける
Chompは、長方形のピースが設定された2人用のゲームです。各プレイヤーは、その上とその右にあるすべてのピースと一緒に、任意のピースを削除するターンを取ります。左下のピースを取る人は負けます。最初のプレーヤーが常に勝ち手であることはかなり簡単に証明できます(1行1列の長方形を除く)。それを見つける。 入力は長方形の寸法です(2つの数字) 出力は、勝った動きの場所です(2つの数字) 複数の勝ち手がある場合、それらのいずれかを出力できます。 これはコードゴルフです。最短のコード(任意の言語)が勝ちます。 例 注:出力は2つの数値にすぎません。以下のASCIIアートは、数字の意味を示すためのものです。 入力:5 3(左下隅から始まる1から始まるインデックス) 出力:4 3 XXX-- XXXXX XXXXX 入力:4 4 出力:2 2 X--- X--- X--- XXXX ボーナス 勝利の動きをすべて出力する場合、スコアから15文字を引きます。数字の各ペアは、改行で区切る必要があります。
14 code-golf 

24
ソートされた2つのリストをマージする
ソートのマージ この課題では、マージソートのマージサブルーチンを実装します。具体的には、関数、プログラム、または動詞などを作成し、それぞれが昇順でソートされた2つのリストを取得し、それらを昇順でソートされた1つのリストに結合する必要があります。要件: -アルゴリズムは、入力のサイズで漸近的に線形の時間を要する必要があります。O(n ^ 2)ソリューションの提供を停止してください。 リストをソートしたり、リストをマージしたりできるような組み込み関数を使用することはできません。著者の裁量。 コードは、繰り返される要素を処理できる必要があります。 空のリストを心配する必要はありません。 例: merge([1],[0,2,3,4]) [0,1,2,3,4] merge([1,5,10,17,19],[2,5,9,11,13,20]) [1, 2, 5, 5, 9, 10, 11, 13, 17, 19, 20] これはcode-golfなので、最短のコードが勝つかもしれません!

2
クロスワード強制!
不可解なクロスワード中毒者のクリスは、それらを解決する順序のアルゴリズムを設定しています。 上記の画像をガイドとして使用します。 クリスは常に最初の手がかりから始めます。この場合は1 Acrossです。クリスは有能なクロスワード愛好家なので、彼が取り組んでいる手がかりの答えを常に知っていると思われます。 クリスが手掛かりを完了すると、完了したものに隣接するすべての手がかり(最初のケースでは1ダウン、2ダウン、3ダウン)をチェックし、最も小さい番号の手がかりを完了します。隣接する手がかりがなければ、ステップ3に進みます。 手がかりが次の番号(ステップ3で説明)に横向きの手がかりと下向きの手がかりの両方がある場合、彼は最初に横向きの手がかりを完成させます(100%の確実性、OCDの境界線!) 隣接する手がかりがない場合、次の利用可能な手がかりに移動します(横または下)。 すべての手がかりが完了するまで、手順2から繰り返します。 親愛なるコーダー、これこそがあなた次第です。クロスワードテンプレートが提供されると、それを解決するためのChrisのアルゴリズムに基づいて、手がかりの順序を説明する出力を提供できるコードを作成する必要がありました。 コードは、クロスワードパズルテンプレートの入力を受け入れます。これは.、白い四角を表す形式と#黒い四角を表す形式です。 例: .....#......... .#.#.#.#.#.#.#. ...#...#....... .#.#.#.#.#.#.#. ....#.......... ##.#.#.#.#.#.#. ......#........ .###.#####.###. ........#...... .#.#.#.#.#.#.## ..........#.... .#.#.#.#.#.#.#. .......#...#... .#.#.#.#.#.#.#. .........#..... 入力は、a)クロスワードの表現のファイル読み取り、またはb)クロスワードの各行の行入力とそれに続く\n、\nEOFを示す2番目の入力によって行うことができます。 そして、Chrisが上記のアルゴリズムに従って解決する方法を決定します。 出力は、の形式の一連のコンマ区切りの命令の形式である必要がありますn(A|D)。ここnで、手がかり番号に続いてAforまたはDdownが続きます。 したがって、上記の例(画像とサンプルテンプレートの両方から1つが同じ)の場合、出力は次のようになります。 1A,1D,2D,3D,9A,10A,4D,5D,6D,7D,8D,11A,12A,13A,15A,14D,15D,16A,17A,18D,19D,20A,21D,23A,22D,24A,25D,27A,28A,26D,29A,30A,31A 最短のコードが勝つ... テスト中 コード、バイトカウント、.およびand #形式で表される4つのテストケースの1つ、およびこの入力から生成された出力を提出する必要があります。4つのテストケースがあり、以下の3つと上記のサンプルテンプレートがあります。 テストケースの例: テストケース1 .....# .#.#.# ...#.. .#.#.# .....# ##.#.. 出力: 1A,1D,2D,3D,4A,5A,6A,7A テストケース2 .....#.. .#.##..# .#....#. ...##.#. …

17
いくつかの標準を破る![閉まっている]
閉じた。この質問はより集中する必要があります。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集するだけで1つの問題に焦点を当てるように質問を更新します。 8か月前に閉鎖されました。 「ルールは破られるように作られている!」というフレーズを誰もが知っているので、ここにあなたのタスクがあります: 標準に違反する任意の言語でコードを記述します。これは、USBケーブルに240ボルトをかけることから、ルーター(他のWebサイトではありません!)に10 mbパケットでpingを送ることまで、何でも可能です!(アイデアを取得しないでください、これらの両方はおそらくあらゆる種類の運命を引き起こすでしょう!) 10日後に最も投票された回答(最も重大な違反)が勝ちます! ルール: コードを説明する必要があります。 違反している標準はリンクされている必要があり、違反していることを説明する必要があります(1を意味します)。そうでない場合、回答は受け付けられません。 インタプリタをクラッシュさせたり、動作を停止させたりする回答は受け入れられません。𐒢IDLE(クラッシュ)に何かを貼り付けるだけでなく、創造的な答えが欲しい 標準を破らない限り、バグの悪用は許可されません。そうでない場合、回答は受け入れられません。 始めて、楽しんでください!

21
極値を見つける
リストを取り込んで、極値のリストを作成する関数またはプログラムを作成します。 リストでは[x_0, x_1, x_2...]、ローカルの極値はそのx_iようなx_(i-1) < x_iand x_(i+1) < x_iまたはx_(i-1) > x_iand x_(i+1) > x_iです。リストの最初と最後の要素が極値になることはありません。 だからいくつかの例 local_extremes([1, 2, 1]) = [2] local_extremes([0, 1, 0, 1, 0]) = [1, 0, 1] local_extremems([]) = [] これはコードゴルフなので、最短のコードが勝ちます!
14 code-golf 

30
(x、y)を取り、xのy乗を返す関数を書くWITHOUT Loops [closed]
閉じた。この質問には、詳細または明確さが必要です。現在、回答を受け付けていません。 この質問を改善したいですか?詳細を追加し、この投稿を編集して問題を明確にします。 11か月前に閉鎖されました。 これは本当にすてきな短い挑戦です。 関数又は2つのパラメータを取り、手順書き込みxとyの結果を返すループを使用せずに、または電力機能に内蔵されています。xy 勝者は最も創造的なソリューションであり、3日後の最高票数に基づいて選択されます。

9
メタの種類:最短の回答のうち最長のものを取得する
あなたの仕事-あなたがそれを受け入れた場合- コードゴルフ逆転の競争の勝者を計算することにより、メタに関する私の提案を理解するのに役立つプログラムを書くことです。もちろん、この質問に対する回答は提案通りに扱われるため、プログラムは(正しい場合)回答が受け入れられる回答になるかどうかを計算できます。 ルール プログラムは、次の形式の複数行のファイルを読み取ります(以下の例を参照)。[Language] TAB [NumberOfCharacters] TAB [LinkToAnswer] ファイル名は引数としてプログラムに渡されるか、ファイルはプログラムの標準入力にリダイレクトされます。それはあなたの選択です、答えを与えるときに方法を言及してください 入力形式が正しいことが期待されます。エラー処理の必要はありません。 文字数は正です。あなたのプログラムは65535までの長さを処理する必要があります。64kは誰にとっても十分なはずです:-) プログラムは、メタ提案のアイデアを満たす行を標準出力に出力します。つまり、 特定のプログラミング言語の最短コードが勝ちます(削減段階) すべてのプログラミング言語の中で最長のコードが優先されます(ソート段階) 抽選の場合、同じ長さのすべての回答が印刷されます 出力の順序は重要ではありません 最も長いコードが優先されますが、これはコードボウリングではありません。コードは、プログラミング言語に可能な限り短くする必要があります。 コードを短縮しようとしないめったにないプログラミング言語に対する回答は、この種の質問の意図を回避しようとするため、下票に値します。特定のプログラミング言語に対する答えが1つだけの場合、それは勝者候補と見なされるため、コードを吹き飛ばすことができます。 入力ファイルの例(書式設定に問題がある場合は、単一のタブで区切られています): GolfScript 34 http://short.url/answer/ags GolfScript 42 http://short.url/answer/gsq C# 210 http://short.url/answer/cs2 Java 208 http://short.url/answer/jav C# 208 http://short.url/answer/poi J 23 http://short.url/answer/jsh Ruby 67 http://short.url/answer/rub C# 208 http://short.url/answer/yac GolfScript 210 http://short.url/answer/210 期待される出力(順序は重要ではありません): C# 208 http://short.url/answer/poi …

7
素数ですか?数学なし[非公開]
閉じた。この質問には、詳細または明確さが必要です。現在、回答を受け付けていません。 この質問を改善したいですか?詳細を追加し、この投稿を編集して問題を明確にします。 3年前に閉店しました。 入力が素数であるかどうかを判断する任意の言語でプログラムまたは関数を作成します。 入力は、10を底とする自然数を表す文字列です。 出力は、2つの文字列「Prime」または「Not !!」のいずれかです。入力を正しく識別します。 算術演算子、ビット単位の演算子、数値変数と定数、一般的な「数学スタッフ」などは、プログラムのどこでも使用できません。必要なすべての「計算」を行うには、文字列操作を使用する必要があります。 文字列の長さ(数字)を比較できますが、そうでない場合は-10をスコアと比較します。 プログラムは、任意の長さの入力で動作するはずです(十分なメモリと時間が与えられます)。 最小バイトカウント(UTF-8)が優先されます。

7
逆矢印迷路を解く
これは「矢印迷路」です。 v < > v > ^ > v ^ < * *マークあなたは終了しますスポット。あなたの目標は、迷路の始まりを見つけることです(したがって、逆迷路)。この場合、>2行目の1行目です。 v------< S-+---v | | >--^ >-+-------v ^ < * すべての矢印を使用する必要があることに注意してください。また、行には同じ長さのスペースが埋め込まれると想定できることに注意してください。 プログラムは、妥当な方法(stdin、ファイル、メッセージボックスなど)で迷路を入力する必要がありますが、迷路は完全に無傷でなければなりません。たとえば、コンマで区切られた行を入力することはできません。入力は正確に迷路でなければなりません。 迷路の開始を適切な方法で出力する必要があります。たとえば、次のことができます 開始の座標を出力します 開始矢印を置き換えて迷路全体を出力します S 開始矢印を除くすべての矢印を使用して迷路全体を出力します(空白はそのまま!) 等 どの矢印が開始矢印であるかを出力で判断できれば、問題ありません。たとえば、次の出力 "0" "2" 改行や引用符に関係なく、開始点がどこにあるかを引き続き確認できるため、問題ありません。 これはcode-golfであるため、バイト単位の最短コードが優先されます。
14 code-golf 

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