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

課題には数学が含まれます。また、より具体的なタグの使用を検討してください:[数値] [数値理論] [算術] [組み合わせ] [グラフ理論] [形状] [抽象代数]。

2
長方形の交点を数える
チャレンジ 任意の量の長方形を指定して、2D平面に描画されたときの長方形の交差の合計数を出力します。 ここでの交点Pは、互いに直交し、どちらもで終わっていない2本の線が交差する点として定義されPます。 例 ここでの各長方形は、最初に左上隅の座標、次に右下隅の座標を持つ2タプルで表されます。 [(-8,6)、(-4、-2)] [(-4,9)、(4,3)] [(2,10)、(14,4)] [(1,7)、(10、-6)] [(7,4)、(10,2)] [(5,2)、(9、-4)] [(-6、-4)、(-2、-6)] これらの長方形は、6つの交差点を作成します。これが出力でなければなりません。 上の画像からわかるように、長方形にタッチしても、ここでは交差が作成されず、カウントされません。 再タグ付けは、任意の形式でエンコードできます。使用する形式を明確にしてください。 複数の長方形が同じ点で交差する場合、それは1つの交差としてのみカウントされます。 座標は常に整数です。 入力に重複する長方形はありません。 入力として常に少なくとも1つの長方形を取得します。 この問題を直接解決するビルトインは使用できません。さらに、方程式を解くビルトインは使用できません。他のすべての組み込みは許可されます。 出力は、交差数を示す単一の整数でなければなりません。 ルール 機能または完全なプログラムが許可されています。 入力/出力のデフォルトのルール。 標準の抜け穴が適用されます。 これはcode-golfなので、最小のバイト数が優先されます。タイブレーカーは以前の提出です。 テストケース 上記の例と同じフォーマット。長方形はリストにラップされます。 [[(-8,6)、(-4、-2)]、[(-4,9)、(4,3)]、[(2,10)、(14,4)]、[(1 、7)、(10、-6)]、[(7,4)、(10,2)]、[(5,2)、(9、-4)]、[(-6、-4)、 (-2、-6)]]-> 6 [[(-2,2)、(6、-4)]]-> 0 [[(-12,10)、(-8,6)]、[(-14,6)、(-10,2)]、[(-10,6)、(-6,2)]]- > 0 [[(-4,10)、(6,2)]、[(-2,8)、(4,3)]、[(1,6)、(8,4)]、[(2,11 )、(5,5)]]-> 10 [[(8,2)、(12、-2)]、[(10,0)、(14、-4)]]-> 2 [[(0,2)、(2,0)]、[(0,1)、(3,0)]]-> 1 [[(-10、-2)、(-6、-6)]、[(-6、-2)、(-2、-6)]、[(-8、-4)、(-4、 -8)]]-> 3 ハッピーコーディング!

