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

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

16
Plus and Times、Ones and Nines
この繰り返し関係を、負でない整数を入出力する関数またはプログラムとして実装します。 F(0)= 0 F(N)= 10を底とする数字の和および/または積がNになるようなF(N-1)より大きい最小の整数 Nはプログラムの入力であり、F(N)はその出力です。 明確にするために、913などの数字の合計は9 + 1 + 3 = 13です。積は9×1×3 = 27です。1桁の数値の場合、合計と積は同じ数値です。もちろん、0を含む数字の製品は0です。 F(70)による結果は次のとおりです。 N F(N) 0 0 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 10 19 11 29 12 34 13 49 14 59 15 69 …

13
Goldbachパーティション
ゴールドバッハ予想では、2より大きいすべての偶数は2つの素数の合計として表現できると述べています。例えば、 4 = 2 + 2 6 = 3 + 3 8 = 5 + 3 ただし、10に達すると、興味深いことが起こります。10と書けるだけでなく、 5 + 5 しかし、次のように書くこともできます 7 + 3 10は2つの素数の和として2 つの方法で表現できるため、10 の「ゴールドバックパーティション」はであると言います2。またはより一般的には、 数のゴールドバッハパーティションが書き込みの異なる方法の合計数であるn = p + q場合pとq素数であり、そしてp >= q あなたの課題は、番号のGoldbachパーティションを見つけるプログラムまたは関数を書くことです。現在、技術的には「Goldbachパーティション」という用語は偶数を指すためにのみ使用されています。ただし、p> 2が素数の場合、奇数の整数p + 2は2つの素数の和としても表現できるため、これをすべての正の整数(A061358)に拡張します。 入力は常に正の整数であり、関数の引数と戻り値、STDINとSTDOUT、ファイルの読み取りと書き込みなど、許可されているデフォルトのメソッドのいずれかで入力と出力を受け取ることができます。 100までの正の整数のGoldbachパーティションは次のとおりです。 0, 0, 0, 1, 1, 1, 1, 1, 1, 2, …

19
メルテンス関数を計算する
正の整数nが与えられた場合、Mertens関数 M(n)の値を計算します。ここで、 そしてμ(kは)であるメビウス関数μ(kは)場合は1 = kが異なる素因数の偶数を有する場合、-1 kは異なる素因数の奇数であり、0素因数が明確でない場合。 これはコードゴルフなので、入力整数n > 0 に対してメルテンス関数を計算する関数またはプログラムの最短コードを作成します。 これは、OEISシーケンスA002321です。 テストケース n M(n) 1 1 2 0 3 -1 4 -1 5 -2 6 -1 7 -2 8 -2 9 -2 10 -1 117 -5 5525 5 7044 -25 8888 4 10000 -23

11
自動スーパー対数を行う
正の整数で指定されたN及び数A、N番目のテトレーションのように定義される^(^(^(^ ... )))、^はべき乗(または電力)を示し、発現が含ま数を正確にN回。 言い換えれば、テトラションは右結合反復累乗法です。以下のためのN = 4、および= 1.6テトレーションは、1.6 ^(1.6 ^(1.6 ^ 1.6))≈3.5743です。 nに関するテトラションの逆関数は、超対数です。前の例では、4は「スーパーベース」1.6の3.5743のスーパー対数です。 チャレンジ 正の整数nが与えられた場合、nがスーパーベースxにおけるそれ自体のスーパー対数になるようなxを見つけます。つまり、見つけるのx、このようなことのx ^(X ^(X ^(... ^ xは)))(と、xが登場するのn倍)に等しいn個。 ルール 許可されたプログラムまたは機能。 入出力形式は通常どおり柔軟です。 アルゴリズムは、すべての正の整数に対して理論的に機能するはずです。実際には、メモリ、時間、またはデータ型の制限により、入力は最大値に制限される場合があります。ただし、コードは100少なくとも1分未満で入力に対して機能する必要があります。 アルゴリズムは、理論的には0.001正確な結果を提供する必要があります。実際には、数値計算の累積誤差により、出力精度が低下する場合があります。ただし、0.001指定されたテストケースに対して出力は正確でなければなりません。 最短のコードが優先されます。 テストケース 1 -> 1 3 -> 1.635078 6 -> 1.568644 10 -> 1.508498 25 -> 1.458582 50 -> 1.448504 100 -> 1.445673 リファレンス実装 Matlab / …
18 code-golf  math  number 

