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

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

30
数字はどのくらい偶数ですか?
古代ギリシア人は、これらのことを一重および二重の偶数と呼んでいました。単一の偶数の例は14です。1を2で割ると、その時点で奇数(7)になり、その後2で割り切れなくなります。二重の偶数は20です。2で2で割ると、5になります。 あなたの仕事は、整数を入力として受け取り、整数として2で割り切れる回数を可能な限り少ないバイト数で出力する関数またはプログラムを作成することです。入力はゼロ以外の整数(言語の制限内で正または負の値)になります。 テストケース: 14 -> 1 20 -> 2 94208 -> 12 7 -> 0 -4 -> 2 最小バイトの答えが勝ちです。 ヒント:数値を2を基数に変換してみてください。

15
アスキーアートオブザデイ#1-ダブルノット
NSTDIN /コマンドライン/ ARGVまたは関数の引数を介して入力として正の整数を取り、NSTDOUTに対応するASCII二重ノットを出力する完全なプログラムまたは関数を記述します。 ASCIIの二重結び目は次のようになります。 __ __ __ __ __ __ / \/ \/ \/ \/ \/ \ | /\/ /\/ /\/ /\/ /\/ /\ | | \/ /\/ /\/ /\/ /\/ /\/ | \ \/\ \/\ \/\ \/\ \/\ \/ /\ \/\ \/\ \/\ \/\ \/\ \ | /\/ /\/ …

6
カバーでいくつかの本を判断しましょう
誰もがコンテンツが質問をすることを知っています。しかし、良いタイトルも役立ちます。それが最初に目にするものです。その第一印象をプログラムに変え、どのような種類のタイトルがより多くの賛成を得ているかを理解する時です。 これにより、PPCG質問のタイトルを入力として受け取り、そのスコアの予測を返すプログラムまたは関数を作成するように求められます。 たとえばCounting Grains of Rice、入力として受信し、59この場合、スコアに近いものを返そうとする場合があります。非整数の推測は問題-20ありませんが、それ以下の推測は違います。 テストとスコアリング用のデータは次のとおりです。 http://data.stackexchange.com/codegolf/query/244871/names-and-upvotes スコアリング:プログラムは、このサイトの(PPCG)履歴内のすべての質問で実行され、非公開の質問はカウントされません。関数ln(score + 20)は、各スコアと各推測に適用されます。結果の2つの値セット間の二乗平均平方根誤差がスコアです。低いほど良い。 たとえば、毎回0を推測したプログラムは0.577を獲得し、毎回11を推測したプログラムは0.362を獲得します。 スコアを計算して、回答のタイトルに含めてください。また、この質問がどれだけ多くの賛成票を獲得するかについてのプログラムの予測も含めてください。 制限事項: 過度のハードコーディングを防ぐために、1000文字以下にしてください。 合理的なマシンで1分以内に上記のデータセット全体で実行する必要があります。 標準の抜け穴は閉じられています。 Pythonで書かれたテスターを使用して、あいまいさを解消してください。 import sys import math import csv scores_dict = {} with open(sys.argv[1], 'r') as csv_file: score_reader = csv.reader(csv_file) for score, title in score_reader: if score == 'Score': continue scores_dict[title] = int(score) def rate_guesses(guesser): …

16
シェルピンスキーコード
空白の部分に同じサイズのスペースブロックを使用して、シェルピンスキーカーペットに配置したときに、カーペットの繰り返し数を出力するプログラムを作成する長方形のテキストブロックを記述します。 たとえば、テキストブロックが TXT BLK その後、プログラムを実行する TXTTXTTXT BLKBLKBLK TXT TXT BLK BLK TXTTXTTXT BLKBLKBLK 1プログラムの形状は、シェルピンスキーカーペットの最初の反復を表すため、出力する必要があります。 同様に、実行中 TXTTXTTXTTXTTXTTXTTXTTXTTXT BLKBLKBLKBLKBLKBLKBLKBLKBLK TXT TXTTXT TXTTXT TXT BLK BLKBLK BLKBLK BLK TXTTXTTXTTXTTXTTXTTXTTXTTXT BLKBLKBLKBLKBLKBLKBLKBLKBLK TXTTXTTXT TXTTXTTXT BLKBLKBLK BLKBLKBLK TXT TXT TXT TXT BLK BLK BLK BLK TXTTXTTXT TXTTXTTXT BLKBLKBLK BLKBLKBLK TXTTXTTXTTXTTXTTXTTXTTXTTXT BLKBLKBLKBLKBLKBLKBLKBLKBLK TXT TXTTXT TXTTXT TXT BLK …

