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

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

1
ゴルフ英語–収縮を使用
Stack Exchangeのコンテンツについては、これほど多く笑っていません。そこにあるものからインスピレーションを得ているので、皆さんはこのチャレンジを楽しんでくれると思います。 あなたはコードゴルフである関数またはプログラムを書くでしょう、すなわちそれはあなたがそれを作ることができる限り短くなければならないでしょう。 テキストが与えられたら、このテーブルに従って、できるだけ多くの単語を短縮したテキストを(どちらの方法でも)返します。 テーブルから情報を引き出すのではなく、必要なすべての情報をコードに含める必要があります。 私たちが不当な競争をすることはないので、すべてのデフォルトルールは破られるべきではありません。 表のように大文字で表記されていない場合は、テキストを考慮する必要がないためyou all WOULD not have、You all would not haveに変換したり、に変換したりしないでくださいy'all'dn't've。 古き良きアポストロフィ(U + 0027)やその他のアポストロフィだけに一致させることができます。あなたがしたいものは何でも。 ↑上の入力例と↓の下の対応する出力例 StackExchangeのコンテンツから、これほど多くのことを笑ったことがありません。そこにあるものに触発されて、私はすべてがこの挑戦を楽しむと思います。 コードゴルフである関数またはプログラムを作成します。つまり、できる限り短くする必要があります。 テキストが与えられたら、次の表に従ってできるだけ多くの単語を短縮したテキストを(どちらの方法でも)返します。 テーブルから情報を引き出すのではなく、必要なすべての情報をコードに含める必要があります。 私たちが不当な競争をすることはないので、すべてのデフォルトのルールが破られるべきではありません。 表のように大文字で表記されていない場合は、テキストを考慮する必要がないため、you all WOULD not haveまたはYou all would not haveに変換しないでくださいy'all'dn't've。 古き良きアポストロフィ(U + 0027)またはその他のアポストロフィだけに一致させることができます。あなたがしたいものは何でも。

