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

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

8
四面体の表面積
チャレンジ この課題は非常に簡単です。4つの3次元ポイントが与えられたら、それらが形成する四面体の表面積を計算します。これはcode-golfなので、最短のコードが優先されます。標準的な抜け穴が適用されますが、4つのポイントが与えられた場合にこのタスクを実行する組み込み関数は禁止されるという追加の規定があります。 4つのポイントすべてが明確であり、STDINを介して1行に1ポイント与えられると仮定できます。各ポイントは、3つの16ビット符号なし整数で構成されます。3つのスペースで区切られた整数など、作業を簡単にする場合は、各ポイントの正確な形式を変更できます。ただし、各ポイントを別々の行に置くことは必須です。出力は、STDOUTを介して、少なくとも小数点以下2桁にする必要があります。 知らない人にとっては、四面体は4つの三角形の面で構成される3次元の立体です。 例 # input (format is up to you, see clarification above) [23822, 47484, 57901] [3305, 23847, 42159] [19804, 11366, 14013] [52278, 28626, 52757] # output 2932496435.95 私の数学が間違っていることに気づいたら、メモを残してください。
16 code-golf  math  3d 

8
山脈の範囲を描く
フィボナッチドミノタイルに触発され、この問題は、別の有名な組み合わせシーケンスを表すASCIIアートの生成に関するものです。 N段山図は正確に使用して、山脈の図であるN「/」とN「\」文字は、その最初の「高度」の下ディップ決して連続曲線をスケッチするように文字、。例えば、 /\/\ /\/ \ そして /\ /\/ \/\ どちらも4段階の山の図ですが、 /\ /\/\ \/ ではありません。 入力 プログラムは、stdinからの整数nを受け入れるか、関数のパラメーターとして受け入れる必要があります。 出力 すべてのnステップ山図を標準出力に出力します。図の順序は任意ですが、何らかの種類の空白で区切る必要があります。異なる図を水平、垂直などに出力するかどうかを決定できます。 ドミノタイルの問題と同様に、任意の空白を使用できます。これには、印刷出力の前後の余分な改行が含まれます。 例 n = 3の有効な出力のサンプル: 有効な出力A: /\ /\ /\ / \ /\/\ /\/\/\ / \/\ /\/ \ / \ / \ 有効な出力B: /\ /\/ \ /\/\ / \ /\/\/\ /\ / \ …