30
非常にシンプルな三角形
正の整数を(stdin、コマンドライン、または関数argを介して)取り込むプログラムまたは関数を作成し、これらの多数の小さな三角形の文字列を並べて表示または返します。 /\ /__\ 入力がの場合、この唯一の三角形が出力になります1。 入力がの2場合、出力は ____ /\ / /__\/ 入力がの3場合、出力は ____ /\ /\ /__\/__\ 入力がの4場合、出力は ________ /\ /\ / /__\/__\/ 等々。あなたのプログラムは、2までの入力に対応している必要があり16 1 = 65535 - 。 詳細 左端の三角形は常に上向きです。 後続のスペースが存在する場合がありますが、不必要な先行スペースがない場合があります。 オプションの末尾の改行がある場合があります。 以下のためにことに注意してください1出力二行の長さであるが、それ以外の場合は3です。これは必須です。 バイト単位の最短提出が勝ちです。

30
数字はそれぞれの数字で割り切れますか?
私の友人と私は、AP Computer Scienceクラスの研究室で働いていましたが、終了後もクラスの半分がまだ空いていたため、ゴルフの問題を1つコーディングすることにしました。ここに質問があります: 数値nが与えられた場合、nは各桁で割り切れますか? たとえば、128はこのテストに合格します。1、2、および8で割り切れます。ゼロの数字は、自動的に数字を失格にします。必要に応じて他の言語を使用し、ソリューションを投稿することもできますが、クラスで使用する言語であるJavaでプログラムをコンパクトに作成できる方法に関心があります。これまでのところ、我々は両方とも51を持っています。これが私の現在のコードです: public boolean dividesSelf(int n){for(int p=n;n%10>0;)n/=p%(n%10)>0?.1:10;return n<1;} // 51 characters // Breakdown: // for(int p=n; Saves one semicolon to put declaration into for loop // n%10>0;) Basic check-for-zero // n/= Pretty simple, discarding one number off of n at a time // p%(n%10)>0? If p (the …
47 code-golf 

14
お気に入りの単語でコードを作成する
たお気に入りの6文字の一般的な英語の単語選んでいない文字を繰り返しなどを、wombat。 各行と列に単語のすべての文字が小文字で任意の順序で含まれるように、コメントなしでN×Nの文字グリッドでプログラムを記述します。プログラムは、36文字以上で単語の定義を出力する必要があります。 ルール stdoutへの出力。入力はありません。 あなたの言葉はDictionary.comにある必要があり、azのみを含んでいる必要があります。固有名詞、頭字語、略語、短縮形はありません。 プログラムと出力には、印刷可能なASCII文字(16進コード20〜7E)のみを含めることができます。(これは、プログラムグリッド内の必要な改行をカウントしていません。) コメントは、コンパイラまたはインタープリターが従来無視していたものです。出力に寄与しないコード、または公式に実行されないコードを使用できます。 出力定義は文法的かつ正確でなければなりませんが、確かに面白いか賢いかもしれません。 単語の一意の6文字を小文字で少なくとも含む行または列はすべて有効です。対角線は関係ありません。 得点 これはコードゴルフですが、すべての提出物は同じ正方形形式でなければならないため、Nでスコアを指定するだけです。最低のNが勝ち、もちろん6未満のNは不可能です。同点の場合、最も投票数の多い回答が勝ちます。 例 あなたの言葉がwombatあなたのプログラムだった場合、次のようになります(N = 7): wombatD ombatEw mbatFwo bat(wom atWwomb tBwomba )wombat すべての行とすべての列に文字があることに注意してくださいw o m b a t。 出力は次のとおりです:(40文字) Cute short-legged Australian marsupials.