16
平らな地球を旅する
平地の世界の座標は、緯度(x)と経度(y)で構成されます。これらは0〜9999の範囲の整数です。ガウス整数によく似ていますが、常に次の表記法を使用して記述されています。 411S 370E すなわちであり、SまたはN緯度に付加し、EまたはW2つのコンポーネント間の空間(S)と、経度に付加します。 ゴール 空白で区切られた2つの座標を読み取り、それらの合計を出力するプログラム(関数ではない)を記述します。最初の座標は開始点、2番目の座標は変位、出力は結果の位置です。 入出力 この課題は部分的にフォーマットに関するものであるため、入力形式と出力形式を明確に定義するようにします。 推奨される入力形式では、座標コンポーネント間に1つのスペースがあり、先行ゼロはなく、2つの座標間に改行文字があります。プログラムは、優先フォーマットを読み取ることができる必要があります。 出力には、任意の量の空白と先行ゼロを含めることができます。推奨される入力形式と異なる場合、プログラムはこの形式も読み取ることができる必要があります。 明確にするために、入力には追加の書式設定文字を含めることはできません(含めません)。必要なスペースと改行だけ。 得点 これは新しい勝利条件の実験です。数週間以内に回答を受け入れて、勝者を選びます。その後、より適切な回答が出た場合は、回答を変更します。 プログラムのスコアはそのバイト数です。優勝したプログラムは、400バイトより短く、バイト数が最も少ないプログラムですが、最も冗長なプログラミング言語で書かれています。勝者を決定するには: バイト数が400以上のプログラムを削除します(参加できますが、勝つことはできません)。 各プログラミング言語の最短プログラムのみを検討する 最長のプログラムの勝利 ポリグロットは、有効なすべての言語のプログラムと競合します(たとえば、プログラムが両方bashで有効である場合、sh両方の言語のプログラムと競合します)。 テストケース テストケースでは、最初の2行が入力で、3行目が出力です。 0S 0E 0S 0W 0N 0E (ゼロの方向は、入力と出力の両方で重要ではありません) 0S 9999E 9999N 9999W 9999N 0E (最大値) 42S 314W 42N 2718W 0N 3032W (ゼロの方向は出力では関係ありません) 5555N 8888W 7777S 0E 2222S 8888W (負の値はありません。符号を変更する必要がある場合は方向を変更してください) 0001N 4545W …
8 code-challenge  arithmetic  parsing  code-golf  interpreter  code-golf  random  classification  code-golf  ascii-art  code-golf  code-golf  string  number  array-manipulation  code-golf  math  rational-numbers  code-golf  internet  classification  code-golf  string  integer  code-golf  number  graphical-output  typography  king-of-the-hill  code-golf  number  sequence  palindrome  code-golf  math  code-golf  math  probability-theory  code-challenge  image-processing  test-battery  code-golf  number-theory  code-golf  tips  swift  code-golf  graphical-output  image-processing  color  code-golf  string  conversion  code-golf  string  array-manipulation  code-golf  encryption  king-of-the-hill  code-golf  string  ascii-art  code-golf  code-golf  string  compression  decision-problem  code-golf  ascii-art  number-theory  division  code-golf  ascii-art  code-golf  code-golf  number  array-manipulation  code-golf  ascii-art  code-golf  code-golf  string  code-golf  sequence  number-theory  code-golf  math  geometry  code-golf  combinatorics  code-golf  integer  code-golf  arithmetic  number-theory  code-golf  arithmetic  restricted-source  number-theory  restricted-complexity 

1
青い目パズルの変形を解く
オリジナルの「Blue Eyes」パズルはここ(およびその下)にあります。 さまざまな目の色を持つ人々のグループが島に住んでいます。彼らはすべて完璧な論理学者です-結論が論理的に推測できる場合、彼らは即座にそれを行います。彼らの目の色は誰も知りません。毎晩深夜、フェリーが島に停車します。自分の目の色がわかった島民は島を去り、残りは残ります。誰もがいつでも他の人を見ることができ、それぞれの目の色(自分自身を除く)で見た人の数を数えますが、それ以外の方法では通信できません。島の誰もがこの段落のすべてのルールを知っています。 この島には、100の青い目をした人、100の茶色の目をした人、そしてグル(彼女はたまたま緑の目をしています)がいます。したがって、青い目をした人は100人が茶色の目で99人が青い目(および緑の目)を見ることができますが、それでも自分の目の色はわかりません。彼が知る限り、合計は101ブラウンと99ブルーである可能性があります。または100ブラウン、99ブルー、そして彼は赤い目を持っている可能性があります。 グルは、島での終わらない年のすべての日に、1日(正午に言ってみましょう)一度話すことが許可されています。島民の前に立って、彼女は次のように言います: 「青い目をした人が見えます。」 誰が島を出ますか、そして何夜ですか? 答えは、彼らがすべての百日のままにしておくことです。これは、次のロジックによるものです。 青い目の人が1人だけの場合、彼は1日目に出発します。2つの青い目の人だけがある場合、誰も1日目に出発しません。これに続いて、2人とも2日目に出発します。 -目の前の人、誰も1日目に出発しません。誰も2日目に出発しません。青い目をした人が3人いることを誰もが知っています。1人しかいなかった場合、彼は1日目に出発し、2人がいた場合、2人とも2日目に出発したため、3人全員が3日目に出発します。 これで、n個の青い目の人々が目の色を計算して去るのにn日を必要とする場合、n + 1の青い目の人々が同じことをするのにn + 1日を必要とするという帰納的証明を書くことができます。 ただし、作成するコードは、元のパズルだけでなく、わずかに異なる帰納的ステップを必要とするいくつかのバリアントも解決できる必要があります。 青い目をしている人の数とそうでない人の数がわかります。また、島の誰もが聞く神託(方程式/不等式のシステム)による声明が与えられます。青い目の人々が島から解放される時期を決定する必要があります。 オラクルの声明はb、青い目の人の数と青い目のない人の数に使用しrます。方程式には、< > <= >= = + -整数を含めることができます。 テストケース このバリアントセットに基づく 50 50 b>=1 b<b+r 出力: 50 2番目の方程式は新しい情報を提供しないため、この問題は元のパズルとまったく同じになります。 100 50 b+3>=r+4 出力: 25 100 0 b-2>8+1-1 出力: 90 50 50 b>=10 b<=75 出力: 41
8 code-golf  math  logic 

