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

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

8
ASCIIルーラーの生成
課題は、ASCII文字カウントルーラーを次の形式で生成することです。 +-------------------------------------------------------------------------+ || | | | | | | | | | | | | | | | |0 10 20 30 40 50 60 70 | | | +-------------------------------------------------------------------------+ ルーラーの長さは、10の倍数までスケーラブルでなければなりません。 ルール: 定規は水平でなければなりません。 物事を簡単にするために、ルーラーは、1000マーク、すべての数字が左揃え、最後の数字の1スペース後まで動作する必要があるとしましょう。 長さゼロの定規を要求すると、NaRが出力されます。 負の数は、逆のルーラー(-90、-80、-70、...)を右揃えの数で、上記とまったく同じ形式で印刷する必要があります そして、コンソールに印刷するだけでいい 準備完了、ゴルフ!

3
そりパッキング問題
サンタのエルフは、プレゼントの現在のバッチがサンタのそりに収まるかどうかを判断するのに助けが必要です。彼らを助けるために、あなたが選んだ言語で可能な限り短いプログラムを書いてください。 制約 サンタのそりは、幅6フィート、長さ12フィート、深さ4フィートです。 プレゼントは壊れやすい可能性があるため、互いに積み重ねることはできません。 プレゼントは好きなように回転させたり反転させたりすることができますが、サンタはかなり強迫観念に満ちているので、回転を90度の倍数に保ちます。 ノースポールの健康と安全の規制では、プレゼントがそりの上から1フィートを超えて突き出てはならない(したがって、高さが5フィートを超えてはならない)と規定されています。 入力 入力はオンにSTDINなり、バッチ内のプレゼントの数を表す1つの整数に、プレゼントの次元のリストが続きます-1行に1つ、スペースで区切られた3つの次元(フィート単位)。 例: 1 6 12 5 6 1 12 3 1 12 4 1 12 1 1 12 5 1 12 3 1 12 5 1 4 3 13 1 6 12 6 出力 プレゼントをそりに詰め込める場合は「YES」、できない場合は「NO」と出力する必要があります。 上記の例の出力: YES YES NO NO テストスクリプト 前と同じように、JoeyとVenteroによって書かれたいくつかのテストスクリプトを使用して、このタスクのテストを作成しました。 バッシュ …
11 code-golf 

13
Hello World Rainbow
非マークアップ言語で色を扱うことは、多くの場合、物事を複雑にします。さまざまな言語で色がどのように使用されるかについて、いくつかのバリエーションを確認したいと思います。 このコンペティションの目的は、「Hello World」を七色の虹で出力することです。 ウィキペディアによると、これらは7色です。 Red #FF0000 (RGB: 255, 0, 0) Orange #FF7F00 (RGB: 255, 127, 0) Yellow #FFFF00 (RGB: 255, 255, 0) Green #00FF00 (RGB: 0, 255, 0) Blue #0000FF (RGB: 0, 0, 255) Indigo #6600FF (RGB: 111, 0, 255) Violet #8B00FF (RGB: 143, 0, 255) ルール プログラムは「Hello World」を出力する必要があります。(必ずしもテキストである必要はありませんが、「Hello World」として識別できる必要があります) …

2
六角形のブロックボックス?
6桁の16進数の入力/引数を取る任意のプログラミング言語でプログラムまたは関数を記述します。入力/引数には、6つの値または6文字の文字列を指定できます。 プログラムは、指定された16進数のみをスペースと組み合わせて含む、正確に8文字幅の長方形のブロックを出力する必要があります(+改行)。長方形のブロックは、指定された6つの値ごとに1つずつ、より小さなブロック形状の組み合わせです。 次に、2つのデモ用サンプル入力とサンプル有効出力を示します。 サンプル入力: "464fa6" or [4, 6, 4, 15, 10, 6] 1つの有効なソリューション出力: 44 66 ff 44 66 ff 66 ff aa f aaa ffff aa ffff aaa 6 44 66666 44 サンプル入力: "35bf12" 1つの有効なソリューション出力: 55555 22 bbbbbbbb b b b 33 fffff 3 ff ff ffffff 1 ルール: 出力は長方形である必要があります …
11 code-golf 