29
ナインパターン
前書き 先日、テレビを見ているときに、この(役に立たない)パターンに出会いました。使用する最初の数字が9だったので、「9パターン」と名付けました。その要点は、数字(xとしましょう)を入力すると、次のようになります。 バツ x +(x / 3)[これをyとしましょう] yの 3分の2 [これをzと呼ぶ] z + 1 したがって、このパターン内に9をxとして入れると、次のようになります。 9(9) 12(9 + 9/3)[9 over 3は3、9 + 3は12] 8(12の 2/3の12)[12の3分の1は4、4 * 2は8] 9(8 + 1は9) チャレンジ 数値を受け取り、パターンを使用して整数配列を出力する関数を(プログラミング言語で)書いてください。 この擬似コードのように: function ninePattern(int myInt) returns IntegerArray { int iterationA = myInt + (myInt / 3); int iterationB = iterationA …

4
ナイーブマルコフ連鎖の単語生成
ランダムな単語を生成するには多くの方法があります。セットからランダムな音節を取り出すことができます。nタプル、おそらくニューラルネットワークを使用できます(何ができないのですか?)、子音と母音を交互に使用します。この課題の基本となる方法は、最悪です。マルコフ連鎖を使用してランダムな単語を生成します。あなたがマルコフ連鎖に精通しているなら、おそらくこの方法がそれほどひどい理由を知っているでしょう。 マルコフ連鎖について読みたい場合は、ここをクリックしてください。 プログラムは、重み付けされたマルコフ連鎖の方法によって、1つ以上の単語を入力として受け取り、ランダムな単語を1つ生成します。それはおそらく私以外には理解できないので、以下の入力を伴うマルコフ連鎖の画像を使用して説明しますabba。 (すべてのエッジの重みはすべての画像で同じです)プログラムは、入力テキストに基づいてマルコフ連鎖を介してパスを出力します。ご覧のとおり、出力される確率は1/2 a、確率は1/8、確率はaba1/16、確率はabba32 分の1 ababaなどです。 マルコフ連鎖の他の例をいくつか示します。 yabba dabba doo wolfram supercalifragilisticexpialidocious さらに例が必要な場合は、これを使用してください。(私はそれにあまりにも努力しすぎました) チャレンジの詳細: 入力は、文字列のリスト、またはスペース、コンマ、または改行で区切られた文字列として受け取ることができます あなたはすべての単語が句読点なしで完全に小文字であると仮定するかもしれません(ASCII 97-122) プログラムまたは関数のいずれかを記述できます テストするには、例を入力して、すべての入力がマルコフ連鎖と一致するかどうかを確認できます これはcode-golfなので、プログラムはバイト単位でスコアリングされます。 これについて不明な点がある場合はお知らせください。わかりやすくするよう努めます。

2
タクシー番号を教えて
タクシー番号またはOEIS A011541は、連続するnについて、2つの正の3乗整数のn個の異なる合計として表すことができる最小数です。 n番目のタクシー番号を印刷する必要があります。これは理論的にはどのnでも機能するはずです。 ただし、これまでに検出されたタクシー番号は6つだけなので、nが6を超えることはありません2, 1729, 87539319, 6963472309248, 48988659276962496, 24153319581254312065344。番号はです。 プログラムは理論的に任意のnに対して機能する必要があるため、これらの変数をハードコーディングすることはできません。

3
わら世論調査に最大の混乱を引き起こす
環境 わら世論調査は、単純な/非公式の世論調査の作成を目的としたウェブサイトです。オプションのリストが提供され、ユーザーは選択肢を選択でき、投票が集計されます。わら投票には2つの非常に重要な機能があります。 投票する前に現在の結果を見ることができます 多くの場合、複数のオプションを選択できます。これは、各オプションに1つずつ、複数回投票した場合と同じように扱われます。 わら世論調査を作るよりも楽しいことの1つは、結果をいじることです。中断には主に2つのタイプがあります。 すべてのオプションに投票する単純な混乱 効果を最大化するために投票するオプションを戦略的に選択する高度な混乱。 この課題では、高度な混乱のためのプログラムを作成します。 数学 数学的に単純に言えば、投票のエントロピーが高いほど、投票はより混乱していると言えます。 つまり、単一のオプションがすべての投票を持つ投票はまったく中断されませんが、すべてのオプションが同じ数の投票を持つ投票は最大に中断されます(これが最終的な目標です)。 数値リストのエントロピーは、[x1, x2, ..., xn]ウィキペディアの次の方程式で与えられます。P(xi)の確率xiですxi / total_num_of_votes。オプションがこれまでに投票数0の場合、そのオプションは合計に含まれません(を避けるためlog(0))。私たちの目的では、対数は任意の底に置くことができます。 例として、のエントロピー[3,2,1,1]は1.277、底eを使用しておよそです。 次のステップは、エントロピーの最大の増加につながる投票パターンを決定することです。オプションの任意のサブセットに投票できるので、たとえば、私の投票はになる可能性があります[1,0,1,0]。これらが私の投票だった場合、最終的な集計は[4,2,2,1]です。エントロピーを再計算するとが得られ1.273、エントロピーが減少します。これは、これが破壊の恐ろしい試みであることを意味します。その他のオプションは次のとおりです。 don't vote [3,2,1,1] -> 1.277 vote for everything [4,3,2,2] -> 1.342 vote for the 1s [3,2,2,2] -> 1.369 vote for the 2 and 1s [3,3,2,2] -> 1.366 このことから、エントロピーが最大に増加するため、最適な投票パターンであると結論付けられ[0,0,1,1]ます。 入力 入力は、増加しない非負の整数の空でないリストです。例としては[3,3,2,1,0,0]、[123,23,1]さえ、または[4]。妥当な形式であれば何でも許容されます。 出力 …
9 code-golf  math 

2
TinyBFからBrainf ***へのコンバーター
Brainf ***からTinyBFへのコンバーターはありますが、その逆はありません。 ルール: インタープリターは有効なTinyBFプログラムを1行で取得する必要があり、対応するBrainF ***プログラムを1行で出力し、オプションで末尾の空白/改行を付加する必要があります。先頭の空白は許可されていません 入力には、4つのTinyBF文字のいずれでもない文字が含まれている場合と含まれていない場合があります。その場合は、これらの文字をすべて同じ場所に印刷する必要があります。 私が使用するいくつかのあいまいな基準に基づいて、(冗談ではなく)4月1日に回答が受け入れられます(jk;)次のルールで不正を行わない最短のプログラムを受け入れます) 0バイトまたは1バイトのソリューションはありません。これは、この目的のためだけのプログラミング言語を作成した(または存在する)場合、面白味を失うためです) テストケース 入力1:+++++>+++++=>=|>>+=>>+|=>|>+=>+|(5(バイト1)+ 5(バイト2)= 10(バイト3)を計算)) 出力1:+++++>+++++<[>>+<<-]>[>+<-] 入力2:(+++>++++Hi+++:P+=>=|>|>+>+=>>&&+|=>>|=>>=+!!>>=+|>>>+|計算3(バイト1)* 8(バイト2)= 24(バイト3))出力2:+++>++++Hi+++:P+<[>[>+>+<<&&-]>>[<<+!!>>-]<<<-]