15
元素の周期表-コードゴルフ
実用的なゴルフに基づいて-米国 あなたのタスクは、ununoctium(118)までの要素名が与えられた要素の略語(シンボル)を見つけることです。ウィキペディアの周期表を使用してください。 squeamish ossifrageのおかげで、略語の要素の完全なリストを見つけることができます。 http://pastebin.com/DNZMWmuf。 外部リソースを使用することはできません。さらに、特に周期表の要素に関する組み込みデータを使用することはできません。標準の抜け穴が適用されます。 入力 入力は、stdin、file、 prompt、inputなど 入力フォーマット: 以下はすべて有効な入力です。 Carbon carbon CARBON cArBOn 基本的に、要素名-大文字と小文字は区別されません。 スペルミスや無効な要素名を処理する必要はありません。無効な入力は未定義の動作です。 出力: 要素のシンボル。最初の文字は大文字にし、残りは大文字にする必要があります は小文字にする必要があります。 出力例: C テストケース: Carbon -> C NiTROGen -> N Sodium -> Na Gold -> Au Silver -> Ag Tin -> Sn 状態よりも多くの要素があるので、これらの一般的なルールを見つけることは難しいと思います。 これはコードゴルフです。最短のコードが勝ちます!

18
Perlでのゴルフのヒント?
Perlでゴルフをするための一般的なヒントは何ですか?私は、少なくともある程度Perlに固有のゴルフ問題全般のコーディングに適用できるアイデアを探しています(たとえば、「コメントの削除」は答えではありません)。回答ごとに1つのヒントを投稿してください。
47 code-golf  tips  perl 

30
ピクセルアート、エピソード1:スーパーマリオを表示
それはa-meです! 今日のタスクは簡単です。プログラム、またはNES上のスーパーマリオブラザーズからのアイドルな小さなマリオスプライトを青い背景の上に表示する関数を作成します。 画面/ウィンドウ/ブラウザのどこにでも12 * 16ピクセルを表示する限り、どんな種類のエントリでも有効です。 (編集:言語がピクセルアートを実行できない場合、表示される画像を拡大できます。ASCIIアートまたはHTMLアートを出力することもできますが、適切な色を使用します。) 画像(400%に拡大): 次の色を使用する必要があります。 青:#6B8CFF 赤:#B13425 緑/茶色:#6A6B04 オレンジ:#E39D25 最短プログラム(文字数)が勝ちます! 標準的な抜け穴が適用されます(特に、ネットワーク接続は許可されません)が、プログラムでの画像ファイルのハードコーディングと表示は許可されます。(このトリックを使用したエントリは個別にランク付けされます) さあ! 現在のリーダーボード コードのみを使用した最短回答: Mathematica、141。https : //codegolf.stackexchange.com/a/39916/10732(by MartinBüttner) バッシュ、158 https://codegolf.stackexchange.com/a/40002/10732(hpsMouseによります) ... 何らかのハードコードされた画像を使用した最短回答: HTML、102b。https://codegolf.stackexchange.com/a/39923/10732(xemおよびNiettheDarkAbsolによる) PHP、131b。https://codegolf.stackexchange.com/a/39926/10732(by NiettheDarkAbsol) ...

15
Stack Overflowロゴの生成[終了]
課題は、StackOverflowロゴに似た画像を生成することです。 出力には以下が含まれている必要があります。 画像サイズ64 * 64以上 グレー| __ | 成形ベース 基部から上がってくる湾曲したセグメント化されたスタック。セグメントはグレーからオレンジにフェードし、約90度右に曲がります。セグメントの数は5〜7の間である必要があり、6が優先されます。 注:色のないASCIIディスプレイの場合、「0」文字を使用してグレーを表し、「9」をオレンジ色で表します。「1」から「8」は中間の色合いを表します。 制限事項: 画像を生成する必要があります。画像の読み込みやコード/バイナリへの保存は許可されていません。 追加のルール/情報: 画像はロゴと同一である必要はありませんが、認識できるものでなければなりません。 表示方法はあなた次第です。画像ファイルに保存することも、画面に表示することもできます。 審査基準/受賞基準: 画像の精度が主な条件です 世代の優雅さは二次的な条件です

30
1、2、3、4、5、6、7、8、および9を「1」、「2」、「3」などに変換する
勝者:professorfish's bash answer!全部で9バイト!うわー! 引き続き回答を送信できますが、勝つことはできません。後世のために残された元の投稿: あなたの目標は、1から9までの整数を、それが表す単語に変換することです。 あなたは小数を心配する必要はありません ユーザーは数字を入力します。10以上は入力しないと仮定します ユーザーは、いくつかの点で番号を入力する必要がありますが、プログラムがそれを読み込む方法は重要ではありません。テキストファイルの読み取りなど、stdinを使用できますが、ユーザーはキーボードの9ボタンを(たとえば)ある時点で押す必要があります。 大文字と小文字は区別されません(つまり、「one」、「One」、「oNe」、「OnE」などはすべて受け入れられます) HTTP /などの要求が許可されている、しかし、私はC ++のプログラムを持っていた場合は、要求があなたの最終的なコード(例えばのバイト数へのカウントに行われているサーバーで実行される任意のコードでは、HTTPリクエスト、HTTPリクエスト数で使用されるPHPコードを作ります) コンパイルして実行できるものなら何でも構いません このコンテストは 2014年6月27日に終了しました(投稿から7日後)。 これはコードゴルフなので、最短のコードが勝ちます

