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

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

22
数字の三角形
チャレンジ: 入力:正の整数nnn 出力: 範囲でリストを作成し、それを文字列に結合します(つまり、が文字列になります)。[1,n][1,n][1,n]n=13n=13n=1312345678910111213 次に、この文字列のプレフィックスまたはサフィックスを使用して、入力整数に基づいて次の4つの方向のいずれかで三角形を出力します。 もしn≡0(mod4)n≡0(mod4)n\equiv 0\pmod 4、三角形状の出力を◣ もしn≡1(mod4)n≡1(mod4)n\equiv 1\pmod 4、三角形状の出力を◤ もしn≡2(mod4)n≡2(mod4)n\equiv 2\pmod 4、三角形状の出力を◥ もしn≡3(mod4)n≡3(mod4)n\equiv 3\pmod 4、三角形状の出力を◢ 例: 入力:n=13n=13n=13 ので、13≡1(mod4)13≡1(mod4)13\equiv 1\pmod 4、形状が◤あろう。ここでは、3つの有効な出力が考えられます。 12345678910111213 11111111111111111 12345678910111213 1234567891011121 2222222222222222 2345678910111213 123456789101112 333333333333333 345678910111213 12345678910111 44444444444444 45678910111213 1234567891011 5555555555555 5678910111213 123456789101 666666666666 678910111213 12345678910 77777777777 78910111213 1234567891 8888888888 8910111213 123456789 999999999 910111213 12345678 …

15
ASCII Podiumを構築する
スポーツ競技では、勝者が表彰台に上ることがよくあります。1位の人が真ん中、2位の人が真ん中の高さ、3位の人が最も低く、右の方へ。ここで、いくつかの特別な調整を加えて再現します。 表彰台は以下のとおりです。 @---@ | @ | @---@| | | | @ || | | | | || | |@---@ | | || | || @ | これは、この課題の基礎となります。次のステップは、表彰台をその上にいる人々(印刷可能なASCII文字列)に合わせて十分に広くすることです。ただし、美的美しさを確保したいので(これは素晴らしい写真の機会です)、各表彰台は同じ幅である必要があり、幅は奇数でなければなりません。さらに、人々は(明らかに)表彰台の中央に立つことを望みます。そのため、弦はできるだけ中央に配置する必要があります。(左または右に揃えることができ、一貫している必要はありません。)上記の表彰台は最小サイズであり、3幅が広いと見なされます。 たとえば、["Tom", "Ann", "Sue"]1位、2位、3位をそれぞれ表す入力が与えられた場合、次の表彰台を出力します。 Tom @---@ Ann | @ | @---@| | | | @ || | | Sue | | || | |@---@ …

12
密パック10進数(DPD)から10進数
nandgameファンの場合:論理ゲートでもDPDを10進数で試してください! バックグラウンド 密パック10進数(DPD)は、10進数を2進数で効率的に格納する方法です。10ビットで3桁の10進数(000〜999)を保存します。これは、ナイーブBCD(4ビットで1桁を保存)よりもはるかに効率的です。 表記法 ato の小文字iは、10進表現にコピーされるビットです。 0および1は、入力または出力ビットパターンの正確なビットです。 x 変換ではビットは無視されます。 変換表 以下は、DPDの10ビットから3桁の10進数への変換表です。各10進数は4ビットバイナリ(BCD)として表されます。両側は、最上位桁から最下位桁に向かって左から右に書き込まれます。 Bits => Decimal (Digit range) a b c d e f 0 g h i => 0abc 0def 0ghi (0-7) (0-7) (0-7) a b c d e f 1 0 0 i => 0abc 0def 100i (0–7) (0–7) (8–9) …

6
2ダースのキス数近似
1から24までの数字が与えられた場合、キスの数字を最新の知識で出力します(一部の数字は複数の許容可能な出力を持ちます)。出力はすべて以下にリストされているため、ジオメトリの知識は必須ではありません。 キス番号問題に関するウィキペディアのページから: キス数は、それぞれが特定の単位球に触れるように配置できる、重なり合わない単位球の数として定義されます つまり、1つの単位球が与えられた場合、どれだけ多くの単位球が重なることなく、それに触れることができますか?質問は、球がN-1次元の球体であると理解されるN次元空間で行われます。 例えば: 2次元空間では、単位円は6つの他の単位円に触れることができます。 3次元空間では、単位球は他の12個の単位球に触れることができます。 ウィキペディアのページには、1〜24次元空間の値がリストされています。ただし、これらの一部はまだ正確にわかっていないため、下限と上限のみが指定されています。この表は、新しい証明による将来の範囲の狭小化に関係なく、固定されたままになるようにここに再現されています。将来的にウィキペディアのページが変更された場合でも、ソリューションはこの固定テーブルに対して判断されます。 境界の表 Dimension Lower bound Upper bound 1 2 2 2 6 6 3 12 12 4 24 24 5 40 44 6 72 78 7 126 134 8 240 240 9 306 364 10 500 554 11 582 870 12 840 1357 …