21
長方形のリングにタイルを形成する
入力を受け取り、タイルから長方形のリングtilesXをtilesY作成するメソッドを作成します。 関数は、次のようにリング内のタイルを並べ替える必要があります。 tilesXそしてtilesY、常に正の整数値であり、することはできません0 tilesXそして、tilesY:常に等しくない、などの値が期待する2x5、6x3など 無効な入力を確認する必要はありません 2D配列、ASCIIアート、印刷されたテキストなど、どのような方法でもタイルを表示できます。 2つの整数である限り、入力が渡される厳密な方法はありません。 線にできません。長方形のサイズtilesXとtilesYピクセルの描画は無効です 最短のコードが勝ちます

3
逆Champernowneサブストリング
Champernowne定数は、無理数0.1234567891011 ...無限に拡張されます。 私たちはやった質問をする前に、それについて。しかし、この質問はその逆数であり、逆シャンペローネ定数として知られています。これは約8.10000007です。 1から3桁の文字列(すべての3桁の文字列は小数点以下最初の10,000以内に表示されます)を前提として、その文字列の最初の出現に先行する逆Champernowne定数の小数部分の小数点以下の桁数を指定します。 これを直接実行するか、これらの定数のいずれかの近似値を生成する組み込み関数は禁止されていますが、任意の精度の演算用の組み込み関数は引き続き許可されます。 これはコードゴルフなので、バイト数で見ると最短のプログラムが優先されます。 テストケース: 1 0 2 52 3 13 4 29 5 36 6 7 7 8 8 27 9 23 10 0 100 0 998 187 999 67 01 321 001 689 010 418

6
逆シンボリック計算機
この課題は、Plouffleのインバーターのアイデアに基づいています。 以下を実行する任意の言語でプログラムを作成します。 X10進数で記述された負でない有理数を入力として受け取ります(例:34.147425)。 非負の整数、空白、括弧、および次の2項演算子のみを使用して数式を返します。 添加 + 減算 - 乗算 * 分割 / べき乗 ^ 式は、に評価されるXか、少なくとものすべての桁に一致する必要がありますX。例を続けると13 + 20^(5/4) / 2、13 + 20 ^(5/4)/ 2 = 34.1474252688 ...なので、正しい出力はになる可能性があります。 オプションで、ポーランド語表記(接頭辞)または逆ポーランド表記(後置表記)で出力を書き込むことができます+ 13 / ^ 20 / 5 4 2。つまり、問題ありません。 プログラムは、次の制限を受けます。 標準の抜け穴は禁止されています!特に、プログラムは外部ルックアップテーブルを読み取ることができません。 プログラムのソースコードは、1024文字より短くする必要があります。 平均圧縮率が最も低いプログラムが優先されます。 平均圧縮率を決定するには、次のPythonスクリプトを使用するか、独自の同等のプログラムを作成します。これは、1000個の乱数のリストです。 import random def f(x): # edit this function so that …

