タグ付けされた質問 「random」

乱数や出力を含むタスク。

1
文字列を破壊します!
チャレンジ 文字列の入力が与えられたら、その破壊されたバージョンを出力します。 プロセス P r Pr r o o o g g g r r r rogr r a -> a -> a -> a -> a -> -> -> -> -> m m m m m m m m m m mmar m i i i i i i …

14
ファイルにゼロを埋め込む
今日のタスクは、既存のファイルを取得し、特定のサイズに達するまでゼロを追加することです。 現在のディレクトリ内のファイル名fとバイト数を取得するプログラムまたは関数を作成する必要がありますb。の元のコンテンツを維持しながら、新しいサイズがバイトになるように、末尾にfゼロ(ASCIIバイトではなくヌルバイト)を書き込む必要がありbます。 あなたは、と仮定してよいfことは、当初よりも大きくないと、あなたはそれを完全なアクセス許可を持っていることを、その名前だけでASCII英数字を持っていbますが、同じ大きようなものであってもよいb、と無限の空きディスク容量があること。 f空でないと仮定したり、すでにヌルバイトが含まれていないと仮定したりすることはできません。 実行が終了した後、他の既存のファイルを変更したり、新しいファイルを作成したりしないでください。 テストケース fの内容| b | fの結果の内容 12345 | 10 | 1234500000 0 | 3 | 000 [空] | 2 | 00 [空] | 0 | [空の] 123 | 3 | 123
12 code-golf  file-system  code-golf  code-golf  string  code-golf  string  code-golf  random  game  compression  code-golf  array-manipulation  sorting  code-golf  number  arithmetic  primes  code-golf  geometry  code-golf  code-golf  decision-problem  regular-expression  code-golf  string  math  code-challenge  restricted-source  integer  palindrome  code-golf  string  palindrome  code-challenge  busy-beaver  code-golf  ascii-art  code-golf  string  code-golf  string  permutations  code-golf  code-golf  string  permutations  code-golf  number  primes  function  set-theory  code-challenge  hello-world  code-golf  math  number  decision-problem  code-golf  code-golf  sequence  arithmetic  integer  code-golf  math  number  arithmetic  decision-problem  code-golf  kolmogorov-complexity  alphabet  code-golf  combinatorics  graph-theory  tree-traversal  code-golf  set-theory  code-golf  interpreter  brainfuck  substitution  code-golf  quine  permutations 

10
キッズシャッフルカード
カードのデッキをシャッフルするのは子供にとって難しいので、合理的によくシャッフルされたデッキをできるだけ簡単に得る方法を見つけなければなりません。 合理的に良い結果を与えるこれを行う1つの方法は次のとおりです。 一番上のカードを取り出して、デッキのランダムな場所に挿入します 一番下のカードを取り出して、デッキのランダムな場所に挿入します 十分だと思うまで続けます。 カードを上部または下部に挿入しないでください。カードはデッキのどこかに配置する必要があります。 代わりにカードをシャッフルし、我々は英数字をシャッフルされます:0-9、A-J、a-j、q-zとQ-Z。 以下に示す文字列から始め、上記の方法で文字をシャッフルします。無限にシャッフルを続けるか、カードを100ラウンド(上部から100枚、下部から100枚)シャッフルするかを選択できます。 0123456789abcdefghijqrstuvwxyzABCDEFGHIJQRSTUVWXYZ 課題は、シャッフルされているキャラクターを表示することです。各「シャッフル」(カードの取り出しと挿入)には、0.25〜0.35秒かかります。 以下のgifは出力例を示しています。 これはコードゴルフなので、バイト単位の最短コードが勝ちです。 「なぜ、a-t代わりに持っていないのですか?」a-jq-zこれはキャラクターだけでなく、カードのスーツを示すものだからです。そして、はい、5つのスーツがあります。 注:code-golf -challengesのチェックマークの使用を停止することにしました。関連するメタ投稿はこちらとこちら。