25
一瞬よりも短い!
チャレンジ この質問のタスクは、整数の入力配列を、その配列内のすべての整数の2回目の出現で分割することです。 十分に明確ではない?ここに役立つ例があります 入力配列: [2 1 1 2 3 2 2 4 5 6 7 3 7 0 5] 出力: [[2 1] [] [3 2 2 4 5 6 7] [] [0] []] 説明: これは、2番目の要素だけが太字で強調表示されている配列です。 [2 1 1 2 3 2 2 4 5 6 7 3 7 0 5 …

13
集計を表示します(さまざまなベースで)
タリーは、ベース5で機能するシンプルなカウントシステムです。世界中でさまざまな集計システムが使用されていますが、ほとんどの英語圏の国で使用されているものは、おそらく最もシンプルです。 5番目のマークごとに、前の4つのコレクションに水平線が引かれます。これにより、タリーマークが5つのグループにクラスター化されます(また、カウントが簡単になります)。 指定した値までの集計マークを表示するプログラムを作成します。しかし、ベース5だけで集計するのは退屈です!したがって、プログラムは異なるベースで集計を表示することもできなければなりません。 入力 入力は、コンマ(またはまたは)で区切られた1つまたは2つの負でない整数値です。最初の数値は、集計によって表示される値です。2番目の値は集計のベースです。2番目の値が指定されていない場合、基数5を使用します。98,4 出力 出力は、ASCIIアートタリーマークとして表される入力値になります。以下に、プログラムをテストできるいくつかの例を示します-出力はそれらと正確に一致するはずです! 入力:12または12,5 | | | | | | | | | | -+-+-+-+- -+-+-+-+- | | | | | | | | | | | | 入力: 7,3 | | | | | -+-+- -+-+- | | | | | | 入力: 4,2 | …

2
逆の正規表現-正規表現を分解する
問題 いくつかのコードで使用する必要がある正規表現がたくさんありますが、正規表現をサポートしていないプログラミング言語を使用しています!幸いなことに、テスト文字列は最大長であり、印刷可能なASCIIのみで構成されることがわかっています。 チャレンジ 入力する必要があり、正規表現と数n、及び出力の印刷可能なASCII文字(ASCIIコード32包括的な126、から構成されるすべての文字列に対して~未満又は等しい長さの、ないタブや改行)n正規表現ものと一致します。コードで組み込みの正規表現または正規表現一致関数を使用することは一切できません。正規表現は次のものに制限されます。 リテラル文字(およびエスケープ、文字を強制的にリテラルにするため\.、リテラル.、\nはリテラルn(ちょうどに相当n)、および\wに相当しwます。エスケープシーケンスをサポートする必要はありません。) . -ワイルドカード(任意の文字) 文字クラスは、[abc]「aまたはbまたはc」を[d-f]意味し、dからfまでのすべてを意味します(so、dまたはeまたはf)。文字クラスで特別な意味を持つ唯一の文字は[、および](常にエスケープされるため、それらを心配しないでください)、\(エスケープ文字、もちろん)、^文字クラスの先頭(否定です) )、および-(範囲です)。 |-OR演算子、交互。foo|bar手段のいずれかfooまたはbar、そして(ab|cd)e試合のいずれかabeまたはcde。 * -貪欲に0回以上繰り返された前のトークンに一致します(可能な限り何度も繰り返します) + -貪欲な1回以上の繰り返し ? -0回または1回 のトークンをグループ化するために|、括弧でグループ化します*。+、または? 入力正規表現は常に有効になります(つまり、あなたは次のように入力を処理する必要はありません?abcか、(fooまたは無効な入力)。任意の順序で文字列を出力できますが、各文字列は一度だけ表示する必要があります(重複を出力しないでください)。 テストケース 入力:.*、1 出力:(空の文字列)、 、、 、...、 、!"}~ 入力:w\w+、3 出力:ww、www 入力:[abx-z][^ -}][\\]、3 出力:a~\、b~\、x~\、y~\、z~\ 入力:ab*a|c[de]*、3 出力:c、cd、ce、aa、cde、ced、cdd、cee、aba 入力:(foo)+(bar)?!?、6 出力:foo、foo!、foofoo、foobar 入力:(a+|b*c)d、4 出力:ad、cd、aad、bcd、aaad、bbcd 入力:p+cg、4 出力:pcg、ppcg 入力:a{3}、4 出力:a{3} 勝者 これはcode-golfなので、バイト単位の最短コードが勝ちます!

2
文字列をエンコードするために自分自身を並べ替えるプログラム(クインバリアント)
次の80文字の行を印刷するプログラムを作成します。 codegolf.stackexchange.comのこのプログラムは、文字列をエンコードするためにそれ自体を置換します。 その後、1行の入力を受け入れ、そのコードポイントを並べ替えてソースコードを出力します(追加も削除もされません)。そのコードが実行されるとき、印刷された行が入力の最新の行であることを除いて、同じことが起こる必要があります。 Perlスタイルの正規表現^[A-Za-z0-9. ]{80}$は、任意の入力行に一致します。追加の仮定を行うことはできません。 提出のスコアは、ソースコードのコードポイントの数から94を引いたものです。低いほど良い。 コードはQUINE(に受け入れられない何もないしなければならない例えば、ファイルの読み取りを)。特に、負のスコアを持つ投稿は、なんとか93として不正行為でなければなりません!64 80未満です。 2014-04-21を追加しました。プログラムのソースコード全体が、コードポイントをカウントする文字エンコーディングで整形式でなければなりません。たとえば、UTF-8の末尾のバイト範囲(80..BF)で80個の連続したバイトを使用し、それぞれを単一のU + FFFD REPLACEMENT CHARACTERとしてカウントすることはできません(さらに悪いことに、コードポイントではないため)。 また、エンコードは複数のコードポイント(コード化する方法を許可する場合など SCSUを、)、あなたのプログラムだけでなく、それが直接的または間接的に発生し、すべてのプログラムをのみ、そのうちの1つ(または少なくともすべてを使用しなければならないコード全体同等に扱われなければなりません)。
16 code-golf  quine 

18
最下層パリンドローム
数を指定してn、base の回文であるb ≥ 2ような最小のベースを見つける関数を記述します。たとえば、28の3進表現が1001であるため、入力は基数を返す必要があります。基数2と基数5の両方で回文ですが、出力は2 <5でなければなりません。nb283932 入力 正の整数n < 2^31。 出力 b ≥ 2の基底b表現がn回文であるような最小の基底を返します。先行ゼロを想定しないでください。 サンプル(入力=>出力): 11 => 10 32 => 7 59 => 4 111 => 6 ルール 最短のコードが優先されます。

2
ブール式の圧縮
構文 ~ない /\と \/もしくは t真 f偽 P、Q、FISH、など:変数 (演算子は優先順位の順に与えられます) 前書き 一部のブール式は、短くするために異なる形式に変更できます。たとえば、式 ~(~P /\ ~Q) 短い形式に変更できます P\/Q 数式 P \/ ~P 短い形式に変更できます t チャレンジ この課題では、のみ使用して、任意のブール式が与えられると、そのプログラムの書き込みに必要とされる/\、\/、~、t、f複数の最短形態が存在し得るので、括弧、ブール(大文字で)変数、および空白を、(最短形式を出力します)変数のすべての割り当てに相当する式の文字。最短のコード(すべての言語)が勝ちます。I / Oは、合理的な方法で実行できます。 また、答えを確認するのは難しいので、コードがどのように機能するかの簡単な説明を含めると役立ちます(ただし、必須ではありません)。

2
アスキーアート円グラフ
あなたの目標は、ASCIIアートの円グラフを出力することです。これはコードゴルフなので、最短のプログラム(文字ではなくソースコードのバイト数をカウントする)が優先されます。 外部ソフトウェアまたはAPIは許可されていません。各言語のネイティブ言語のみ。 円の開始角度と方向(時計回り/反時計回り)は重要ではありません。文字の高さは常に幅よりも優れているため、出力は楕円形に見えることがあります。 「背景」(パイの左または右の文字)はスペースでなければなりません。 入力として、3つの変数があります(初期化するためのコードを投稿してください。これらの変数の初期化はスコアにカウントされません): k:文字の配列。各文字は、円グラフで使用する必要があるものです v:フロートの配列。それは各キャラクターの割合です。の長さはの長さvと等しくなりkます。その要素の合計は常に1.0です r :整数&gt;1。これは円グラフの半径です。 ボーナス:不完全なパイを出力できる場合は、スコアの20%を差し引きます(∑| v |i = 1v私)&lt; 1(∑私=1|v|v私)&lt;1(\sum_{i=1}^{|v|} v_i)<1)。