8
codegolf.com:時間の節約
codegolf.comから(2011年9月15日の時点では読み込まれていませんでした)、私を夢中にさせていました。STDINからの時間を読み出し、STDOUTに厳しい形のクロックを印刷し、マーキングh時間に及びm分で(5の倍数に丸めダウン)及びxそれらが重複する場合、未使用のダニを用いてマークされo、その結果 echo "23:13" | perl script.pl 利回り o h o o m o o o o o o o 私のは: $/=':';($h,$m)=<>;printf'%9s %5s%8s %2s%14s %s%16s %2s%14s %5s%8s %9s',map{qw'o h m x'[2*($_==int$m/5)^$_==$h%12]}map{$_,11-$_}0..5 Perlを使用した136文字。このサイトにアクセスできたらいいのにと思いますが、リーダーもPerlを使用して100歳未満だったことを思い出すようです。他の誰かがそれを打つことができますか?
11 code-golf 

5
楽譜通訳
ASCII楽譜が与えられた場合、ノートとそれに対応する長さを出力できる必要があります。スコアには5〜15音が含まれ、譜表に書き写されます。ステーブは、スペースの行で区切られた-(マイナス)文字で構成される5本の水平線で構成されます。ステーブの一番下の行は、音符「E」に相当します。一番下の行のすぐ上のスペースの行は「F」を示し、その下の「E」よりも高いピッチです。これは以下のように続きます。メモは、「A」で再び開始する前に「G」までしか表示されないことに注意してください。下記参照: F ---------- E D ---------- C B ---------- A G ---------- F E ---------- 文字は入力に含まれないことに注意してください。音符はステーブの上にao(小文字ooh)文字を使用して重ねられ、「音符の頭」を示します。この音符の頭は音符の頻度を示しているため、上記のようにアルファベット順で表示されます。たとえば、次のようにスコアに付けられた音符は「A」を示します。 ---- ---- ---- o ---- ---- 上記の「A」のような音符は「全音符」と呼ばれ、1ビート全体で演奏されます。他の持続時間は、音符から上昇する「ステム」と、0〜3個の「フラグ」を含めることで示すことができます。ステムは3つで構成されています| (パイプ、または垂直バー)音符の頭のすぐ上にスタックされた文字。フラグのないステムは「クォーターノート」と見なされ、1/4ビートで演奏されます。フラグは\(バックスラッシュ)文字であり、ステムの右側にあります。各ステムは、ノートが演奏される時間を半分にします。各音符の長さは、音符全体、4分音符、8分音符、16分音符、または32秒音符のいずれかです。これは、各タイプのメモがどのようにAを探すかです。 -------------------- ----|---|\--|\--|\-- | | |\ |\ ----|---|---|---|\-- o o o o o -------------------- -------------------- 複数のノートをまとめると、スコアが得られます。各ノートは4文字幅と見なすことができ、各4文字ブロックの最初の列にノートがあります。例えば ​​: |\ ----|\--|\---------- |\ | |\ ----o---|---o---|\-- | o | |---------------o--- …

10
サブシーケンスの最大合計を見つける
整数のシーケンスが与えられた場合、シーケンスのサブシーケンス(連続した位置の整数)の最大合計を見つけます。サブシーケンスは空にすることができます(この場合、合計は0です)。 入力は標準入力から読み込まれ、1行に1つの整数が入ります。最大の合計を標準出力に書き込む必要があります。 私はあなたのために小さなジェネレータを書きました: #include <stdio.h> #include <assert.h> /* From http://en.wikipedia.org/wiki/Random_number_generation */ unsigned m_w; unsigned m_z; unsigned get_random() { m_z = 36969 * (m_z & 65535) + (m_z >> 16); m_w = 18000 * (m_w & 65535) + (m_w >> 16); return (m_z << 16) + m_w; /* 32-bit result */ …