1
ランダム化されたパンプキンパッチ
先日、誕生日パーティーのためにパンプキンパッチを歩いていたところ、かぼちゃのつるが渦巻き、ループ、枝分かれで気の利いたパターンを作っていることに気付きました。ここでは、ASCIIアートを使用してこれをシミュレートします。 (()) \ p--q p-----q / \ / \ (()) b--d (()) つる構築ルール \ / - p q b dキャラクターのみで構成されたメインのつるは1つだけです。 つるは画面上を左から右にのみ移動します。言い換えれば、あなたが左端のつるキャラクターから始まるアリだったとしましょう。メインのつるで次の隣接するキャラクターに進むにつれて、1列右に移動する必要があります-左に移動することはありません。 つるが方向を変えると、p q b dキャラクターの1人がループをシミュレートする必要があります。p、東に北東旅行ブドウの木に合流q南東に東ため、b南東から東へ、そしてd東から北東に。文字の「ループ」は水平のつるに接続し、文字の「幹」は対角線に接続することに注意してください。 つるの始まりは、pまたはb(あなたの選択、ランダムである必要はありません)のいずれかでなければならず、水平に始まります。つるの終わりは、qまたはd(あなたの選択、ランダムである必要はありません)のいずれかでなければならず、水平に終わる必要があります。 ループは他のループのすぐ隣に配置できることに注意してください(たとえば、pdつるの有効な部分文字列です)が、そのため、後でカボチャを配置するのが難しくなります。- / \ループの直後のいずれか(例で行ったように)が必要な場合がありますが、必須ではありません。 かぼちゃのルール カボチャは(())(この正確な文字列)のみで構成されています。 主なブドウから、カボチャは枝分かれによって取り付けられています。これらの分岐は、p q b dループにのみ接続でき、正確に1つ\または/長さがあり、カボチャに接続して、分岐の「端」が中央になるようにします。 彼らはメインのブドウの上または下に接続できます。 分岐は「左」に接続できます。 分岐ごとに接続できるカボチャは1つだけで、ループごとに接続できる分岐は1つだけです。 ランダムネス 水平方向に移動する場合、ぶどうの木は水平方向に50%の確率で、北東に25%の確率で、南東に25%の確率でチャンスがあります。 斜めに移動する場合、つるは90%の確率で水平になり、10%の確率で斜めに進む可能性があります。 より多くのターンが許可されますが、入力されたカボチャの数をサポートするのに十分なターンが必要です。 つるが構築されると、カボチャがまだ占有されていないコーナーにカボチャをランダムに配置できます。 カボチャは、つるや他のカボチャと重ねることはできません。 チャレンジ 入力番号を指定して、上記の規則に従ってランダム化されたカボチャパッチを出力します。同じ入力でコードを複数回実行すると、異なる結果が得られます。特定の入力番号のすべての可能なカボチャパッチには、発生する可能性がゼロではない(必ずしも等しくない)必要があります。 入力 nパッチ内のカボチャの数を表す任意の便利な形式の単一の整数。コードを簡潔にするために、入力がであると想定できます0 < n …

3
音素アブギダ
キャラクター これらのUnicode文字を英語のIPA子音と呼びましょう: bdfhjklmnprstvwzðŋɡʃʒθ そして、これらのUnicode文字を英語のIPA母音と呼びましょう : aeiouæɑɔəɛɜɪʊʌː (はい、ː単なる長母音マークですが、この課題のために母音として扱います。) 最後に、これらは一次および二次ストレスマークです: ˈˌ ことに留意されたいɡ(U + 0261)小文字gではなく、一次ストレスマーカーˈ(U + 02C8が)アポストロフィではなく、ː(U + 02D0)は、結腸ではありません。 あなたのタスク 単語が与えられたら、続く子音の上に母音を重ね、前に来る子音の下に強勢マーカーを置きます。(質問のタイトルが示唆するように、子音母音シーケンスがユニットとしてまとめられているような書記体系はabugidaと呼ばれます。)入力が与えられると、出力ˈbætəlʃɪpを生成します。 æə ɪ btlʃp ˈ 単語は上に定義した、子音、母音、およびストレスマークの文字列であることが保証されます。連続する強勢記号は決して存在せず、それらは常に単語の先頭および/または子音の前に置かれます。 テストケース 母音が連続している場合があります。例えば、kənˌɡrætjʊˈleɪʃənとなり ɪ ə æ ʊeə knɡrtjlʃn ˌ ˈ 単語が母音で始まる場合、子音と「ベースライン」に印刷:əˈpiːlとなり ː i əpl ˈ 初期の強調母音を含むテストケース:にˈælbəˌtrɔsなります ə ɔ ælbtrs ˈ ˌ 長い言葉:にˌsuːpərˌkaləˌfrædʒəˌlɪstɪˌkɛkspiːæləˈdoʊʃəsなる æ ː ː ʊ uə aə …