16
T-SQLでのゴルフのヒント
T-SQLでゴルフをするための一般的なヒントは何ですか?私は、少なくともT-SQLに特有のゴルフ問題全般のコーディングに適用できるアイデアを探しています。回答ごとに1つのヒントを投稿してください。 元のアイデアをくれたMarcogに感謝します。:)
16 code-golf  tips  sql 

3
キング+ルークvsキング
それは別のよくプレイされるチェスゲームの終わりです。あなたは白人プレイヤーであり、まだルークとあなたの王がいます。対戦相手のキングは残っています。 あなたは白人なので、あなたの番です。このチェスの試合をプレイするプログラムを作成します。その出力は、一連の動き、gifアニメーション、ASCIIアートなど、何でもかまいません。 当たり前のように思えますが、明示的に述べます。ゲームに勝つ必要があります(限られた数の動きで)。このポジションから勝つことは常に可能です。そのルークを失うことはありません。遅らせないでください。 プログラムは、開始位置と各黒の動きに対して人間の入力を受け入れる場合と受け入れない場合があります(これは正当な位置、つまりキングが互いに触れていないことを安全に想定できます)。そうでない場合、黒王のランダムな開始位置とランダムな動きで十分です。 スコア スコアは、コードのバイト単位の長さ+ボーナスになります。すべての言語が許可され、最低スコアが勝ちます。 ボーナス プログラムで人間が定義した開始位置とランダムな位置の両方を許可する場合は-50。人間は標準入力、ファイル、GUIから入力できます... プログラムで人間とランダムの両方のプレイヤーが黒王を動かすことができる場合は-100 外部チェスソルバーまたは組み込みのチェスライブラリに依存している場合は+12345 幸運を! 更新! 追加ルール:試合はチェックメイトまでプレイする必要があります。黒は辞任せず、チェス盤の外に飛び出さず、エイリアンに誘getされません。 ヒント あなたは、おそらくから助けを得ることができ、この質問にchess.se。
16 code-golf  chess 