2
フィボナッチ精度でファイのパワーを表示
単一の非負の整数nを取り、n番目のフィボナッチ数と同じ桁数でPhi のn乗(ϕ、黄金比、約1.61803398874989)を出力するコードを記述します。 コードは、少なくとも10(10進数55桁)までのすべての入力に対して正しい数字のシーケンスを生成する必要があります。出力は人間が読める10進数でなければなりません。最後の桁を最も近い値に丸めるか、値を切り捨てるかを選択できます。コードで使用するものを指定してください。 nおよび出力、最大10、切り捨て: 0 1 1 1.6 2 2.6 3 4.23 4 6.854 5 11.09016 6 17.94427190 7 29.0344418537486 8 46.978713763747791812296 9 76.0131556174964248389559523684316960 10 122.9918693812442166512522758901100964746170048893169574174 nおよび最大10までの出力。最も近い値に丸めます。 0 1 1 1.6 2 2.6 3 4.24 4 6.854 5 11.09017 6 17.94427191 7 29.0344418537486 8 46.978713763747791812296 9 76.0131556174964248389559523684316960 10 122.9918693812442166512522758901100964746170048893169574174 7番目のフィボナッチ数は13なので、n …

1
特別な角度の罪、余弦、日焼けを印刷する
三角法では、「特別な角度」と呼ばれる特定の角度があります。これは、これらの角度のいずれかのsin、cos、またはtanを取ると、有理数の平方根であるため、覚えやすい結果が得られるためです。これらの特別な角度は常にpi/6、またはの倍数ですpi/4。以下は、すべての特別な角度とそれに対応するトリガー値の視覚化です。 ご覧のとおり、角度ごとに対応する数値のペアです。最初の数値はその角度の余弦で、2番目の数値はその角度の正弦です。これらの角度の1つの接線を見つけるには、sinをcosで割ります。たとえば、次tan(pi/6)と等しい sin(pi/6) / cos(pi/6) == (1/2) / (√3/2) == 1/√3 == √3/3 チャレンジ 3つの入力を受け取る完全なプログラムを作成する必要があります。 計算することになっているトリガー関数を表す単一の文字。これは、 's'(sin)、 'c'(cos)、または 't'(tan)のいずれかになります。 入力角度の分子。これは任意の正の整数です。5の入力は、分子が5 * piであることを意味することに注意してください。 入力角度の分母。これは常に次のいずれかになります。1, 2, 3, 4, 6 次に、その角度のトリガー関数の正確な値を出力します。以下は、2 * piまでのすべての角度のsin、cos、tanのリストです。 sin(0pi): 0 sin(pi/6): 1/2 sin(pi/4): root(2)/2 sin(pi/3): root(3)/2 sin(pi/2): 1 sin(2pi/3): root(3)/2 sin(3pi/4): root(2)/2 sin(5pi/6): 1/2 sin(1pi): 0 sin(7pi/6): -1/2 …