30
0からnまでのすべての回文数(10進数)を列挙する
非負の整数nが与えられた場合、0〜n(範囲を含む)の間のすべての回文数(10進数)を列挙します。回文番号は、数字が逆になっても同じままです。 最初の回文数(10を底とする)は、次のとおりです。 0、1、2、3、4、5、6、7、8、9、11、22、33、44、55、66、77、88、99、101、111、121、131、141、151、 161、171、181、191、202、212、222、232、242、252、262、272、282、292、303、313、323、333、343、353、363、373、383、393、404、 414、424、434、444、454、464、474、484、494、505、515、... これは、最少のキャラクターに賞品が贈られるコードゴルフです。回文数は、1行に1つずつ標準出力に出力する必要があります。プログラムは、コマンドラインまたは標準入力からnを読み取る必要があります。
11 code-golf  number 

5
2日間の差を計算します。
別の日付操作の問題:P 仕事 ユーザーが指定した2つの日付の差を計算するプログラムまたは関数を作成します。 入出力 前のものと同様に、入力はYYYYMMDDスペース、コンマ,、またはマイナス記号で区切られた2つ-です。 入力値の例: 20100101-20010911 20110620-20121223 19000101 20101010 33330101,19960229 00010101 99991231 出力は整数であり、2つの日付の日数の差です。 たとえば、入力20110101-20100101yields 365および33320229 17000101yields 596124。 結果をテストできます ここで ここで。(以下のrintaunのコメントを参照してください。)2つの日付が同じ0場合、日付が有効であればプログラムはを返します(スコアを参照)。 制限 もちろん、あなたがしなければならない使用しない任意の関数/クラスの種類/ ...タイムスタンプまたは日付に関連している、とあなたが使用する必要がありますグレゴリオ暦を。 スコア あなたのコードは、制限を守らない場合score = -∞。 デフォルトbonusは1です。 入力の順序(たとえば、20100101,20110101return 365または-365)に関係なくコードが機能する場合bonus+=1。 あなたのコードが処理できる場合は年0、bonus+=0.5。 あなたのコードが/日付(1〜12の間)のように、(1〜31の間)、無効な月を認識した場合20109901や34720132、および印刷物E(&などのプログラムや戻り何かを終了0)、 bonus+=1。 かかわらず、上記のルールの、あなたのコードは無効な日付を認識した場合、のような20100230、20100229あるいは20111131、および印刷物E(&プログラムまたは返すようなものを終了0)、 bonus+=1。 上記の2つのルールに関係なく、コードが20100101|20100202orなどの無効な入力文字列を認識し2010010120100202、印刷E(&がプログラムを終了する、またはのようなものを返す0)する場合bonus+=1。 score = floor(-4.2*code.length/bonus)。最高スコアのコードが勝ちます。2つの上位コードのスコアが同じ場合、ボーナスが最も高いコードが勝ちます。2つの上位コードが同じスコアとボーナスの両方を持っている場合、最高得票のコードが勝ちます。 (期限:+1投票数が多い(または等しい)コードが5つ以上ある場合。)
11 code-golf  date 

7
自己複製プログラムを作成します。
実行時に自分自身をコピーする簡単なプログラムを作成します。 プログラムは、Windows、Linuxなどの何らかの実行可能ファイルである必要があり、元の実行可能ファイルと同じ新しい実行可能ファイルをランダムな名前で生成し、終了する必要があります。 あなたのプログラムは、いかなる種類のファイルの読み取りやコピーも含むべきではありません。新しい実行可能ファイルを生成するためのファイル書き込みのみが許可されます。 (PS。ウィキペディアで記事にSelf-replicating programリダイレクトするとき、私はかなり恥ずかしかったComputer virus...:/ ...) 最小の実行可能ファイルサイズが優先されます。あなたの答えは、適切なOSとコンパイラを備えたプログラミングコード、アセンブリコード、または実行可能ファイルのHEXダンプです。
11 code-golf  quine 

