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

アルゴリズムの作成または実装に関連する課題について。

22
Natural Pi#0-ロック
ゴール 入力を受け取るプログラム/関数を作成し、整数のランダムなペアが比較的素数であるNかどうかを確認しN、を返しますsqrt(6 * N / #coprime)。 TL; DR これらの課題は、Piを概算するために自然と脳(およびおそらく再利用可能なリソース)のみを必要とするアルゴリズムのシミュレーションです。ゾンビの黙示録中に本当にPiが必要な場合、これらの方法は弾薬を無駄にしません!さらに8つの課題があります。推奨事項を作成するには、サンドボックスの投稿をチェックしてください。 シミュレーション 何をシミュレートしていますか?さて、2つのランダムな整数が比較的素数(すなわち、コプライムまたはgcd == 1)である確率は6/Pi/Piです。それらを数える; gcdが1 かどうかを確認します。繰り返す。これを数回繰り返した後、sqrt(6.0 * total / num_coprimes)に向かう傾向がありPiます。黙示録的な世界で平方根を計算するのが不安になっても心配しないでください!そのためのニュートン法があります。 これをどのようにシミュレートしますか? 入力してください N 次のN時間を実行します。 ランダムな正の整数を均一に生成しi、j と 1 <= i , j <= 10^6 もしgcd(i , j) == 1:result = 1 その他: result = 0 N結果の合計を取り、S 戻る sqrt(6 * N / S) …
39 code-golf  math  random  pi  approximation  popularity-contest  code-golf  sequence  number-theory  binary  coding-theory  code-golf  math  3d  code-golf  code-golf  math  number  code-golf  kolmogorov-complexity  code-golf  ascii-art  graphical-output  binary-tree  code-golf  ascii-art  code-golf  ascii-art  kolmogorov-complexity  code-golf  array-manipulation  hexadecimal  code-golf  math  number  set-theory  code-golf  math  arithmetic  number-theory  integer  code-golf  string  kolmogorov-complexity  code-golf  math  sequence  arithmetic  decision-problem  code-golf  code-golf  ascii-art  code-golf  array-manipulation  parsing  code-golf  string  ascii-art  kolmogorov-complexity  code-challenge  code-golf  sequence  code-golf  number  array-manipulation  sorting  code-golf  string  function  code-golf  arithmetic  code-golf  math  sequence  number-theory  primes  restricted-source  javascript  code-challenge  polyglot  rosetta-stone  code-golf  code-golf  regular-expression  code-golf  math  code-golf  math  primes  code-golf  ascii-art  kolmogorov-complexity  binary  code-golf  math  sequence  code-golf  sequence  subsequence  code-golf  string  code-golf  parsing  music  code-golf  grid  game  path-finding  board-game  code-golf  string  binary  code-golf  array-manipulation  balanced-string  code-golf  code-golf  algorithm  code-golf  string  number  arithmetic  array-manipulation  code-golf  array-manipulation  binary-tree  tree-traversal  code-golf  code-golf  tips  code-golf  string  base-conversion  code-golf  tips  s.i.l.o.s  code-golf  string  ascii-art  code-golf  code-challenge  code-golf  game 

21
元の番号
ガイドライン シナリオ ジョンには重要な数があり、他の人に見られたくない。 彼は、次の手順を使用して番号を暗号化することにしました。 彼の番号は常に非減少列である(すなわち。"1123") 彼は各桁を英語の単語に変換しました。(つまり"123" -> "ONETWOTHREE") そして、文字をランダムに並べ替えます。(つまり"ONETWOTHREE" -> "ENOWTOHEETR") ジョンはそうすることで彼の番号が安全であると感じました。実際、このような暗号化は簡単に解読できます:( 仕事 暗号化された文字列sが与えられたら、あなたの仕事はそれを解読して元の番号を返すことです。 ルール これはコードゴルフであるため、バイト単位の最短回答が優先されます 入力文字列は常に有効であると仮定できます 入力文字列には大文字のみが含まれています 元の番号は常に昇順で配置されます 文字列または整数形式で数値を返すことができます 文字は、文字列全体ではなく、1つの単語間でのみシャッフルされます。 数字は1〜9(ONEからNINE)までです。 可能なスクランブルされていない文字列 以下は、数字から文字列に変換された直後の文字列のリストです。 1 -> ONE 2 -> TWO 3 -> THREE 4 -> FOUR 5 -> FIVE 6 -> SIX 7 -> SEVEN 8 -> EIGHT 9 -> …

11
私の配列にエコーがあります...私の配列にエコーがあります...私の配列
助けて!私のアレイのいくつかに迷惑なエコーがあるようで、それを取り除きたいです。これが発生すると、元の配列が中央のどこかで繰り返され、値が互いに加算されます。 たとえば、配列に[ 422, 375, 527, 375, 859, 451, 754, 451 ]は次のような自身のエコーが含まれます。 [ 422, 375, 527, 375, 859, 451, 754, 451 ] <-- array with echo (input) [ 422, 375, 105, 0, 754, 451 ] <-- original array (output) [ 422, 375, 105, 0, 754, 451 ] <-- echo of original …

15
セミパリンドロームパズル
回文とは、それ自体が逆の言葉です。 今ではパリンドロームのように見えるかもしれないがそうではない単語がいくつかあります。たとえば、単語 はパリンドロームsheeshで sheeshはありません。その逆はhseehsどちらが異なるかを考えshてみましょう。しかし、単一の文字と考えると、逆はになりsheeshます。この種の単語をセミパリンドロームと呼びます。 具体的には、単語をいくつかのチャンクに分割して、チャンクの順序が逆になったときに元の単語が形成される場合、単語はセミパリンドロームです。(sheeshこれらのチャンクはsh e e sh)単語の両方の半分からの文字を含むチャンクも必要ありません(そうでない場合、すべての単語はセミパリンドロームになります)。たとえば、元の単語の両側の文字を含むチャンク()があるrearため、セミパリンドロームではありません。奇数の長さの単語の中心文字は単語のどちら側にもないと考えます。したがって、奇数の長さの単語の場合、中心文字は常に独自のチャンクになければなりません。r ea rea あなたの仕事は、正の整数のリストを取得し、それらがセミパリンドロームかどうかを判断することです。コードは、入力がセミパリンドロームの場合とそうでない場合の2つの一貫した等しくない値を出力する必要があります。ただし、コードのバイトシーケンスはセミパリンドロームそのものでなければなりません。 回答はバイト単位でスコアリングされ、バイト数が少ないほど優れています。 テストケース [] -> True [1] -> True [2,1,2] -> True [3,4,2,2,3,4] -> True [3,5,1,3,5] -> True [1,2,3,1] -> False [1,2,3,3,4,1] -> False [11,44,1,1] -> False [1,3,2,4,1,2,3] -> False より多くのテストケースを生成するプログラム。 恐ろしいことは、これらが一般化されたスマランダチェ回文に似ていることを指摘した。したがって、さらに読みたい場合は、1つの場所から始めてください。

6
128年?仮想うるう年の改革
このビデオによると、太陽年は365日、5時間、48分、45秒、138ミリ秒です。現在のグレゴリオ暦では、うるう年の規則は次のとおりです。 if year is divisible by 400, LEAP YEAR else if year is divisible by 100, COMMON YEAR else if year is divisible by 4, LEAP YEAR else, COMMON YEAR 残念ながら、この方法は3216年ごとに1日ずれています。 カレンダーを変更する1つの可能な方法は、次の規則です。 if year is divisible by 128, COMMON YEAR else if year is divisible by 4, LEAP YEAR else, …

23
逆さまのピラミッドの追加…逆転!
逆さまピラミッド追加は、数字のリストを取得し、1つの数字に達するまで連続して追加するプロセスです。 番号を指定すると2, 1, 1、次のプロセスが発生します。 2 1 1 3 2 5 これは数字で終わり5ます。 あなたのタスク 上下ピラミッド(昇順)の右側を指定して、元のリストを返すプログラムまたは関数を作成します。 新しい追加チャレンジ:O(n ^ 2)未満でこれを試してください 例 f([5, 2, 1]) => [2, 1, 1] f([84,42,21,10,2]) => [4,7,3,8,2] 注:上下ピラミッドは空になることはなく、常に正の整数のみで構成されます。

8
最速の数独ソルバー
勝者が見つかりました 勝者がいるようです!誰もが世界最速の数独ソルバーと競う予定がない限り、ユーザー53x15は驚くほど高速なソルバーTdokuで勝ちます。まだソルバーに取り組んでいる人のために、時間があれば新しい提出物のベンチマークを行います。 チャレンジ 数独のゲームの目標は、各行、列、およびボックスに各番号が1回だけ含まれるように、各セルに1から9の数字をボードに入力することです。数独パズルの非常に重要な側面は、有効なソリューションが1つだけであることです。 このチャレンジの目標はシンプルです。数独パズルをできるだけ早く解決する必要があります。ただし、古い数独を解くだけでなく、現存する非常に難しい数独パズルである17-clue数独を解くことになります。以下に例を示します。 ルール 言語 任意の言語を自由に使用できます。ご使用の言語用のコンパイラーがインストールされていない場合は、Linuxでスクリプトを実行できる環境をインストールするために必要なコマンドライン命令のセットを提供できるはずです。 ベンチマーク機 ベンチマークは、Dell XPS 9560、2.8GHz Intel Core i7-7700HQ(3.8GHzブースト)4コア、8スレッド、16GB RAMで実行されます。GTX 1050 4GB。マシンはUbuntu 19.04を実行します。uname興味のある方のための出力を次に示します。 Linux 5.0.0-25-generic #26-Ubuntu SMP Thu Aug 1 12:04:58 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux 入力 入力はファイルとして提供されます。それは見つけることができるここに。ファイルには49151個の数独パズルが含まれています。ファイルの最初の行はパズルの数であり、その後の各行は81文字の長さで、パズルを表しています。未知のセルは0であり、既知のセルは1-9です。 プログラムは、ファイル名を引数として受け取るか、STDINからファイルを入力できるようにして、ソリューションの手動チェックを容易にする必要があります。プログラムがどのように入力を受け取るかについての指示を含めてください。 タイミング/スコアリング コメントの議論といくつかの考察から、採点基準はプログラム全体の時間になるように変更されました。プログラムは、公式のスコアリング中であっても、正しいハッシュを持つ出力ファイルを生成する必要があります。これは、既存のソリューションを妨害せず、現在のランキングを変更しません。スコアリングシステムに関するご意見をお待ちしています。 2つのソリューションの個々の実行のスコアが類似している場合、複数のベンチマークを実行し、平均時間が最終スコアになります。平均スコアの差が2%未満の場合、それを引き分けと見なします。 ソリューションの実行に1時間以上かかる場合、公式にスコアリングされません。そのような場合、それを実行したマシンとスコアを報告する責任があります。最適化されたソルバーの場合、これは問題になりません。 編集:難しいとはいえ、手元にある問題は最も難しい問題ではないということが私の注意を喚起しました。時間があれば、ここで紹介するソリューションをより難しいパズルセットに対してベンチマークし、各提出物にスコアを追加します。ただし、これは公式の得点ではなく、単なる楽しみです。 検証 ソリューションは、MD5 / SHA256チェックサムによって検証されます。スクリプトは、すべてのパズルとその解決策を含むファイルを生成できるはずです。ただし、ファイルも手動で検査されるため、ハッシュの衝突を取得しようとしないでください。出力ファイルは一致する必要があります。 MD5:41704fd7d8fd0723a45ffbb2dbbfa488 SHA256:0bc8dda364db7b99f389b42383e37b411d9fa022204d124cb3c8959eba252f05 ファイルは次の形式になります。 <num_puzzles> <unsolved_puzzle#1>,<solved_puzzle#1> …

27
*の通訳を書く
タスクは簡単です。言語*のインタープリターを作成します。 wikiへのより大きなリンクがあります。 有効なプログラムは3つだけです: * 「Hello World」を印刷します * 0〜2,147,483,647の乱数を出力します *+* 永遠に実行します。 3番目のケースは、この質問の仕様に従った無限ループでなければなりません 入力: 入力は、標準のI / Oルールで受け入れ可能な任意の入力方法で取得できます。 上記のプログラムのいずれかになります 出力: 最初のケースではHello World、末尾の改行の有無にかかわらず、正確に印刷する必要があります。 2番目の場合、言語の整数の最大値が2,147,483,647より小さい場合は、言語の整数の最大値を使用します 最初と2番目のケースは、標準のI / Oルールで受け入れ可能な出力に出力できます。 3番目のケースでは、出力は行われません。 得点: これはcode-golfであるため、バイト単位の最短回答が勝ちです。
20 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
エチオピアの乗算
この質問は、この答えに触発されています。偶然にも、私は子供の頃エチオピア乗法を使用していましたが、最近までその方法の名前を知りませんでした。 エチオピアの乗算は、加算、倍増、および半分だけを使用して整数を乗算する方法です。 方法: 乗算する2つの数値を取得し、2つの列の上部に書き留めます。 左側の列では、値1を書き込むまで、最後の数値を繰り返し半分にし、残りをすべて破棄し、同じ列の最後の結果の下に結果を書き込みます。 右側の列で、最後の数字を繰り返し2倍にして、以下の結果を書きます。左側の列に1が表示されているのと同じ行に結果を追加すると停止します。 作成されたテーブルを調べて、左側の列の値が偶数である行を破棄します。残っている右側の列の値を合計して、元の2つの数値を乗算した結果を生成します。 例:17 x 34 17 34 最初の列を半分にする: 17 34 8 4 2 1 2列目を2倍にするには: 17 34 8 68 4 136 2 272 1 544 最初のセルが偶数の取り消し線は、これらの数値を角括弧で囲んで右側に配置します。 17 34 8 [68] 4 [136] 2 [272] 1 544 右側の列の残りの数値を合計します。 17 34 8 [68] 4 [136] 2 [272] …

3
ギャップを埋める
白の背景と黒のドットのセットを備えた白黒の画像が与えられたら、黒のピクセルの各ペアの間にパスがあるように、白のピクセルのセットを赤でペイントします。 詳細 パスは、接続されたピクセルのセットです(8近傍接続)。黒いピクセルをパスの一部として使用できます。目標は、上記の条件下で赤いピクセルのセットを最小化して、対応する画像を出力することです。 最適なソリューションを見つける必要はありません。 些細で同時に最悪の解決策は、すべての白いピクセルを赤で塗りつぶすことです。 例(視認性のためにピクセルが拡大されています): 詳細 (適切な形式の)ピクセル画像を指定すると、上記で指定したようにドットが接続された別の画像と、使用された赤いピクセルの数を示す整数が返されます。 スコアは、14個のテストケースのそれぞれの積(1 +赤いピクセルの数)です。 目標は最低のスコアを持つことです。 テストケース 14個のテストケースを以下に示します。出力の接続性を確認するためのpythonプログラムは、ここにあります。 メタ さまざまな提案をしてくれた@ Veskah、@ Fatalize、@ wizzwizz4、@ trichoplaxに感謝します。

14
[N]とM反復の再帰的に連結された累積和
2つの正の整数NをM取得し[N]、M反復での連結累積和を作成します。最後の反復の結果を出力します。 連結累積合計の定義: 数字Nから始めてシーケンスを定義するX = [N] 追加Xの累積和X 手順を2 M回繰り返します。 ベクトルの累積合計X = [x1, x2, x3, x4]は次のとおり[x1, x1+x2, x1+x2+x3, x1+x2+x3+x4]です。 例N = 1とM = 4: P =累積和関数。 M = 0: [1] M = 1: [1, 1] - X = [1, P(1)] = [[1], [1]] M = 2: [1, 1, 1, 2] - X …
14 code-golf  number  sequence  code-golf  number  sequence  code-golf  binary-matrix  code-golf  math  tips  javascript  algorithm  code-golf  string  code-golf  number  sequence  code-golf  math  arithmetic  parsing  code-golf  number  sequence  primes  code-golf  string  ascii-art  geometry  integer  code-golf  geometry  code-golf  number  array-manipulation  code-golf  math  geometry  code-golf  number  sequence  arithmetic  integer  code-golf  string  kolmogorov-complexity  code-golf  number  code-golf  number  chess  code-golf  sequence  decision-problem  subsequence  code-golf  math  number  primes  code-golf  primes  permutations  code-golf  integer  probability-theory  statistics  code-golf  string  code-golf  sequence  decision-problem  parsing  board-game  code-golf  binary  graph-theory  code-golf  board-game  classification  tic-tac-toe  code-golf  ascii-art  polyglot  code-golf  date  code-golf  geometry 

11
緩い範囲の解釈
緩い範囲の解釈 ListSharpは、多くの機能を備えたインタープリター型プログラミング言語です。これらの機能の1つは、次のように機能する1つのインデックスベースの範囲作成者です。 あなたはと範囲を定義する(INT) TO (INT)か、単に(INT)どこの両方または単一のintは分からに行くことができる最大のint32値 次に、これらの範囲を使用して、境界を超えることを恐れずに配列の要素を抽出できます したがって: 1 TO 5 生成: {1,2,3,4,5} 3 生成: {3} AND演算子を使用して範囲を追加できます 1 TO 5 AND 3 TO 6 生成: {1,2,3,4,5,3,4,5,6} これは負の数でも機能することを忘れないでください 3 TO -3 生成: {3,2,1,0,-1,-2,-3} 課題は次のとおりです。 入力 文字配列および文字列として以前に定義された範囲句 出力 1インデックスの要素は範囲の位置に基づいています(非既存/負のインデックスは空の文字に変換されます) 勝つ方法 コードゴルフの挑戦として、あなたは勝つために最短のバイト数でプログラムを作成することになっています 空の文字は存在しないことが指摘されているため、無視する必要があります(ここでは、わかりやすくするためだけに示しましたが、混乱させています) テストケース: input array is: {'H','e','l','l','o',' ','W','o','r','l','d'} range clause: "1 TO 3" …
13 code-golf  array-manipulation  parsing  code-golf  string  ascii-art  kolmogorov-complexity  code-challenge  code-golf  sequence  code-golf  number  array-manipulation  sorting  code-golf  string  function  code-golf  arithmetic  code-golf  math  sequence  number-theory  primes  restricted-source  javascript  code-challenge  polyglot  rosetta-stone  code-golf  code-golf  regular-expression  code-golf  math  code-golf  math  primes  code-golf  ascii-art  kolmogorov-complexity  binary  code-golf  math  sequence  code-golf  sequence  subsequence  code-golf  string  code-golf  parsing  music  code-golf  grid  game  path-finding  board-game  code-golf  string  binary  code-golf  array-manipulation  balanced-string  code-golf  code-golf  algorithm  code-golf  string  number  arithmetic  array-manipulation  code-golf  array-manipulation  binary-tree  tree-traversal  code-golf  code-golf  tips  code-golf  string  base-conversion  code-golf  tips  s.i.l.o.s  code-golf  string  ascii-art  code-golf  code-challenge  code-golf  game 

5
ブレゼンハムのラインラスター化によるマトリックスのトレース
これに触発された。 2年生のアガサスティーブンデールは、ラスターグラフィックスに真剣に取り組んでおり、線形代数のコースを取りました。今、彼女はマトリックスを長方形として想像していますが、彼女の芸術的な精神では、彼女はそれらの長方形に対角線を付け、それらに沿ってトレースを計算しようとします。実際、彼女は正方行列だけでなく、すべての行列のトレースを計算したいと考えています。 Agathaはアーティストであるため、お気に入りの画像エディターで線を描く方法を知っています。後者はBresenhamのアルゴリズムを使用して線をプロットします。彼女はウィキペディアもチェックして、擬似コードを見つけました。 function line(x0, y0, x1, y1) real deltax := x1 - x0 real deltay := y1 - y0 real deltaerr := abs(deltay / deltax) // Assume deltax != 0 (line is not vertical), // note that this division needs to be done in a way that preserves the …

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 

8
数字の三角形
クレジット このコードゴルフの挑戦のインスピレーションについて、ランド・アル・トールの手紙ベースの質問に感謝します。 バックグラウンド この課題の性質は、ランドが「3文字の三角形」で言及したアルゴリズムに基づいています。 それぞれがX、Y、またはZである10文字のシーケンスで開始します。 各行の下に、次の行を作成します。隣接する2つの文字が同じ場合、それらの下に同じ文字を書きます。異なる場合は、その下に3番目の文字を書きます。 次に、10行目に1文字入力されるまで、前の手順を繰り返します。 チャレンジ 上記のアルゴリズムに数学的なスピンをかけます。 まず、スペースで区切られた10桁のシーケンスから始めましょう。各シーケンスは1、2、または3です。 各行の下に、次の行を作成します。隣接する2つの数字が同じ場合、それらの下に同じ数字を書きます。異なる場合は、その下に3桁目を記入してください。 最終番号が1つになるまで、前の手順を繰り返します。 したがって、このアルゴリズムに従って1 2 3 3 1 3 1 3 1 2、たとえばrow で始まる場合、次の三角形が生成されます。 Input: 1 2 3 3 1 3 1 3 1 2 Output: 1 2 3 3 1 3 1 3 1 2 3 1 3 2 2 …

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