30
常に同じ長さの出力
以下のような課題にコードと同じ長さの出力と二回のコードの長さを出力を作成し、私は別のが、同様の課題を考えました。 タスクは出力を生成することです。文字列、文字のリスト、またはプログラムのデフォルトの出力形式を使用できます。ただし、入力に関係なく、出力は常に同じ長さでなければなりません。さらに重要なことに、出力は入力ごとに異なる必要があります。 入力 単一の整数nnnの範囲は、言語の選択によって決まります。お使いの言語が可変長整数を持っている場合、範囲は−231≤n&lt;231−231≤n&lt;231-2^{31} \leq n < 2^{31}。 出力 文字列または文字のリスト、またはSTDOUTまたはSTDERRへの印刷。これらの方法のいずれかのみを使用できます。出力は、入力に関係なく同じ長さである必要がありますが、どの長さを定義するかはユーザー次第です。出力には、数字0-9またはマイナス記号が含まれていない場合があります-。出力は決定的でなければなりません。 正式な証明、引数、または総当たり検索によって、すべての出力に対して可能な入力が1つしかないことを証明できるはずです。 これはコードゴルフの質問であるため、余分なバイトを取り除きます。すべての言語が歓迎されます、より良い!

25
パスワードを生成する
パスワードを思い出すのは非常に難しいので、パスワードを生成する方法を思いつきました。 パスワードを生成する方法は、次の手順に従って単語または文から行います。 左から右へ開始 各文字の数を見つける 順番に文字を入れてください 繰り返しの多い文字は最後になります 同じ繰り返しの文字はアルファベット順に並べられます 空白を含む数字と特殊文字は無視されます(9、4、@、(、*などは無視されます) 大文字と小文字を区別しないグループ文字。出力では、入力で最後に出現したケースを使用します 文字の数は、5H17M345Kなどの任意の数にすることができます 入力がすべて数字または特殊文字の場合、出力は空の文字列になります(例:入力 "12 $ * 34 ^!")次に「」を出力します アルファベット順の同じ出現の順序が重要でない場合、たとえば1a1B1c 例: Input: Kitkat Tango (2k / 1i / 3T / 2a / 1n / 1g / 1o) Output: 1g1i1n1o2a2k3T もう一つの例: Input: Database Partitions Task (1D / 5a / 4T / 1b / 3s …

11
バッテリー残量の表示
バッテリー残量を最大充電の割合として表示します 電話、電卓などでコードを実行できない場合は、少なくともラップトップに環境をインストールできることを忘れないでください。バッテリーを搭載したデバイスで絶対に実行できない場合、残念なことに、印刷するための有用な値がないため、言語は対象外です。 結果を画面に表示する必要があります。これは、理論的には、ユーザーがバッテリーをチェックするための便利なユーティリティであると想定されています。バッテリーの割合をファイルに書き込むのはあまりにも不格好で、ユーザーがファイルをチェックする必要があります。したがって、画面上に表示することは、デフォルトのIOでオーバーライドできない仕様の一部です。そうは言っても、STDOUTのようなものが通常の方法で画面に表示されるのを妨げるものは何もないと想定できます。 多くの携帯電話のように、OSによって常にバッテリーの割合が画面にすでに表示されている場合でも、ゼロバイトのソリューションがあるというわけではありません。組み込みのディスプレイが存在しないと仮定し、バッテリーパーセントを別の場所に再度表示する必要があります。 編集:出力形式が開かれています。パーセントの数字だけを表示することも、追加の出力を含む数字を表示することもできます。 Edit2:パーセントを表す数字は、出力内の既知の場所(出力の最後から50行以内)に表示​​される必要があり、その場所は呼び出し間で変化してはなりません。パーセントを表す数字は、各側に少なくとも1つの非数字文字で他の出力から分離する必要があります。 参考のため、変更前の古い出力形式を次に示します。 Remaining battery is ddd% または Remaining battery is ddd percent
26 code-golf 

23
配列を等化する
チャレンジ 整数の配列aaaが与えられます。では動きますができ増減配列の要素を1だけ。あなたの仕事は、配列をイコライズすることです。つまり、いくつかのmoveを実行して、配列のすべての要素を等しくします。しかし、それだけでは十分ではありません!また、できるだけ少ない動きをしたいです。 入力 整数の空でない配列 aaa 必要に応じて、長さの。aaa 出力 配列aを均等化するために必要な移動の最小数。aaa ルール 標準ルールのための有効な応募、I / O、抜け穴適用されます。 これはcode-golfなので、最短の解決策です(バイト単位)が優先されます。いつものように、ゴルフ言語のとてつもなく短い解決策で、選択した言語で長い回答を投稿することを妨げないでください。 これはルールではありませんが、ソリューションをテストするためのリンクとそれがどのように機能するかの説明が含まれていれば、あなたの答えはよりよく受け取られます。 例 Input --&gt; Output [10] --&gt; 0 [-1, 0, 1] --&gt; 2 [4, 7] --&gt; 3 [6, 2, 3, 8] --&gt; 9 [5, 8, 12, 3, 2, 8, 4, 5] --&gt; 19 [1,10,100] --&gt; 99

18
それらを合計して10,000にする
最近、PPCGに関する10,000件の質問のしきい値に達しました。やった!これを簡単なチャレンジで祝いましょう。 入力 二つの整数との両方に、その結果、。AAABBB[ 1..9999 ][1..9999][1..9999]A + B &lt; 10000A+B&lt;10000A+B<10000 仕事 あなたの仕事は、これらの整数の1つに1桁を追加するか、ように両方に1桁を追加することです。と両方に数字を追加する場合、必ずしも同じ数字である必要はありません。A + B = 10000A+B=10000A+B=10000AAABBB 新しい数字は、元の整数の先頭、末尾、または途中のどこにでも追加できます。ただし、先行ゼロを追加することはできません。 例: 以下のために、次の変換が有効です。A = 923A=923A=923 192392739238192392739238\color{red}1923\\92\color{red}73\\923\color{red}8 しかし、これらは無効です: 0923109239427309231092394273\color{red}{0}923\\\color{red}{10}923\\9\color{red}{4}2\color{red}{7}3 与えられたおよび、2つの解決策があります。A=923A=923A=923B=72B=72B=72 9238+762=100009273+727=100009238+762=100009273+727=10000923\color{red}8 + 7\color{red}62 = 10000\\92\color{red}73 + 72\color{red}7 = 10000 出力 すべての可能なソリューションのリストを印刷または出力する必要があります。 上記の例では、予想される出力はになります[[9238,762],[9273,727]]。 ルール I / Oは、合理的で明確な形式で処理できます。整数の代わりに、文字列、数字のリストなどを使用できます。 入力には、少なくとも1つのソリューションがあることが保証されています。 出力を重複排除しないでください。ただし、テストコードが、たとえばTIOのフッターセクションなど、何らかの後処理でテストコードの重複を排除している場合は理解できます。 これはコードゴルフの挑戦です。 テストケース Input --&gt; Output 934, 654 --&gt; …

16
ローマ軍の盾
サンドボックスの投稿(削除済み) 古いローマ軍隊は世界中で非常に有名です。これらの陣形では、ローマ軍団は幾何学形状(通常は長方形)にグループ化され、側面を保護し、シールドを使用してその側面を保護します。内部の位置にいる軍団はシールドを頭の上に置いて上部を覆い、側面の軍団は2つ以上のシールドを運んだ。彼は3つの盾を持っていました、誰かが5つの盾を持っていたフォーメーションに一人でいた場合はい、私は人間が5つの盾を運ぶことは不可能ですが、どういうわけか彼らはそれをしました)。このフォーメーションを使用して、すべてのローマ軍団は自分自身を保護し、当時最も困難な敵でした。 歴史は、ローマの将軍が、最高のフォーメーションの形状は正方形(行と列の同数の軍団員)であると述べていたと伝えています。問題は、次の目的で軍隊を分割する必要があるフォーメーション(およびサイズ)の数を把握することでした。 軍団をフォーメーションから外さないでください(ただし、彼は単一の軍団フォーメーションを認めました) 必要なシールドの量を減らす 一般的に、彼はいくつかの数学と計算を行った後、この2つの条件を達成する最良の方法は、可能な限り最大の正方形から始め、軍団がなくなるまで繰り返すことだと考えました。 例: 彼の軍隊に35人の軍団がいる場合、フォーメーションは 5x5の軍団の広場(これが可能な最大の広場です)。 残りの軍団(10) 3x3の正方形 残りの軍団(1) 1x1の正方形。 最後に次のようになります。 5x5 * * * * * 3x3 * * * * * * * * 1x1 * * * * * * * * * * * * * * * * * * * * …
26 code-golf  matrix 

24
任意のランダム性
ランダムネスは楽しいです。意味のない挑戦は楽しいです。 整数入力が与えられると、すべての整数の合計がに等しくなるように(両端を含む)の完全にランダムな整数のセット(順序なし、一意)をn出力する関数を記述します。n1n^2n^2 有効な各セットに発生する可能性がゼロ以外であれば、ランダム性は均一である必要はありません。 バイト単位の最短回答(各言語ごと)が勝ちです。 例 Input (n) = 1, Target (n^2) = 1 Sample of possible outputs: 1 Input = 2, Target = 4 Sample of possible outputs: 3, 1 1, 3 Input = 3, Target = 9 Sample of possible outputs: 6, 1, 2 3, 5, 1 4, 3, …

3
ゴルフ無料ランチ
為替レート表を指定して、最大の利益をもたらす一連の交換を見つけます。 例として、通貨考えるriary(ホーム通貨)、Bの AHT、Cの EDI、およびDのいずれかから別の速度は(任意のトランザクションレートが課された後)に(行、列)エントリによって与えられるenarを以下の為替レート表: TO A B C D A 0.9999 1.719828 4.509549 0.709929 F B 0.579942 0.9999 2.619738 0.409959 R O C 0.219978 0.379962 0.9999 0.149985 M D 1.39986 2.429757 6.409359 0.9999 明らかにAをAに交換することは、このデスクが何もしないことで喜んで請求するので、素晴らしいアイデアではありません。 それほど明らかではありませんが、このテーブルでは、Aを他の通貨と交換してから再び交換することは損失メーカーです。 via B: 1.719828 × 0.579942 = 0.997400489976 via C: 4.509549 × 0.219978 = 0.992001569922 via …

12
放火犯の子守Findを探す
放火犯が町を歩き回って、非常に特定のパターンに従って犠牲者を選ぶことを想像してください(あるいは、庭の周りを飛んで、非常に特定のパターンに従って花粉を取るために花を選ぶ蜂を想像してください)。町がN×N行列であるとします。ここで、Nは2以上の整数です。放火犯は左上隅から開始し、家の前にM個のスポットを順番に設定します(Mは現在いる家の数です)。各火災の後に移動する方向を順番に変更します。東⟶南⟶西⟶北⟶東⟶南...など。子守唄放火犯のMは、町を出るようにするMの値です(つまり、憎むべきことを止める前に最後に訪れる家)。これは例で理解しやすい方法です。たとえば、次のマトリックスをご覧ください。 3 2 3 2 7 3 1 4 1 6 2 5 3 1 1 4 4 3 2 4 1 1 1 1 1 左上隅から開始するので、M = 3(X放火犯の現在位置と前位置をマークします): X 2 3 2 7 3 1 4 1 6 2 5 3 1 1 4 4 3 2 4 1 …

9
2D配列の最大の長方形
入力 ボード:次のような文字の2Dコンテナ(マトリックス、リストのリストなど): ["B", "C", "C", "C", "C", "B", "B", "C", "A", "A"], ["B", "A", "C", "B", "B", "A", "B", "B", "A", "A"], ["B", "C", "B", "C", "A", "A", "A", "B", "C", "B"], ["B", "B", "B", "A", "C", "B", "A", "C", "B", "A"], ["A", "A", "A", "C", "A", "C", "C", "B", …

24
バージョン番号を比較する
ソフトウェアを公開するとき、バージョン番号を割り当てます。また、ユーザーは一部のソフトウェアの最新バージョンに更新したい場合があります。それで、どのバージョンをより新しくすべきかを判断する時が来ました。 入力 2つのバージョン番号を文字列として入力します。 この課題の文脈では、ドットで結合されたいくつかの数字であるバージョン番号のみをサポートします。 バージョン番号は、数字(0〜9)とドット(.)のみを含む文字列です。 ドットは、バージョン番号の最初/最後の文字ではありません。 ドット間には数字が必要です。2つのドットが連続して表示されることはありません。 バージョン番号の数値はすべて2 16未満です。 出力 入力されたバージョン番号を比較し、最初のバージョン番号が2番目のバージョン番号よりも大きい/等しい/小さいかどうかを出力します。次のプレゼンテーションのいずれかを選択できます。 正の数/ゼロ/負の数を使用します。ゼロは等しいことを意味します。 3つの定数の異なる値を使用します。 比較する このセクションで説明されているアルゴリズムを実装する必要はありません。このアルゴリズムで同じ出力が得られる限り、提出は有効です。 バージョン番号は、ドットで結合されたいくつかの10進数です。まず、2つのバージョン番号を番号の配列に分割しました。 配列の末尾にゼロを追加して、同じ長さにします。 最初の項目から最後の項目までを比較します。 2つの配列項目が異なる場合、数字が大きいほどバージョン番号が大きくなります それらが同じ場合、次の項目の比較を続けます。 配列内のすべてのアイテムが等しい場合、2つのバージョンは等しくなります。 テストケース version1 version2 result 2 1 &gt; 1.0.0 1 = 1.0 1.0.0 = 1.2.42 1.2.41 &gt; 1.1.56789 1.2.0 &lt; 1.10 1.2 &gt; 1.20 1.150 &lt; 18.04 18.4 = 7.010 …

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