2
Kippleを解釈してください!
前書き Kippleは、2003年3月にRune Bergによって発明されたスタックベースの難解なプログラミング言語です。 Kippleには、27のスタック、4つの演算子、および制御構造があります。 スタック スタックは命名されているa- zと32ビット符号付き整数を含んでいます。また@、数値の出力をより便利にするための特別なスタックがあります。数字がにプッシュされる@と、その数字の数字のASCII値が実際にプッシュされます。(たとえば、12を@に押した場合、49を押し、次に50を押し@ます。) iプログラムが実行される前に、入力が入力スタックにプッシュされます。インタープリターは、i実行前に保存する値を要求します。実行が終了すると、出力スタック上のすべてoがポップされ、ASCII文字として出力されます。これはKippleの唯一のIOメカニズムであるため、Kippleプログラムとの対話は不可能です。 オペレーター オペランドは、スタック識別子または符号付き32ビット整数のいずれかです。 プッシュ:>または< 構文:Operand>StackIndentifierまたはStackIndentifier<Operand Push演算子は、オペランドを左に取り、指定されたスタックにプッシュします。たとえば12>a、値12をstackにプッシュしますa。a>bstackから一番上の値をポップし、stack aにプッシュしますb。空のスタックをポップすると常に0 a<bが返されb>aます。これはと同等です。a<b>c最上位から値ポップbの両方にとプッシュをcしてa。 追加: + 構文: StackIndentifier+Operand 追加演算子は、スタックの一番上の項目とオペランドの合計をスタックにプッシュします。オペランドがスタックの場合、値はそこからポップされます。たとえば、スタックの最上位の値aが1の場合、a+23をプッシュします。aが空の場合、a+22をプッシュします。スタックの一番上の値場合aとbがある1と2は、a+bスタックから値2をポップアップ表示されますbし、スタックに3を押しますa。 減算: - 構文: StackIndentifier-Operand Subtract演算子は、Add演算子とまったく同じように機能しますが、加算ではなく減算する点が異なります。 晴れ: ? 構文: StackIndentifier? Clear演算子は、最上位のアイテムが0の場合、スタックを空にします。 インタープリターは演算子の隣にないものをすべて無視するため、次のプログラムが機能しますa+2 this will be ignored c<i。ただし、コメントを追加する適切な方法は、#文字を使用することです。a #と行末文字の間のすべてのものは、実行前に削除されます。ASCII文字#10は、Kippleの行末として定義されています。 オペランドは2つの演算子で共有a>b c>b c?できますa>b<c?。たとえば、と書くことができます。 プログラム1>a<2 a+aはa、値を[1 4](下から上へ)含むようになり、ではありません[1 3]。-オペレーターも同様です。 制御構造 Kippleには、ループという制御構造が1つしかありません。 構文: (StackIndentifier code ) …
12 code-golf  interpreter  code-golf  string  code-golf  math  string  code-golf  ascii-art  path-finding  code-golf  string  ascii-art  code-golf  interpreter  binary  logic-gates  logic  code-golf  ascii-art  code-golf  graph-theory  code-golf  string  code-golf  number  sorting  code-golf  number-theory  random  cryptography  polynomials  code-golf  number  code-golf  math  number  sequence  code-golf  quine  code-generation  code-golf  arithmetic  set-theory  code-golf  sequence  code-golf  code-golf  string  math  fastest-code  optimization  code-golf  code-golf  internet  stack-exchange-api  code-golf  array-manipulation  code-golf  string  internet  string  code-challenge  internet  test-battery  code-golf  math  pi  code-golf  arithmetic  primes  code-golf  array-manipulation  code-golf  string  code-golf  string  palindrome  code-golf  sequence  number-theory  fastest-algorithm  code-golf  math  number  base-conversion  code-golf  number-theory  sorting  subsequence  search  code-golf  permutations  code-challenge  popularity-contest  code-generation 