4
直交循環行列のカウント
行列の2つの行は、それらの内積がゼロに等しい場合、直交します。すべての行が直交対毎ので行列を呼び出し、直交行列を。巡回行列は、各行ベクトルは、前の行ベクトルに対して右に一つの要素を回転させるものです。我々は唯一のエントリはどちらかである行列に興味があるだろう-1か1。 仕事 直交する循環行列n/2によってn2分間で(可能な限り)できるだけ多くの異なる数をカウントするコードを記述しますn。 入力 コードには入力がありません。n好きな値を試してみることができます。たとえば、コードは最小値からのn乗算のすべてを試行して、を試行することもできます。 4n = 2 出力 あなたが見つけた直交循環行列の数。また、コード自体にマトリックスを出力できるようにするための簡単なスイッチがコード内にあるはずです。 スコア あなたが見つけた循環行列の数。 ヒント 循環行列n/2による直交は、がの倍数または未満のn場合にのみ存在します。n4n4 直交循環行列の例は次のとおりです。 -1 1 -1 -1 -1 -1 1 -1 素朴なアプローチのヒント 最も単純なアプローチは、考えられるすべての行列を反復することです。これは、次の2つの観察を使用して高速化できます。 循環行列の直交性をテストするには、各行を最初の行と比較するだけです。これはサンプルコードに実装されています。 リンドンの単語を反復処理し、直交行列が見つかれば、可能な回転数を掛けることができます。これはまだテストされていないアイデアなので、バグがあるかもしれません。 サンプルコード これは非常にシンプルで素朴なpythonの答えです。を使用して実行しましたtimeout 120。 import itertools def check_orthogonal(row): for i in xrange(1,int(n/2)): if (sum(row[j]*row[(j+i) % n] for j in xrange(n)) != 0): return False …