14
かなり滑らかな動き
算術では、n平滑数(nは任意の素数)は、nより大きい素因数を持たない正の整数として数学的に定義されます。たとえば、42はすべての素因数が7以下であるため7平滑ですが、44は素因数として11もあるため7平滑ではありません。 非常に滑らかな数値を、それ自体の平方根より大きい素因数のない数値として定義します。したがって、非常に滑らかな数値のリストは次のように定式化できます。 (編集済み!) 1は、素因数がまったくないため、非常に滑らかな数値です。(この質問の元のバージョンでは、1がリストから誤って除外されていたため、出力から除外した場合、間違ってマークされることはありません。) 4(= 2 2)と8の間では、非常に滑らかな数値は2滑らかで、2が唯一の素因数であるということです。 9(= 3 2)と24の間では、非常に滑らかな数値は3滑らかで、素因数分解で2と3を持つことができます。 25(= 5 2)と48の間では、非常に滑らかな数値は5滑らかで、素因数分解で2、3、および5を持つことができます。 など、次の素数の二乗に到達するたびに基準をアップグレードします。 非常に滑らかな数値のリストは固定されており、次のように始まります:1、4、8、9、12、16、18、24、25、... あなたの課題は、10,000(= 100 2)までのすべての非常に滑らかな数値を出力するコードを書くことです。リスト内の各番号と次の番号の間には、少なくとも1つのセパレーター(スペース、コンマ、改行などは関係ありません)が必要ですが、どの文字が使用されるかはまったく関係ありません。 いつものように、最低のバイト数が勝ちます-明らかに、リストを出力するだけではここではあまり有益ではありません。幸運を!
18 code-golf  math  primes 