14
自己完結型ログ
問題" 関数log(または他の3文字の名前)を定義します。この関数は、呼び出されたときに、命令(ソースとして)と最初の引数の両方を記録/印刷/書き込み(問題の言語のデフォルト)します。言い換えると: i=777 j=333 log(i) //outputs: "log(i) 777" log(i+j+1) //outputs: "log(i+j+1) 1111" すべての実用的な目的のために出力i: 777は十分ですが、一部の言語ではそのための非常に特定のリフレクションライブラリがあり、それは挑戦ではないため、命令全体を出力する必要があります。 ひらめき このためのインスピレーションは、私と他のプログラマが、それは(悪いデバッガで)、多くの場合それである刺激、あなたがのようなものを書く方法を議論したconsole.log("i:", i)我々は(ノードのみ)ソリューションは、(それが出力する(かなりクレイジー)JavaScriptを作っ横、i: 777行全体ではなく、出典)これは驚くほど長く、コードゴルフを思い出させて、他の(特にコードゴルフ)言語がどれほど優れているかと思いました。 ボーナス -10%:ファイル読み取りなし(コンパイラーを超えて) PS。これがここでの私の最初の「質問」なので、私が犯した間違いを気軽に指摘してください。
16 code-golf 

24
古いマクドナルド関数
選択した言語で次を出力する関数を作成します。 Old MacDonald had a farm, E-I-E-I-O, And on that farm he had a cow, E-I-E-I-O, With a moo moo here and a moo moo there, Here a moo, there a moo, everywhere a moo moo, Old MacDonald had a farm, E-I-E-I-O! ここで、cow及びmoo関数のパラメータの文字列であり、そのように変更することができpig及びoink又はsheep及びbaa、例えば。 大文字、ハイフン、句読点、スペース、改行を考慮する必要があります。 コードに最小限のUnicode文字を入力することを目指します。

17
ヒントを計算する
あなたと友人がバーに入ってきます。バーテンダーはあなたを上手に扱っているので、あなたは彼にチップを渡すことにします。それで、あなたはあなたの信頼できるポケットコンピュータを引き出して、あなたにあなたのためのヒントを計算するための簡単なプログラムを書きます。ちょっと待って!演算子キーが壊れています!あなたの仕事は、与えられた入力量に対して20%のチップを計算することです。テスト入力はxx.xxの形式(20.96など)になります。ルールは次のとおりです。 数学形式の演算子では以下を使用しません:+ - * / %(Wally Westに感謝) 組み込みパーセント関数またはAPIの使用なし ネットワークにアクセスできません 使用なしevalまたは類似 Windows計算機はありません(はい、以前に答えたことがあります) ヒント関数は組み込まれていません(どの言語にも含まれていません) 出力は小数点以下2桁に切り上げてください。 スコアはバイト単位の長さに基づいています。 プログラムが任意のチップ量を受け入れられる場合、-20%。金額の入力はxxの形式で与えられます(例:0.35ではなく35)

18
名前の匿名化-並べ替え
編集:ランダムマスキングには-20のボーナスがあります 仲間の内部告発者と秘密知識のキャリア。 私は郵送による面接のおかげです。もちろん、特定の名前を完全に言うことはできません。しかし、あまり明白ではない方法で開示したいので、あなたの助けが必要です。 これらの名前を次の形式で提供します 「evil_company_that_makes_me_shiver」 しかし、私はそれを完全に綴りたくありません。私と全世界を支援するあなたの仕事は、あなたが上記を変える素晴らしいプログラムを提供することです "ev**************************" または "**il************************" あるいは "****_c**********************" わかったと思う。しかし、1つの欠点があります。名前を全部公開したいので、出現回数と単語自体をスクリプトに渡す必要があり、文字を少しずつ公開します。例は ~$ ./whistle NSA 3 &gt; "N**" &gt; "**A" &gt; "*S*" または ~$ ./whistle nuclear 3 &gt; "nu*****" &gt; "***lea*" &gt; "**c***r" または ~$ ./whistle nuclear 2 &gt; "nuc****" &gt; "***lear" あなたが私を助けてくれることを願っています。サイズが重要であることを知っているので、最短のコードが勝ちます。この世界をより良い場所にしよう!
16 code-golf 

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