1
行列の縮約行エシェロン形式
この課題の目標は、行列を取り込んで行数を減らした形で出力するプログラムを作成することです。 マトリックスは、次のすべての条件を満たす場合、簡約行の形になります。 すべてのエントリがゼロである行がある場合、この行はゼロ以外のエントリを含む他の行の下にあります。 行の左端のゼロ以外のエントリはに等しくなり1ます。 行の左端のゼロ以外のエントリは、その列の唯一のゼロ以外のエントリです。 左端のゼロ以外の2つの異なるエントリを考えます。1つは行i、j列にあり、もう1つは行s、t列にあります。もしs>i、その後、 t>j。 ソース マトリックスを変換する一般的なプロセスは次のとおりです。 1からnまでの各行iを順番に処理し、すべてのゼロエントリの列をスキップして、1からmまでの列jにわたって作業します。 ゼロ以外のエントリを持つ次の列jを見つけます。 必要に応じて行を交換し、ピボット要素A(i、j)が非ゼロになるようにします。 ピボット行の各要素をピボットの値で除算して、ピボットを1に等しくします。 ピボット行の適切な倍数を他の行から減算して、ピボットの上下のすべての要素を0に等しくします。 すべての行について繰り返します。 このタイプのマトリックスの詳細を読みたい場合は、そのWikipediaの記事と、マトリックスを変換する手順を示すツールと記事(上記の手順)をご覧ください。 実際の課題については、次のとおりです。 入力は、STDINまたは同等のものを使用して任意の方法で指定できます。回答で説明してください。出力は、STDOUTまたは同等のものを介した入力と同じ形式の、入力の簡略化された行エシェロン形式になります。標準の抜け穴は許可されておらず、このタスクを実行する外部ライブラリまたは関数(たとえば、TI-BASICのrref(コマンド)も許可されていません。完全なプログラムまたは関数を記述できます。これはコードゴルフで、最低のBYTES勝です。幸運を! 入力例: [[2,1,1,14][-1,-3,2,-2][4,-6,3,-5]] 出力例: [[1,0,0,1][0,1,0,5][0,0,1,7]]

1
WinAli-アセンブリ言語を理解するための仮想CPU
WinAliは、Windows用のモデルアセンブラです。実際のCPUをエミュレートし、アセンブリ言語の学習と理解を支援することを目的としています。 ドイツ語のウィキペディアの記事:http : //de.wikipedia.org/wiki/WinAli(現時点では英語の記事はありません) 生成された出力をテストする場合:Googleドライブへのリンク(プログラム自体はドイツ語ですが、ドイツ語を理解していなくても簡単に使用できます) WinAliに関するいくつかの情報(データと構文) データ型: WinAliの唯一のデータ型は、実際にはSmallintまたはshortである2バイト長の「整数」です。したがって、正しい型を処理する必要はありません。これも分割時に丸められます。 変数と定数: 変数は、コマンドの後に次のように定義されます。 name DS F nameは明らかに変数の名前です DSは新しい変数のキーワードです Fは変数の長さをビット単位で定義します。これはゼロベースで16進数なので、F = 16ビット 定数は非常に似ています: name DC value nameは単に定数の名前です DCは新しい定数のキーワードです valueは、その定数に割り当てられた値です。two DC '2' コードの最後に定数を指定する必要はありません。LDA(load)操作でインラインに書き込むこともできますLDA 0,'2'。これにより、「0」がレジスター0(アキュムレーター)にロードされます。 構文: コードは、スペースまたはタブで区切られた4つの列に配置されます。 label command params comment labelはb labelコマンド(goto label)に使用され、しばしばスキップされます。 以下にリストされているコマンドのいずれかをコマンドします。 params 1つまたは2つのパラメータと少なくとも1つのレジスタ、必要に応じて別のレジスタ、変数、スタック、またはアドレス。これらのパラメーターはコンマ(,)で区切られます。 コメント(オプション)行末までの、;または*行末までのコメント。 小さなコード参照: コマンドは他にもありますが、この課題ではこれらのコマンドのみが必要です。 INI A 次のユーザー入力を変数に格納します A OUTI A変数Aが保持している値を出力します。なんらかの理由で、ここではレジスターを使用できません。 …

3
三角法で私を助けて!
微積分学にご協力いただき、誠にありがとうございます。さて、今度の三角法テストについて少し助けが必要です。 テストでは、式を簡略化する必要があります。のような入力が与えられ4sin(x)/(2cos(x))、より単純ですが同等の式(など2tan(x))を生成する必要があります。角度はすべて度単位であり、ゼロによる除算や無効なドメインの問題はないものとします。(たとえば、tan(x + 1)cot(x + 1)sin(x)/ sin(x)は常に1であると仮定します。) 私は教授のオフィスに忍び込んで、テストにあるかもしれない100の問題のリストを得ました。それらをすべて解決するためのコードを教えてください。一部の問題はすでに可能な限り単純化されている可能性があります。もしそうなら、単に入力を返します。 式を簡略化する必要がありますが、教授が気付かないように短いプログラム(または関数)も必要です。プログラムの長さとすべてのソリューションの合計の長さの合計を最小化するようにしてください。 明確にするために、一部の式が変更されずに返されたり、同等の長い形式で返されたりしても問題ありません。また、プログラムは以下にリストされている式でのみ動作する必要があります。誤った結果が返されたり、他の入力で壊れたりすることもあります。 ご存知のように、すべての問題は同様の形式に従っています。xは使用される唯一の変数であり、スペースはなく、括弧は各関数名の後に続きます。(関数であるsin、cos、tan、sec、csc、およびtan。)そこには、ネストされた機能はありませんが、関数の内部のような式であってもよいです3x+4.5か、-2-.7x。指数は使用できますが、関数(などsin(x-.5)^7)でのみ使用でき、累乗は常に1より大きい整数です。乗算は連結によって示されます。 出力もこの形式にする必要があります。無効:sin x、sin(x)/cos(x)tan(x)[正接が乗算または分割されている?]、cos(x[すべて閉じ括弧] 4*sin(x)、sec(x)^1 組み込みの簡略化関数や式処理関数に依存しない限り、どのプログラミング言語でも使用できます。組み込みのトリガー関数は問題ありません。(テスト中には非常に基本的な関数電卓を用意します。)また、紙に書かれたプログラムを読むので、印刷可能なASCII文字(0x20から0x7E)と改行しか使用できません。 1/(sec(x)) 4+sin(x)+3 (cos(7x+4)-sin(-3x))/(sin(-3x)) 2sin(x)2tan(x).25cos(x)^3cos(x)+1+1 7cos(x)sec(x)/(14tan(x)csc(x)) sin(x)cos(x)/sec(x) 8sin(x)cos(x)sin(x)/tan(x)+8sin(x) sin(x)^9cos(x)cot(x)sec(x)csc(x)sec(x)tan(x)/(cot(x)^2tan(x)cos(x)^4cot(x)sin(x)) tan(x)cos(x)csc(x) tan(x+1)sin(x-1)cos(x+1)^3tan(x-1)^2sin(-x+1)csc(x+1)tan(-x+1)/(cos(x-1)cot(x+1)) (cos(2x)+cot(2x)-sin(2x)+csc(2x)^3)/(cot(2x)+sin(2x)) cos(90-x)cos(x) sin(x+180)sec(450-x) tan(-x)sin(x+90)sec(x-90) tan(x+180)^2 cot(-x)cos(-x) cot(180-x)^3cos(270-x)^2 sin(.1x-.2)sin(.1x-.2)sin(.1x-.2)sin(.2-.1x)sin(.2-.1x) sin(x) sin(90-x)sin(x)+cos(90-x)/sec(x) tan(3x+2)cos(3x+2)/sin(3x+2)-1 cos(x)cos(x)cos(x)cos(x)cos(x) sec(2x+1)sec(-1-2x)+sec(-2x-1)sec(2x+1) cos(4x)cot(4x)tan(4x)sin(4x)csc(4x) -cos(x)+cos(x)+sin(2x-4)-1/csc(2x-4) sec(x)sec(x+2)cot(x)tan(x-2)tan(x+180) tan(x)(tan(x)) 3sin(x)sin(x)/(3) cos(x)sin(x) tan(x)sec(x)^2 tan(x)^2-sec(x)^2 7+sin(x)csc(x)csc(x)+cot(x)^2 sin(90)+cos(-90)+sec(180) csc(1)+csc(10)-csc(30)-csc(60)+csc(90) sin(36000001) …

9
細分割和シーケンス
順番にリストされている、1を超える整数の基数の数字を検討します。数字のすべてのチャンクが奇数の長さになるまで、それらを正確に半分に繰り返し再分割します。 Base Digits Subdivided Digit Chunks 2 01 0 1 3 012 012 4 0123 0 1 2 3 5 01234 01234 6 012345 012 345 7 0123456 0123456 8 01234567 0 1 2 3 4 5 6 7 9 012345678 012345678 10 0123456789 01234 56789 11 0123456789A 0123456789A 12 …
8 code-golf  math 

10
IBANバリデーターを作成する
英数字の文字列を受け入れ、ISO 13616:2007に従って検証するプログラムを記述します(関数の本体で十分です)。検証のアルゴリズムは(出典:IBANに関するWikipediaの記事http://en.wikipedia.org/wiki/International_Bank_Account_Number): IBANの検証IBANは、それを整数に変換し、基本的なmod-97操作(ISO 7064で説明)を実行して検証されます。IBANが有効な場合、残りは1になります。IBAN検証のアルゴリズムは次のとおりです。 国ごとにIBANの長さの合計が正しいことを確認してください。そうでない場合、IBANは無効です。正しいIBANの長さは次の場所にあります:http : //pastebin.com/kp4eECVk(以下にもあります)。IBAN番号の長さ順になっています。各番号の最初の2文字は国コードです。最初の2文字の後ろにある他のすべての文字(ペーストビンでは小文字ですが、実際のIBANでは大文字でもかまいません)には、任意の英数字を使用できます。 最初の4文字を文字列の末尾に移動します。 文字列の各文字を2桁に置き換えると、文字列が拡張され、A = 10、B = 11、...、Z = 35になります。 文字列を10進整数として解釈し、その数値の剰余を97で除算して計算します 残りが1の場合、チェックディジットテストに合格し、IBANが有効である可能性があります。 例(架空の英国の銀行、ソートコード12-34-56、口座番号98765432): - IBAN: GB82 WEST 1234 5698 7654 32 - Rearrange: W E S T12345698765432 G B82 - Convert to integer: 3214282912345698765432161182 - Compute remainder: 3214282912345698765432161182 mod 97 = 1 アルゴリズムに従って、アルゴリズムは、数値が有効な場合はtrue(または真の値)を返し、無効な場合はfalse(または偽の値)を返します。番号が実際に存在するかどうかを確認する必要はありません。有効である場合のみです。アルゴリズムは、上記のウィキペディアの記事で言及されている、承認されたさまざまなIBAN番号のそれぞれに対して機能する必要があります。このアルゴリズムは、2つの英数字の間に区切り文字がある場合とない場合の両方の数値と互換性がある必要があります。区切り文字は、ピリオド、スペース、またはダッシュのいずれかで、1つの数字にさまざまなタイプの区切り文字を含めることができます。 通常の抜け穴が適用されます。外部リソース、組み込み関数、メソッドはありません。 パズルタイプはコードゴルフです。バイトカウントで最短のコードが優先されます。プログラムの実行に必要な標準のボイラープレート(名前空間、クラス、OOPでの関数宣言など)は、バイトカウントに含まれていません。 …

2
コラッツアタック!
この課題は、Collat​​z予想に関連するいくつかの新しい発見に基づいており、共同のpolymathプロジェクトの精神に基づいて多少設計されています。推測全体を解決することは、数学/数論の専門家によって非常に困難または不可能であると見なされていますが、この単純なタスクはかなり実行可能であり、サンプルコードの多くの例があります。最良のシナリオでは、競技者のエントリ、工夫、創造性に基づいて、問題に対する新しい理論的な洞察が得られる可能性があります。 新しい発見は次のとおりです。連続する一連の整数[ n1 ... n2 ]が合計mであると想像してください。これらの整数をリスト構造に割り当てます。これで、Collat​​z予想の一般化バージョンは次のように進むことができます。次に、いくつかの選択基準/アルゴリズムに基づいて、リスト内のm(またはそれ以下)の整数の1つを繰り返します。その整数が1に達した場合は、リストからその整数を削除します。明らかに、Collat​​zの推測は、このプロセスがn1、n2のすべての選択に対して常に成功するかどうかを判断することと同等です。 これがツイスト、追加の制約です。各ステップで、m個の現在の反復をリストに一緒に追加します。次に、関数f(i)を考えます。ここで、iは反復数であり、f(i)はリスト内の現在の反復の合計です。特定の "nice"プロパティを持つf(i)を探します。 全体/全体的な概念は、ここでよりよく/より完全に文書化されています(ルビーの多くの例を使用)。その結果、「ほぼ単調に減少する」f(i)につながるかなり単純な戦略/ヒューリスティックス/アルゴリズムが存在し、そのページに多くの例が示されています。以下は、(gnuplotでプロットされた)グラフィカルな出力の例です。 だからここに課題があります:既存の例のバリエーションまたはまったく新しいアイデアを使用して、選択アルゴリズムを構築し、f(i)を「可能な限り単調減少に近づける」ようにします。応募者は、提出物にf(i)のグラフを含める必要があります。有権者は、そのグラフとコード内のアルゴリズムのアイデアに基づいて投票できます。 コンテストは、n1 = 200 / n2 = 400パラメータのみに基づいています。(サンプルページでも同じです。)うまくいけば、競技者は他の地域を探索し、アルゴリズムを一般化しようとするでしょう。 ここで非常に役立つ1つの戦術は、勾配降下型アルゴリズム、または遺伝的アルゴリズムです。 興味のある参加者とのチャットでこれについてさらに議論できます。 いくつかの参照のために、別のcodegolfこのCollat​​zの挑戦:コラッツの問題(でドアノブ)

20
逆フィボナッチ定数
通常のフィボナッチチャレンジが非常に多いため、逆フィボナッチ定数、つまりフィボナッチシーケンスの逆数の合計を計算するのは興味深いことだと判断しました。 課題は、フィボナッチ数列を使用してフィボナッチ数の逆数を計算し、入力として指定された数字を使用することです。つまり、10の入力は、最初の10フィボナッチ数の逆数に基づいて計算することを意味します。おそらく同点の場合、最短のコードが優先されます。 優勝者は、標準のコードゴルフ規則により3週間で選ばれます。

5
ゴルフ:2D座標のリストにある単位長の正方形はいくつありますか?
2d(x、y)座標のリストを前提として、その座標を使用して形成できる単位正方形(エッジ長1単位)の数を決定します。 入力は、座標の0以上のペアの配列になります。例:JavaScriptの場合:numofsq([[0,0], [1,0], [1,1], [0,1]]) 入力に重複する座標はありません 入力順序はランダムになります(ランダムな2D座標)。 座標形式:[x座標、y座標](duh) 座標の順序:[0,0]、[1,0]、[1,1]、[0,1]および[0,0]、[0,1]、[1,1]、[1,0 ]同じ単位の正方形を表す(1回だけ数える) 座標は負または正の整数にすることができます(duh) 関数は、可能な単位平方の数、0以上を返します。 テストケース: Input Coordinates Pairs Expected Output [0,0], [0,1], [1,1], [1,0], [0,2], [1,2] 2 [0,0], [0,1], [1,1], [1,0], [0,2], [1,2], [2,2], [2,1] 3 [0,0], [0,1], [1,1], [1,0], [0,2], [1,2], [2,2], [2,1], [2,0] 4 [0,0], [0,1], [1,1], [1,0], [0,2], [1,2], …

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