3
箱を閉めてくれ
このチャレンジのインスピレーションは、投稿の時点でとんでもなく明白なはずです。 タスク Shut the Boxスタイルのプログラム(関数、プログラムではない)を作成する必要があります。シャットダウンボックスの基本は次のとおりです。 プレイヤーは、1-9のラベルが付いたレバーのセットを回して、ボックスを閉じようとします。彼らはレバーをひっくり返すことによってそうしなければなりません。各ターンのイベントのシーケンスは次のとおりです。 レバーの現在の位置が表示されます。 新しいゲームでは、レバーの位置はとして表示されるはず123456789です。 シャットレバーを使用するゲームでは、シャットレバーはすべてとして表示され-ます。たとえば、1、5、および9が閉じられているゲームでは、出力はになります-234-678-。 di(c)eは(ロールバックされます)。 レバー7、8、および9がすべてオフの場合、1つの6面ダイスのみがスローされます。それ以外の場合、2つの6面ダイスがスローされます。 プレーヤーは、反転させたいレバーの数を選択するよう求められます。 プレーヤーが9より大きい数値または0より小さい数値を選択した場合、ゲームは終了します。 プレイヤーが既に閉じたレバーを選択した場合、ゲームは終了します。 プレーヤーはその数のレバーを選択します。 レバーの合計がスローされたdi(c)eの値と等しくない場合、ゲームは終了します。 すべてのレバーが閉じられている場合、おめでとうございます、あなたは勝ちます。それ以外の場合は、手順1に戻ります。 プログラムの規則 各ターンで、レバーの現在の位置を出力する必要があります。 フレーズとともにロールの値を出力する必要がありますYou rolled:(スペースに注意してください)。 フレーズで切り替わるレバーの数を入力する(そして待つ)必要があります(How many levers to flip:スペースに注意してください)。 フレーズで指定されたプレーヤーと同数のレバーを要求する(そして待つ)必要があります(Which lever to flip:スペースに注意してください)。 指定されたレバーを反転する必要があります。 いずれかの時点でゲームが終了した場合、を出力する必要がありますGame Over。 プレーヤーがレバーを開かずにターンを終了した場合、出力する必要があります You win! サンプルゲーム 123456789 You rolled: 5 How many levers to flip: 5 Which lever to …
12 code-golf  game  random 