30
「N NE E SE S SW W NW」を印刷
これはほとんど些細なことのように思えますが、Jでの文字通りの解決策にある程度の努力を払うことができなかったので、まともな挑戦をするかもしれないと思いました(ただし、これはJ特有の挑戦ではありません)。 タイトルがすべてを語っています。返すか出力するプログラムまたは関数(引数を取らない)を記述するだけです。 N NE E SE S SW W NW スペースの代わりに改行を使用できます。 次のような文字列の配列を返す引数なしの関数 ['N', 'NE', 'E', 'SE', 'S', 'SW', 'W', 'NW'] も許容されます。 文字は大文字でも小文字でもかまいませんが、混在させることはできません。

30
RGBカラーグリッドを生成する
この!RGBカラーグリッドです... 基本的には、次の2次元マトリックスです。 最初の行と最初の列は赤です。 2番目の行と2番目の列は緑色です。 3番目の行と3番目の列は青です。 以下に、文字R、G、およびBを使用して、グラフィカルに説明する色を示します。 グリッド上の各スペースの色の計算方法は次のとおりです。 赤+赤=赤(#FF0000) 緑+緑=緑(#00FF00) 青+青=青(#0000FF) 赤+緑=黄(#FFFF00) 赤+青=紫(#FF00FF) 緑+青=ティール(#00FFFF) 挑戦 RGBカラーグリッドを生成するコードを記述します。 それはコードゴルフですので、最小バイト数でそれを試みてください。 プログラミング言語またはマークアップ言語を使用して、グリッドを生成します。 私が気にすること: 結果は、定義された色でRGBグリッドをグラフィカルに表示する必要があります。 気にしないこと: 出力が画像、HTML、SVG、またはその他のマークアップの場合。 カラーブロックのサイズまたは形状。 ブロック間のまたはブロックの周りの境界線、間隔など。 行と列の色がどうあるべきかを示すラベルを持っている必要はありません。

30
Atari ST爆弾をいくつか描いてみましょう!
前書き アタリSTは、モトローラ68000マイクロプロセッサを搭載し早期に90の時代に半ば80年代からかなり人気のパーソナルコンピュータでした。このマシンでは、キャッチされていないCPU例外に対するオペレーティングシステムのデフォルトの動作は、次の図に示すように、画面に爆弾の列を表示することでした。 出典:https : //commons.wikimedia.org/wiki/File : Row_of_bombs.png 注意:OSのバージョンによって、爆弾のグラフィックは若干異なる場合があります。しかし、これを参考にしてみましょう。 爆弾の数は例外ベクトルに依存し、最も一般的なものは次のとおりです。 ($ 008)バスエラー:2爆弾 ($ 00c)アドレスエラー:3爆弾 ($ 010)違法な指示:4爆弾 ゴール あなたの目標は、このようなAtari ST爆弾のASCIIアートを印刷または出力するプログラムまたは関数を作成することです。 入力 表示する爆弾の数を表す整数。コードは最も一般的な値である2、3、4をサポートする必要があります。サポートする爆弾の数を減らしたり増やしたりするのは問題ありませんが、ボーナスは必要ありません。 出力 元の爆弾は16x16ピクセルのタイルで構成され、ASCIIとバイナリの両方でここに表されます。 ....##.......... 0000110000000000 .#.#..#......... 0101001000000000 .......#........ 0000000100000000 #..#....#....... 1001000010000000 ..#...#####..... 0010001111100000 ......#####..... 0000001111100000 ....#########... 0000111111111000 ...###########.. 0001111111111100 ...###########.. 0001111111111100 ..#############. 0011111111111110 ..########.####. 0011111111011110 ...#######.###.. 0001111111011100 ...######.####.. 0001111110111100 ....#########... 0000111111111000 …

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