8
Skatのスコアカウンター
あなたの仕事は、Skatの手のポイントを数える小さなプログラムを書くことです。Skatデッキには7〜10枚のカード、Jack、Queen、King、Ace(Unter、Ober、König、Dausと呼ばれる)があります。クラブ、スペード、ハート、ダイアモンドの代わりに、ドングリ、葉、ハート、ベルのあるドイツのスーツを使用します。ポイントはカードの番号によって決まります: 7、8、9は0ポイントです ウンターは2ポイントです Oberは3ポイントです ケーニヒは4ポイントです 10は10ポイントです ダウスは11ポイントです。 入出力 入力形式は2つの記号で構成されます。最初の記号は値を表し、2番目の記号はスーツを表します。 7、8、および9はそれらの自己を表します 0(ゼロ)は10を表します ウンター、オーバー、ケーニヒ、ダウスは、最初の文字(U、O、D)にちなんで命名されています ドングリ、葉、ハート、ベリーについても同じ(A、L、H、B) 入力は、単一の空白で区切られた単一行のカードです。どこからでも入力を取得できますが、コマンドライン引数も使用できます。出力は手の値であり、出力されるか、終了コードとして返されます。手にカードが2回表示された場合、プログラムの出力にエラーが表示される必要があります。(したがって7A 0L 7A、の代わりにエラーを返す必要があります10)。プログラムが結果を出力するデフォルトの方法である場合、エラーを表示する代わりに255の終了コードで終了することもできます。 例 7A 8A 9A UA OA KA 0A DA 7L 8L 9L UL OL KL 0L DL 7H 8H 9H UH OH KH 0H DH 7B 8B 9B UB OB KB 0B DB120を与える 7A …

2
Haskellを使用して配列を必要とするタスクを処理する良い方法は何ですか?
多くの場合、タスクには実際の配列が必要です。たとえば、Befungeまたは> <>を実装するタスクを取ります。私はArrayこのためにモジュールを使用しようとしましたが、非常に冗長でコーディングしているように感じるので、本当に面倒です。そのようなコードゴルフのタスクをより冗長で機能的にする方法を誰かが私に助けてもらえますか?

15
ホリデーギフト交換
私たちの社内ゴルフからのもう一つの問題...これは昨年の休暇中の問題です。 問題 アンディ、バーブ、カール、ディディ、アール、フランはお互いにプレゼントを買っています。ギフト交換の名前を描きます。 各人が1つのギフトを購入し、1つのギフトを受け取ります。 誰も自分の贈り物を買いません。 ソリューションを複数回実行すると、異なる結果が得られます(実行者と受信者のペアが実行ごとに予測可能または同一であってはなりません)。 入力 なし。 出力 この例のようにフォーマット: アンディはバーブのために買います バーブはカールのために買います カールは ディディのために買いますディディは アールのために買いますアールは フランのために買いますフランはアンディのために買います
11 code-golf 

26
数学的な組み合わせ
次のような入力を受け取るプログラムを作成します。 n,k 次に計算します: そして、結果を印刷します。 数値の例: 入力: 5,2 内部計算: 印刷出力: 10 私は65文字のPythonソリューションに勝る答えを探していますが、すべての言語は明らかに歓迎されています。 私のソリューションは次のとおりです。 n,k=input();f=lambda x:+(x<2)or x*f(x-1);print f(n)/(f(k)*f(n-k)) 編集: この質問はcodegolfのWebサイトの数学的な組み合わせパズルからのものであることを認めます。私の答えはあまり進歩していないように見えるかもしれませんが、このパズルのリーダーはほぼ半分のキャラクターでそれを解決しました。 言語ごとの現在の最低文字数は次のとおりです。 Perl:35 ルビー:36 Python:39 PHP:62

1
gzipファイルの圧縮ユーティリティを作成する
この課題のタスクは次のとおりです。 stdinまたはその他の場所(ただし、ハードコーディングしてはいけません)から妥当なサイズ(たとえば<16 MB)のファイルを読み取るプログラムを作成し、圧縮された出力をstdoutに出力します。出力は有効なgzip圧縮ファイルである必要があり、圧縮ファイルがgunzipを実行する場合、以前とまったく同じファイルが生成されます。 ルール 使用するプログラミング言語は、この競争が始まる前に知っていなければなりません プログラムのスコアは、ソースコードまたはアセンブルされたプログラムの文字数(短い方)です。 既存の圧縮ライブラリを使用することは許可されていません。 楽しんで!

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