9
ラミーシーケンスを生成する
あなたの仕事は、私が作成したシーケンスであるラミーシーケンスの入力nおよび出力要素を取得することですn(OEISを調べても役に立ちません)。 定義 ラミーシーケンスの各要素は、真偽値のセットです。例:[true, false]。 ラミーシーケンスのメンバーを作成する手順は非常に簡単です。 最初のインデックスから始めます[](これは要素0です)。 左端の偽物を真実に設定します。変更するfalseysがない場合は、リストの長さを1増やして、新しいリストのすべてのメンバーをfalseyに設定します。 elementに達するまで手順2を繰り返しますn。 例 関数を次のように定義してみましょうrummy(int n)({}答えは答えを得るための手順です): >>> rummy(5) {[]} {[false]} {[true]} {[false, false]} {[true, false]} [true, true] ルール 標準の抜け穴が適用されます。 ご使用の言語の数値の上限を超える入力0で機能する必要があります。 出力が真実/偽のセットであることは明らかである限り、適切と思われる方法で出力できます。 トリビア これを「ラミーシーケンス」と呼びます。これは、インデックス2から、プログレッシブラミーの各ラウンドで設定する必要があるセットを定義するためです。 テストケース >>> rummy(0) [] >>> rummy(1) [false] >>> rummy(6) [false, false, false] >>> rummy(20) [true, true, true, true, true] >>> rummy(1000) [true, …

6
mod-foldを認識する
仕事 mod-foldを形式f(x)= x%a 1 %a 2 %…%a kの関数として定義します。ここで、aiは正の整数で、k≥0です。(ここで、%は左結合モジュロ演算子です。) n個の整数y 0、…、y n-1のリストを指定して、各y i = f(i)になるようにmod-fold fが存在するかどうかを判断します。 関数/プログラムの任意の2つの出力 YおよびNを選択して修正できます。そのようなfが存在する場合、常に正確にYを返す/印刷する必要があります。そうでない場合は、常に正確にNを返す/印刷する必要があります。(これらはtrue/ false、または1/ 0、またはfalse/ trueなどです。)これらをあなたの答えに挙げてください。 バイト単位の最短提出が勝ちです。 例 f(x)= x%7%3を定義します。その値は始まります: | x | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | ... | f(x) …

5
ジョーダン分解
重要な注意:この課題は正方行列にのみ適用されるため、「行列」という用語を使用するときは常に、正方行列を参照していると想定されます。簡潔にするために、「正方形」の説明は省略します。 バックグラウンド 行列式の計算、線形システムの解決、スカラー値関数のマトリックスへの拡張など、マトリックスに関連する多くの操作は、同様の対角マトリックス(主対角上にない要素が0であるマトリックス)を使用することで簡単になります元の行列(つまり、入力行列Aと対角行列の場合D、; Pなどの可逆行列が存在し、固有値、行列式、トレースなどの重要なプロパティを共有します)。(解くことによって与えられた行列の特性多項式の根の異なる固有値を持つ行列のため、同じ寸法の単位行列である)、対角化は単純です。D = P^(-1) * A * PDAdet(A-λI) = 0λIADは、主対角線上に固有値を持つ行列であり、Pそれらの固有値に対応する固有ベクトルから形成された行列です(同じ順序で)。このプロセスはeigendecompositionと呼ばれます。 ただし、固有値が繰り返される行列は、この方法では対角化できません。幸いなことに、任意の行列のヨルダン正規形はかなり簡単に計算でき、通常の対角行列よりも作業するのはそれほど難しくありません。また、固有値が一意である場合、Jordan分解は固有分解と同一であるという優れた特性を備えています。 ヨルダン分解の説明 A固有値の幾何学的多重度がすべて1である正方行列の場合、ジョーダン分解のプロセスは次のように記述できます。 みましょうλ = {λ_1, λ_2, ... λ_n}の固有値のリストでA連続して登場する繰り返し固有値で、多様で、。 J要素がの要素である対角行列をλ同じ順序で作成します。 多重度が1より大きい各固有値について、最後を除いて1、の主対角の固有値の繰り返しのそれぞれの右側にa を配置しJます。 結果の行列Jは、のジョーダン正規形ですA(固有値の順序に応じて、特定の行列に対して複数のジョーダン正規形が存在する可能性があります)。 実例 ましょうはA、次の行列です: の固有値はA、多重度で、ですλ = {1, 2, 4, 4}。これらを対角行列に入れると、次の結果が得られます。 次に、1繰り返し固有値のそれぞれのうち1つを除くすべての右側にs を配置します。以来4唯一の繰り返し固有値は、我々は、単一の配置1最初の4の次に: これは、Jordanの正規形ですA(単一のマトリックスに複数の有効なJordan正規形が含まれる可能性がありますが、説明のためにその詳細を詳しく説明します)。 タスク A入力として正方行列を指定し、の有効なヨルダン正規形を出力しますA。 入力および出力は、任意の妥当な形式(2D配列/リスト/任意、リスト/配列/列または行ベクトルの任意、組み込み行列データ型など)になります。 の要素と固有値は、A常に範囲内の整数になります[-200, 200]。 簡単にするために、すべての固有値の幾何学的多重度は1になります(したがって、上記のプロセスが成り立ちます)。 A せいぜい10x10マトリックスと少なくとも2x2マトリックスになります。 固有値や固有ベクトルを計算したり、固有分解、ヨルダン分解、その他の種類の分解/対角化を実行する組み込み関数は許可されていません。行列演算、行列反転、およびその他の行列組み込みが許可されています。 テストケース [[1, 0], [0, 1]] …

15
g l f a t a n 2
時には、デカルト座標(x,y)を極座標に変換するのは本当に大変です(r,phi)。r = sqrt(x^2+y^2)非常に簡単に計算できますが、角度を計算する際にケースの区別が必要になることがよくあります。phiこれarcsinはarccos、arctanおよび他のすべての三角関数が、それぞれが円の半分のみに広がる共領域を持つためです。 多くの言語には、直交座標を極座標に変換するための組み込みatan2機能があります。または、少なくとも(x,y)角度を計算する関数がありますphi。 仕事 あなたのタスクは、2つ(浮動小数点、両方ではないゼロ)デカルト座標を取るプログラム/関数を記述することで(x,y)、対応する極角出力するphi、phiと(度、ラジアン、またはグレードでなければならないグレード Iは、平均グラジアン 1であります/ 400の完全な円)、あなたにとってより便利な方。 角度は正の方向で測定され、の角度はゼロです(1,0)。 詳細 あなたは、角度計算ビルトインを使用することはできませんphiを含む2点の座標、与えられたatan2、rect2polar、argOfComplexNumberおよび同様の機能を。ただし、通常の三角関数とその逆関数を使用できます。これらの関数は1つの引数のみを取ります。単位記号はオプションです。 半径はr非負でなければならない、とphiの範囲でなければなりません[-360°, 360°](それはあなたの出力かどうかは関係ありません270°か-90°)。 例 Input Output (1,1) 45° (0,3) 90° (-1,1) 135° (-5,0) 180° (-2,-2) 225° (0,-1.5) 270° (4,-5) 308.66°
18 code-golf  math  geometry  trigonometry  code-golf  number-theory  fibonacci  code-golf  math  sequence  fibonacci  code-golf  string  code-golf  math  graphical-output  geometry  code-golf  string  code-golf  math  geometry  code-golf  math  bitwise  number  popularity-contest  graphical-output  image-processing  fractal  code-golf  number-theory  code-golf  date  multi-threading  code-golf  math  code-golf  math  number  sequence  code-golf  math  number  sequence  arithmetic  code-golf  decision-problem  logic-gates  code-golf  decision-problem  balanced-string  code-golf  math  arithmetic  combinatorics  code-golf  expression-building  code-golf  physics  code-golf  abstract-algebra  code-golf  number  arithmetic  integer  code-golf  ascii-art  number  code-golf  number-theory  primes  code-golf  arithmetic  grid  code-golf  code-golf  sequence  code-golf  kolmogorov-complexity  compression  code-golf  math  number  arithmetic  array-manipulation  code-golf  primes  hexagonal-grid  complex-numbers  code-golf  number  counting  code-golf  math  number  arithmetic 

27
カウントアップ、交換、繰り返し!
定義 CURRシーケンスのn 番目の配列を次のように定義します。 シングルトン配列A = [n]から始めます。 各整数のためにKにA、エントリ交換Kを用いてKからカウントアップ、自然数1にK。 前のステップn-1をさらに繰り返します。 たとえば、n = 3の場合、配列[3]から始めます。 3を1、2、3に置き換えて、[1、2、3]を生成します。 私たちは今取り替える1、2、および3と1。1、2および1、2、3(それぞれ)、[ 1、1、2、1、2、3 、]を生成します。 最後に、配列内の6つの整数すべてに対して前のステップと同じ置換を実行し、[ 1、1、1、2、1、1、2、1、2、3 ]を生成します。これは3番目のCURR配列です。 仕事 入力として厳密に正の整数nが与えられると、n 番目の CURR配列を計算する関数のプログラムを作成します。 出力は、ある種のフラットリストである必要があります(関数から返された配列、言語の配列構文の文字列表現、空白区切りなど)。 これはcode-golfです。バイト単位の最短コードが勝つように! テストケース 1 -> [1] 2 -> [1, 1, 2] 3 -> [1, 1, 1, 2, 1, 1, 2, 1, 2, 3] 4 -> [1, 1, 1, …

1
サンドパイル整数
チャレンジ n入力として正の整数が与えられます。出力は、以下に指定されたルールに基づいて構築されたピラミッドのような砂山である必要があります。 各整数は、砂が円錐形に落ちるように、同じ最初の開始点から下に「落ちます」。 可能な場合は、砂山に当たったときにその直下の数よりも大きい数が右に落ちます。 可能な場合は、砂山に当たったときにその直下の数字よりも小さい数字が左に落ちます。 砂山に当たったとき、その直下の数に等しい数はそのままになります。 数字は、それぞれ下または左/右に移動できる場合、左/右に落ちることができます。つまり、方向に応じて、下または左/右に既に数字がある場合、現在下降している数字は移動しません。 数は、次の位置に移動できないか、床にぶつかるまで、砂山を転がり続けます。 ノート 最初の比較チェックは、最初に検出された整数にのみ適用され、サンドパイルをたどるときに連続する各検出には適用されません。 後続のスペースは大丈夫ですが、後続の改行はそうではありません。 砂山の構造を維持するために必要な場所を除いて、先行スペースや改行はありません。 完全なプログラムまたは機能を作成できます。 入力にはいくつかの組み合わせのみが含まれると想定できます[0-9]。 これはcode-golfで、バイト単位の最短コードは3月のIdesによって勝者としてマークされます 例 1 1 12345 35 124 54321 13 245 555444333222111 2 2 2 135 1345 13445 111222333444555 4 4 4 135 1235 12235 7313623030872935273465247457435345345345350 3 3 3 3 34 355 3644 239475 201277445 020373685575
18 code-golf  math  number 

12
オブジェクトの体積を計算する
特定の次元セットに基づいてオブジェクトの体積を決定できます。 球体の体積は、半径(r)という1つの数値を使用して決定できます。 円柱の体積は、半径(r)と高さ(h)の2つの数値を使用して決定できます。 ボックスの容積は、長さ(l)、幅(w)、高さ(h)の3つの数値を使用して決定できます。 不規則な三角ピラミッドの体積は、辺の長さ(a, b, c)と高さ(h)の4つの数値を使用して決定できます。 課題は、次の入力のいずれかを与えられたオブジェクトのボリュームを決定することです。 単一の番号(r)または(r, 0, 0, 0)=>V = 4/3*pi*r^3 2つの数字(r, h)または(r, h, 0, 0)=>V = pi*r^2*h 3つの数字(l, w, h)または(l, w, h, 0)=>V = l*w*h 4つの数字(a, b, c, h)=> V = (1/3)*A*h、ここでHeronの式でA与えられます:A = 1/4*sqrt((a+b+c)*(-a+b+c)*(a-b+c)*(a+b-c)) 規則と説明: 入力は整数と小数の両方にすることができます すべての入力ディメンションが正であると仮定できます Piがハードコーディングされている場合は、最大で正確でなければなりません3.14159。 より少ない桁で正確に表現できる数値を除き、出力には少なくとも6桁の有効数字が必要です。3/4として出力することができますが0.75、する4/3必要があります1.33333(より多くの数字はOK) 不正確な値を丸める方法はオプションです 無効な入力の動作は未定義です I / Oの標準ルール。入力は、リストまたは個別の引数にすることができます これはコードゴルフであるため、バイト単位の最短ソリューションが勝ちます。 テストケース: …

4
圧縮された曜日
曜日のリストの入力が与えられると、リストの最短のソートされた表現を出力します。 入力の形式は、2文字のストリングの一つ以上からなる文字列であるSu(日)、 Mo(月)、 Tu(など)、 、We、Th、 FrおよびSa。入力は必ずしもソートされた順序で与えられるとは限りません。 入力を出力形式に変換するには、 入力を日曜日から始まる曜日で並べ替えます(例ThMoSaSuFrTuWe-> SuMoTuWeThFrSa)。 あいまいさを残さない場合は、略語を1文字に減らします。たとえば、最初のSが土曜日になることができなかったため、にSuMoTuWeなるはずSMTWです。これにより、出力がソートされなくなります(Tと同じ)。しかし、ThFrSaなるはずThFS火曜日と木曜日の両方が金曜日前にそれを減らしてくると、TFSあいまいさを作成します。 出力がnowの場合、代わりMTWTFに出力D(「week day s」を表します)。同様に、SSなるはずE週間のために終了。最後に、 SMTWTFSなるべきAために、すべての日。 入力と出力は両方とも単一の文字列でなければなりません。 これはcode-golfであるため、バイト単位の最短コードが優先されます。 テストケース: In Out | In Out -----------------------|-------------------- SuTu STu | SuTuWe STW SuTuSa STuS | SuWeTh SWT TuThSa TTS | TuThSu STT Su Su | Sa Sa WeTh WT | FrTh ThF WeTu TW …

26
ジャグラーシーケンスを出力する
ジャグラー配列は、次のように記載されています。入力a 1で始まり、次の項は再帰関係によって定義されます その後のすべての項は1になるため、シーケンスは1に達すると終了します。 仕事 入力nが2以上の場合、プログラム/関数/ジェネレーターなどを記述します。それぞれのジャグラーシーケンスを出力/返します。出力は、合理的な形式で行うことができます。ジャグラーシーケンスを計算する組み込み関数、または結果を直接生成する組み込み関数を使用することはできません。シーケンスはで終了すると想定できます1。 テストケース Input: output 2: 2, 1 3: 3, 5, 11, 36, 6, 2, 1 4: 4, 2, 1 5: 5, 11, 36, 6, 2, 1 これはコードゴルフです。バイト単位の最短コードが優先されます。

4
シンプルなDNAシミュレーター
あなたのコードは、DNAの非常に単純なASCIIアート表現を永久に生成します。必要な形式の入力として2つの数字を受け取ります。リスト、関数の引数、標準入力などです。 I0.0〜1.0の秒単位の浮動小数点間隔 Z1から64までの整数としてのズームレベル コードはI、1 秒ごとにstdoutまたはそれに相当するものに1行を出力し、次のような無限出力を生成します(ズームレベル4の場合)。 A T-----a G-------c G-----c g t-----A a-------T c-----G T A-----t C-------g ... 具体的には、DNAの我々の表現は、ハイフンで接続された正弦波のペア、文字から成るものであるa、c、g、及びt、文字の他A、C、G、およびT。場合はx私たちが現在印刷している行の0から始まるインデックス番号で、小文字の波の中の文字の0ベースの位置は次式で与えられ(sin(πx / Z) + 1) * Z、そして大文字の波にで与えられ(-sin(πx / Z) + 1) * Z、両方の丸い最寄りに(床のではありません)整数。詳細: 2つの波が重なる場合は、大文字の波から始めて、どちらの波が前面にあるかを交互に切り替える必要があります。(小文字の波から始めると、存在しない二重らせんができます!) 大文字小文字を無視して、実際のDNAのように、Aは常にTとペアになり、Cは常にGとペアになります。ペア自体は、4つの可能性にわたって均一に分布するようにランダムに選択する必要があります。ペアの選択がコードの連続した実行で同じか異なるかは関係ありません。あなたのランダムな選択の統計的品質は長い出力が明らかなパターンと、少なくとも十億にピリオドがないほどの問題ではありません(のような欠陥のPRNG RANDUは罰金ですが。) 後続のスペースがないか、そのズームレベル(上記の例では9文字)ですべての行を波の最大位置までパディングする必要があります。 DNAは小さいため、コードはできるだけ短くする必要があります。 その他の例: ズームレベル8: T C-----g A-----------t C-------------g G---------------c T-------------a T-----------a T-----a c g-----C t-----------A g-------------C a---------------T …

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