3
出生番号を確認する
ノルウェーの出生番号は11桁で構成され、次のように構成されています。 DDMMYYiiikk DD 日です(01-31から) MM 月(01-12から) YY年です(00-99から)。1900年と2000年を区別しない iii 「個人番号」 kk 2つの制御桁 iii 誕生年と性別によって次のように決定されます 0000-1900:無視してください、いくつかの矛盾と特別なケースがあります 1900-1999:範囲= 000-499 2000-2039:範囲= 500-999 女性:偶数(および000) 男性:奇数 管理番号は以下の方法で決定されます。 11桁を呼び出します。 d1 d2 m1 m2 y1 y2 i1 i2 i3 k1 k2 次に、制御桁は次の式を使用して計算できます。 k1 = 11 - ((3 * d1 + 7 * d2 + 6 * m1 + …

21
Forsyth-Edwards Notation文字列をASCIIアートに変換する
チェスでは、Forsyth-Edwards Notation(より一般的には「FEN」と呼ばれます)は、ボードを転写するテキストによる方法です。ホワイトの観点から、ボードの8つの列(チェスでは「ランク」と呼ばれます)を上から下に説明しています。ピースは、K(キング)、Q(クイーン)、R(ルーク)、B(ビショップ)、N(ナイト)、P(ポーン)と書かれています。黒い部分はこれらの文字を小文字で使用し、白い部分はこれらの文字を大文字で使用します。空のスペースは、連続する空のスペースの数を示す1〜8の数字で示されます。完全に空のランクは8、右端の列にある1つの黒いルーク(チェスでは「ファイル」と呼ばれます)になり7r、行の両端にある2つの白いポーンはになりますPP4PP。ランクは/。添加される他の情報は、移動キャスリングとすることでどちら側を示し、通常はありアンパッサン権利、移動の数、およびhalfmoveクロックが、我々はこの課題の目的のためにそれらを無視します。 入力 コマンドラインまたはSTDINからのFEN文字列。この文字列は常に有効であると想定できます。 出力 実際に表示されるボードの単純なASCIIアート表現をSTDOUTに書き込みます。 作品はFENで彼らのキャラクターによって表されます 空の正方形はスペースで表されます ピースと正方形はパイプで区切られて|おり、ボードの両側にパイプがあります したがって、8/8/8/8/8/8/8/8FENのように書かれた空のボードは、次のように表示されます。 | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | …

1
マーゴルフとラングトンのアントヒル
This is Markov. Markov's golf ball rolls around randomly. Markov's ball will hole however he strikes it. Markov is smart. Be like Markov. そして、これ はラングトンの裏庭にある蟻塚です。 蟻塚は、マルコフのゴルフボール、MarGolfを保持するのに十分な大きさです。しかし、蟻塚は周囲の地形に応じて動き、方向を変えます。 タスク 10x20フィールドの入力を受け取ります。 * マーゴルフ O ラントンの蟻塚 , Anthillは時計回りに90度回転します . Anthillは反時計回りに90度回転します 0 ラングトンのアントヒルのマーゴルフ フィールドは次のようになります。 ,...,.,,..,...,.,,.. ..,.,,,..,...,..,.,. .,,*.,....,.,,,.,,,. ,.,,.,...,,.,.,,,,,. .,..,....,,.....,,., ,.,.,...,..,.,,,,.., ....,,,,,,,,,....... ........,,.,...,..., ,,,,,,,,,,,,....,O., ,.,.,.,.....,,.,,,,, ゲームのルール: …

3
州は何票得ますか?
各州の人口のリストが与えられた場合、州が選挙区で取得する票の数の多い順に出力します。 入力:最初の数値は、配布する投票の総数を表します。次に、リストと母集団が続きます。この例では、州の省略形が使用されていますが、大文字と小文字を含む任意の名前を使用できます。含まれている情報が州の略称とその人口のみである限り、これは任意の形式で取得できます。 入力は、関数の引数として、または任意の方法で取得できます。 (可能な)入力例: 538 [[CA 38000000], [NH 1300000] etc.] 出力:各州の得票数をある形式で出力します。状態を最大から最小に並べます。2つの州の投票数が同じである場合は、辞書で最初に来る名前(アルファベット順で最初に来る名前)の順に並べます。 投票数を見つける前に、最初に入力のリストにDCという名前の州があるかどうかを確認し、ある場合はその人口に関係なく、州に3票を与えます。次に、それをリストから削除し、DCが存在しないかのように残りの投票を割り当てます。 選挙人団の投票数は、上院議員と議員の数の合計と定義されています。すべての州には2人の上院議員がいるため、合計から州の数の2倍(入力例では538)を引いて、代表の数を取得します。開始するすべての州に1人の代表者を割り当てます。次に、次のプロセスを実行します。 が人口であるAとして定義された番号を各州に割り当てます。P/sqrt(2)P の値に従って状態を並べ替えますA。 最初の状態(最大の状態A)にもう1人の代表を割り当てます。 再割り当ての値Aとして、A = P/(sqrt(n)*sqrt(n + 1))ここで、n状態に割り当てられた代表者の現在の数です。 手順2に戻ります。すべての担当者がなくなるまで繰り返します。 (可能な)出力例:{CA: 518, NH: 20}。出力はこの形式である必要はありませんが、同じ情報が含まれている必要があります。 投票数が少ないために合法的に投票を割り当てることができない場合は3*(# of states)、好きなものを印刷してください。クラッシュしたり、エラーをスローしたりできます。 テストケース: 538 [['CA' 38000000], ['NH' 1300000]] --> CA: 518, NH: 20 538 [['NH' 1300000], ['CA' 38000000]] --> CA: 518, NH: 20 …
9 code-golf 

14
コンピューティングインタープリターのゴルフ
前書き Computeは難解なジョーク言語です。 esolangsエントリから: Computeには必須の構文はなく、あらゆる問題を解決する能力があります。人間の言語(英語、スペイン語、ラテン語など)、プログラミング言語(C ++、Java、brainfuckなど)、または考えられるあらゆる種類のデータを解釈できるほどスマートです。唯一の欠点は、I / Oがまったくないことです。 いくつかのサンプルプログラム Hello World 基本的なHello Worldプログラム What is love? 愛が決定した(赤ちゃんは私を傷つけないでください)。 When will we ever graduate? ベータ版を終了するこのサイトの正確な日付を決定します。 チャレンジ あなたの仕事は完全なComputeインタプリタを書くことです。これはかなり難しいように聞こえますが、Computeには絶対にI / Oがないことに注意してください。したがって、インタプリタは、入力プログラムのすべての行で1秒間だけスリープし、\n\nDone.この後に出力します(これは、I / Oがないことの唯一の例外です)。 このサイトの下部に公式の通訳がいます。 公式のインタープリターは、指定されたソースコード内のすべての文字について1秒間停止することに注意してください。有意義な質問で通訳をテストする際の長い待ち時間を回避するために、この課題の説明を続けます。 ルール 入力には、で区切られた複数の行が含まれる場合があります\n。常に少なくとも1行あります。 公式の実装とは異なり、入力としてファイルを取得する必要はありません。Computeプログラムは、任意の形式の入力で取得できます。 許可される唯一の出力はです\n\nDone.。末尾の改行が許可されます。 機能または完全なプログラムが許可されています。 入力/出力のデフォルトのルール。 標準の抜け穴が適用されます。 これはcode-golfなので、バイト数が最も少ないものが優先されます。タイブレーカーは以前の提出です。

2
DSAのタレントロール
何人かの友人と私はDSA(主にドイツの卓上型RPGであり、D&Dによく似ています)をプレイしました。ロールをパスするチャンスは何なのだろうと思っていたので、それを計算するためにいくつかのコードを書く必要があります。 あなたのキャラクターは、統計(8から14)と(TV)タレント値(0から21)によって定義されます。ここでは、例として登山を使用します。 才能テスト タレント(クライミング)は次のようになります。(勇気-敏捷性-強さ)TV:7.キャラクターのタレントをテストするには、20面のサイコロでこれらの統計を転がし、統計以下になるようにします。あなたはそれをうまくやっています。そうでない場合は、TVポイントを使用して、ロールを1:1の比率で減らすことができます。 例 勇気12、器用さ13、強さ14のハンターが木に登ろうとしています。テレビは7です。 彼は3を振り、値は12未満なので、その目を通過しました。 それから彼は17を出して、17は13より4多いので、4台のテレビが残り3台で使い果たされます。 最後のロールでは、14のスポットがパスしました。 すべてのロールが通過し、ハンターはなんとか木に登ることができ、3台のテレビが残っています。 入力 言語の標準入力から取得した、選択した任意の形式の4つの値。ただし、この順序でなければなりません。 たとえば12 13 14 7、12,13,14,7または配列{12、13、14、7}または混合として[12, 14, 8], 3 出力 ロールが合格する頻度。 例(上記の値の場合)0.803 12,14,8,3 = 0.322 11,11,12,11 = 0.840 おまけについて:ここでもフォーマットは問題ではありませんが、次の順序で好きなように出力してください: failed/with 0/with 1/with 2/with 3/with 4/with 5/with 6/with 7 テレビがなくなるまで続けます。 12,13,14,7 = 0.197/0.075/0.089/0.084/0.078/0.073/0.068/0.063/0.273 12,14,8,3 = 0.678/0.056/0.051/0.047/0.168 チャレンジとルールとボーナス 入力を与えられた場合、ロールを+-0.5%の精度でパスするチャンスを見つける必要があります。 プログラムがnTVで合格するチャンスも出力する場合は-20%(出力を参照)。 これはcode-golfなので、バイト単位の最短コードが優先されます!

1
財布を埋めるのを手伝ってください!
少し前に、8枚のカード(両面に4枚)を入れることができる新しい財布を購入しました。しかし、私はそれよりもはるかに多くのカードを持っているようであり、どのカードを携帯するかを選択する必要があります。一部のカードは他のカードよりも頻繁に使用しますが、持ち歩きたいカードは、必ずしも最も頻繁に使用するカードではありません。 チャレンジ カードのスタックが与えられたら、私の好みと制限に対して可能な限り最良の方法で私の財布のレイアウトを返します。レイアウトは次のようになります。 __ __ (row 1) __ __ (row 2) __ __ (row 3) __ __ (row 4) 現在私は以下のカードを持っています-スタックは常にこれらからの選択で構成されます: 1枚のIDカード(ID) 1運転免許証(DL) 2クレジットカード(CC) 5デビットカード(DC) 公共交通機関カード(PC)1枚 ジムアクセスカード(GC)1枚 ランダムストアおよび倉庫からの9枚の会員証(MC) 私はいくつかの好みと制限があります: 優先度でソートされたカード:ID、DL、CC、DC、PC、GC、MC 使用頻度でソートされたカード:CC、DC、PC、GC、MC、ID、DL 安全上の理由から、私の財布でデビットカードとクレジットカードの総数が(私の財布になります他のすべてのカードの合計よりも最大で1より可能N DC + N CC ≤ N ID + N DL + N PCを + N GC + N MC …

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