12
反復ダイスローリング
入力nが与えられた場合3 <= n <= 25、n片面のダイ(範囲内の面)から始めて、次の手順を実行します[1, n]。 現在のnサイドのサイコロをプレイ中に転がした結果をフォームに出力しますkdn: X(X結果kはプレイ中のサイコロの数です)。 プレイ中のサイコロの数の倍X以上の場合n/2、サイコロを追加します。それ以外の場合は、ダイを取り外します。 プレイ中のサイコロの数が0またはnに等しい場合、停止します。それ以外の場合は、手順1に進みます。 例の実行(括弧内の出力は説明用であり、必須ではないことに注意してください): 6面: 1d6: 4 (avg: 3.0, add) 2d6: 6 (avg: 6.0, add) 3d6: 9 (avg: 9.0, add) 4d6: 16 (avg: 12.0, add) 5d6: 13 (avg: 15.0, remove) 4d6: 9 (avg: 12.0, remove) 3d6: 5 (avg: 9.0, remove) 2d6: 7 (avg: …
12 code-golf  random 

3
単調関数を生成する
概要 この課題の課題は、2つのセット間で単調な数学関数をランダムに生成することです。 入力 入力は2つの正の整数sとnです。 これらの入力を取得した後、プログラムはへのセットからランダムな数学関数を生成します。換言すれば、取り込み「ルール」であるとの間の整数のタプルと、戻るそのような整数です。さらに、次の意味で単調でなければなりません。もしおよび2つのです、このようなタプルすべての座標についても同様で、その後、。f{0,1,...,s-1}n{0,1,...,s-1}fn0s-1fABnA[i] ≥ B[i]if(A) ≥ f(B) 単調関数の正確な分布は、fそのような各関数が生成される正の確率を持っている限り、問題ではありません(完全なRNGを想定)。 出力 出力は、の入力と出力の列挙ですf。それはすべて含まなければならないnとの間の整数のタプルを0し、s-1それぞれが、対応する出力に続いている、いくつかのためにf。正確な出力形式は柔軟です(理由の範囲内)。 例 入力s = 3およびn = 2出力を生成する場合があります (0, 0) 0 (0, 1) 1 (0, 2) 2 (1, 0) 0 (1, 1) 1 (1, 2) 2 (2, 0) 1 (2, 1) 1 (2, 2) 2 セットのすべてのペアが{0, 1, 2}1回だけ含まれ、各ペアの後にはf-value が続きます。単調性条件も満たされます。タプルはここでは辞書式順序で示されていますが、これは必須ではありません。 別の例として、s …

25
デイ2のランダムゴルフ:正規分布の数値
シリーズについて まず、これを他のコードゴルフチャレンジと同様に扱い、シリーズについてまったく心配することなく答えることができます。ただし、すべての課題にリーダーボードがあります。最初の投稿で、シリーズに関する詳細情報とともにリーダーボードを見つけることができます。 このシリーズにはたくさんのアイデアが並んでいますが、将来の課題はまだはっきりしていません。何か提案があれば、関連するサンドボックスの投稿でお知らせください。 穴2:正規分布の数値 これがまだ行われていないなんて信じられない!正規分布から描画して、乱数を生成します。いくつかのルール(それらの大部分はおそらくほとんどの投稿で自動的にカバーされますが、それらのいくつかは非常に異なる言語間の結果の一貫性を確保するために配置されています): あなたは取るべき入力として2非負整数シード:Sと量Nのリターンに数字のを。出力はN、平均が0で分散が1の正規分布から描かれた浮動小数点数のリストである必要があります。提出物に同じシードが与えられるたびにS、同じ数が生成されます。特に、で1回とで1回呼び出される場合、2つの出力の最初のエントリは同一である必要があります。さらに、少なくとも2 16個の異なる値が異なるシーケンスを生成する必要があります。(S, N1)(S, N2)min(N1, N2)S 文書化された任意の組み込み乱数ジェネレーターを使用して、(ほぼ)均一な分布から数値を引き出すことができます。ただしS、それに渡すことができ、少なくとも2 16の異なるシードをサポートします。もしあなたがそうするなら、、RNGリクエストした特定の番号に対して少なくとも2 20個の異なる値を返すことができるはずです。 利用可能なユニフォームRNGの範囲が狭い、シードできない、またはサポートするシードが少なすぎる場合、最初に組み込みのRNGの上に十分に大きな範囲を持つユニフォームRNGを構築するか、独自のRNGを実装する必要があります を使用し適切なRNGを種。このページはそのために役立つかもしれません。 正規分布を生成するための確立されたアルゴリズムを実装しない場合は、正確性の証明を含めてください。どちらの場合でも、選択するアルゴリズムは、理論的に正確な正規分布を生成する必要があります(基礎となるPRNGの制限または精度が制限されたデータ型を除く)。 実装は、浮動小数点数(少なくとも32ビット幅)を使用して返す必要がありますまたは固定小数点数(少なくとも24ビット幅)を、すべての算術演算では、選択したタイプの全幅を使用する必要があります。 以下のように、正規分布またはガウス積分に直接関連する組み込み関数を使用しないでください。 Error関数やその逆関数など。 完全なプログラムまたは関数を作成し、STDIN、コマンドライン引数、関数引数、またはプロンプトを介して入力を取得し、戻り値またはSTDOUT(または最も近い代替)に出力して出力を生成できます。 SそしてN、それぞれが2 20未満の非負の整数になりますます。出力は、便利で明確なリスト形式または文字列形式です。 これはコードゴルフなので、最短の提出(バイト単位)が勝ちです。そしてもちろん、ユーザーごとの最短投稿もシリーズの総合リーダーボードに入ります。 リーダーボード シリーズの最初の投稿はリーダーボードを生成します。 回答が表示されるようにするには、次のマークダウンテンプレートを使用して、すべての回答を見出しで開始してください。 # Language Name, N bytes N提出のサイズはどこですか。スコアを改善する場合、古いスコアを打つことで見出しに残すことができます。例えば: # Ruby, <s>104</s> <s>101</s> 96 bytes (言語は現在表示されていませんが、スニペットはそれを必要とし、解析します。将来、言語ごとのリーダーボードを追加する可能性があります。)

1
小さなダイアモンドスクエアアルゴリズム
ダイアモンドスクエアアルゴリズムは、フラクタル地形(ハイトマップ)生成アルゴリズムです。ここで、それがどのように機能するかについての素晴らしい説明を見つけることができます: http://www.gameprogrammer.com/fractal.html(参照として使用されます。) http://www.playfuljs.com/realistic-terrain-in-130-lines/(素晴らしいJS実装。おそらく、彼のレンダラーを盗むことをお勧めします。このアルゴリズムがhttp:// demosに対応しているものをご覧ください。 playfuljs.com/terrain/。) 一般的なアイデアは、シードとして4つの角を持ち(a)、それらの4つの角を平均し、たとえば-0.5〜0.5(b)の間のランダムな値を追加することで中心点の高さを計算することです。これをグリッドに適用すると、再びダイヤモンドのグリッド(正方形45°)が得られ、同じ(c、d)を繰り返しますが、ランダムな範囲は小さくなります(例:-0.125から0.125など)。 プログラムはいくつかの入力を受け入れる必要があります。 l=1,2,3,...辺の長さの正方形グリッドのサイズを決定する整数2^l+1。で、l=10あなたは約百万の番号を保存する必要があります。 各コーナーに4つのシード(浮動小数点) ランダム範囲の初期の大きさを意味する0<h<1(Hリンクの)粗さを決定するパラメーター a,bランダム範囲の初期の下限と上限を表すパラメーターでh、各洗練ステップで乗算されます。(乱数はaとの間で一様に選択されbます。 出力は、完成した2Dグリッドで構成されている必要があります。 したがって、大まかなアルゴリズムは次のようになります。 Create a square grid with sidelength 2^l+1 Place seed values in the corners Repeat: | Perform square steps | Refine Range: a = a*h; b=b*h; | Perform diamond steps | Refine Range 注意すべき詳細が1つあります。グリッドの境界には、ダイヤモンドの頂点が3つしかありません。したがって、これらの3つのポイントの平均のみを計算する必要があります。 いくつかの例の視覚化(使用したパラメーターを教えてください)はオプションですが、高く評価されており、もちろんバイトカウントには追加されません。 このアルゴリズムのわずかに変化した実装は、ここで見つけることができます:平行投影ボクセル地形ジェネレータ 2dのハイトマップをグレースケールイメージとして表示するための小さな描画関数をjavascriptで作成しました。http://jsfiddle.net/flawr/oy9kxpsx/ あなたの誰かが3Dに夢中になっていて、3Dで地図を見るためのスクリプトを作成できるなら、私に知らせてください!=)
12 code-golf  random  grid 

2
nを法とする数論のインタープリター
(私たちの目的のための)数論の文は、次の記号のシーケンスです。 0および'(後継者)-後継者は+1、0'''' = 0 + 1 + 1 + 1 + 1 = 4 +(加算)と*(乗算) = (に等しい) (と)(括弧) 論理演算子nand(a nand bis not (a and b)) forall (ユニバーサル数量詞) v0、v1、v2、など(変数) ここに文の例があります: forall v1 (forall v2 (forall v3 (not (v1*v1*v1 + v2*v2*v2 = v3*v3*v3)))) ここでnot xは省略形ですx nand x-実際の文が使用する(v1*v1*v1 + v2*v2*v2 = v3*v3*v3) nand …
12 code-golf  number-theory  parsing  code-golf  kolmogorov-complexity  code-golf  code-golf  array-manipulation  matrix  code-golf  array-manipulation  code-golf  string  code-challenge  graphical-output  compression  code-golf  kolmogorov-complexity  code-golf  sequence  array-manipulation  code-golf  number  base-conversion  code-golf  string  decision-problem  code-golf  string  ascii-art  code-golf  string  random  code-challenge  brainfuck  code-generation  code-golf  code-golf  quine  code-golf  interpreter  code-golf  interpreter  code-golf  array-manipulation  sorting  code-golf  halting-problem  code-golf  javascript  code-golf  algorithm  code-golf  arithmetic  code-golf  math  counting  code-golf  math  code-golf  decision-problem  radiation-hardening  code-golf  conversion  bitwise  code-golf  number  decision-problem  code-golf  string  decision-problem  code-golf  random  game  code-golf  ascii-art  graphical-output  code-golf  decision-problem  binary-tree  tree-traversal  code-challenge  array-manipulation  code-challenge  graphical-output  path-finding  test-battery  algorithm  code-golf  integer  factorial  code-golf  binary-tree  code-golf  grid  graph-theory  code-golf  regular-expression  quine  code-golf  encoding  code-golf  king-of-the-hill  javascript 

11
(完全に決定的な)擬似ランダムビットストリームを生成する
手を縛ってランダムに触発された: 目標 このチャレンジの目標は、純粋にランダムに見えるが実際には決定論的な方法で生成される1と0の文字列である擬似ランダムビットストリームを生成するプログラムを作成することです。プログラムは、1と0の文字列(オプションの空白を含む)を出力し、次の要件を満たしている必要があります。 時間とメモリが無制限の場合、プログラムは1と0の文字列を永久に出力し続ける必要があります プログラムは、合理的なマシンで、約1分で1000を超えるランダムビットを出力する必要があります。この要件が不可能な場合は、軽減します。 ビット列は繰り返すことができますが、繰り返しセクションの長さは1000ビットを超える必要があります。 ビット列は、可能な限り多くのランダム性テスト(以下で説明)に合格する必要があります。 プログラムは、外部ソースから入力を受け取ったり、組み込みのrand()のような関数を使用したりしてはなりません。 上記の要件により、プログラムは実行されるたびに同じ正確なビット文字列を出力する必要があります。 ランダム性テスト#1 擬似ランダムビットの文字列には、目視検査で明らかなパターンを含めないでください。 ランダム性テスト#2(コメントに基づいて変更される場合があります) ビット列には、1と0の等分布が含まれている必要があります。これをテストするために(および他のことも)、ビットストリームは、などの3ビット長のセグメントに分割され101|111|001ます。 これらのすべてのセグメントのうち、1/8には1が3つあり、0はありません。3/ 8には2つの1と1つの0があり、3/8には1と2つの0があり、1/8がありますそれらのうち、1がなく、3つの0が必要です。 ランダム性テスト#3 「実行」は、すべて同じ値を持つ連続した一連のビットとして定義されます。文字列に1001001110は、サイズ1(1..1.....0)の3 つの実行、サイズ2(.00.00....)の2 つの実行、およびサイズ3(......111.)の1つの実行があります。実行が重複しないことに注意してください。 1000個のランダムビットの文字列のうち、サイズ1の実行が約250回、サイズ2の実行が125回、サイズ3の実行が62回などである必要があり1000/(2**(R+1))ます。 ランダム性テスト#4 最初の840ビットは、それぞれ420ビットの2つの半分に分割されます。前半の各ビットは、後半の対応するビットと比較されます。2つのビットは、約50%の時間で一致する必要があります。 以下は、テスト2〜4を実行するPerlプログラムのソースコードです。現在のところ、ビットの文字列に空白が含まれていないことが必要です。 客観的勝利基準時間! 勝者は、6つの要件すべてとすべてのランダム性テストに合格し、ランダム性と区別できない程度に合格するプログラムです。複数のプログラムがこれを達成する場合、繰り返しに最も長い時間がかかるプログラムが勝ちます。複数のプログラムがこれを達成する場合、タイブレーカーとして機能するために、さらにランダム性テストを見つける必要があるかもしれません。

11
野球ピッチ文字列を生成する
ゴール 正の整数を取り、nlengthの正当な一連のピッチ(以下、ピッチストリングと呼ぶ)をランダムに生成するプログラムまたは関数を作成しnます。 入力 ゼロ以外の正の整数n<= 100 出力 長さの可能な有効なピッチ文字列を表すランダム文字列または文字のリストを返しnます。使用される文字は次のとおりです。 B-ボール。これらの4つを蓄積する場合、打者は歩き、打撃を終えた。 S-ストライク。これらのうち3つを蓄積すると、打者は出てバッティングを終了します。 F-ファウル。また、ストライク数を増やしますが、打者を出すことはできません。つまり、有効な文字列の最後のピッチをファウルにすることはできません。2回のストライク/ファウルを過ぎたファウルは、ストライクカウントを増加させません(打者はその時点ですでに2回のストライクをしており、3回目は彼を追い出します)。 H-ヒット。バッターはボールをインプレーに打ち込み、バッティングを終了しました。 (これは少し簡略化されていますが、心配する必要はありません) 有効なピッチ文字列は、ストライクアウト、ウォーク、またはヒットで終わるものです。 つまり、無効なピッチ文字列には次のいずれかがあります 4番目のボール、3番目のストライク、またはヒット後の追加のピッチ 4番目のボール、3番目のストライク、またはヒットを生成する前に終了しました。 ルール プログラムは、指定された入力に対してすべての可能な結果を​​生成できる必要があります。 プログラムは一様にランダムである必要はありませんが、前の規則に従う必要があります。 これはcode-golfです。 例 Input => Possible Outputs 1 => [H] #Can only end with a hit 2 => [S,H], [B,H], [F,H] #Can only end with a hit 3 => [S,S,S], [F,F,S], [B,B,H], …

13
奇妙で野生の豆ゲーム
このゲームを既に知っている人もいるかもしれません。さまざまな色のジェリービーンズのコレクションを持っています。すべての色について、豆は異なる味を持つことができ、いくつかは良いものと悪いものがあり、それらを区別することはできません。あなたは与えられた色の豆を選び、あなたが良いものを選択するように祈らなければなりません。 そのため、(指定されたリストから)選択した色を受け取り、選択した味をランダムに返す最短のプログラムを作成します。味は組み込みのリストから選択する必要があります。入力および出力の可能なリストは次のとおりです。 Input Output choices [only one from the list] -------------------------------------------------- green lawn clippings, lime, mucus, pear yellow rotten eggs, buttered popcorn blue toothpaste, blue berry orange vomit, peach brown canned dog food, chocolate white stinky socks, tutti-frutti, baby diapers, coconut ルール: 入力は常に入力の選択肢からの色になると仮定できます。 大文字小文字と末尾のスペースおよび/または改行は関係ありません。 出力は一様にランダムである必要があります。連続したプログラムの実行では異なる結果が得られ、特定のテイストが得られる可能性はリスト内のすべてのテイストで同じである必要があります。 これはcode-golfなので、最短のプログラムが勝つかもしれません!

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