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

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

22
複素数の指数
負、ゼロ、または正であり、得る2つの整数、所与a及びb(任意の合理的なフォーマットで撮影普通の複素数を入力するなど)に変換するa + bi場合i虚数(負の一方の平方根)です。次に、それを3番目の(正の整数)入力変数で累乗cします。その後、のようになるはずです。その後、出力しなければならない、またはリターン、および(任意の合理的な形式でプレーンな複素数を出力含みます)。(a + bi)cd + eide 入力と出力は、任意の順序で取得または出力できます。 例: 5, 2, 2 -> 21, 20 1, 4, 2 -> -15, 8 -5, 0, 1 -> -5, 0

2
フォンコッホ予想
数学者フォン・コッホの有名なスノーフレークでご存知かもしれません。しかし、彼はもっと興味深いコンピュータサイエンスの問題を抱えています。確かに、この推測を見てみましょう: nノード(したがってn-1エッジ)を持つツリーを指定します。ノードを列挙するための方法を見つける1までnのエッジ、したがって、およびを1するn-1各エッジのためにそのようなAのようにk、そのノード番号の差が等しいですk。これは常に可能であるという推測です。 これを完全に明確にする例を次に示します。 あなたのタスク あなたのコードは入力としてツリーを受け取り、あなたはあなたが望むフォーマットを取ることができますが、テストケースのために私はそれらの弧とそれらのノードのリストによってツリーを提供します。 たとえば、次の図はツリーの入力です。 [a,b,c,d,e,f,g] d -> a a -> b a -> g b -> c b -> e e -> f コードは、ノードとエッジに番号が付けられたツリーを返す必要があります。よりグラフィカルな出力を返すことができますが、テストケースにこの種の出力を提供します。 [a7,b3,c6,d1,e5,f4,g2] d -> a 6 a -> b 4 a -> g 5 b -> c 3 b -> e 2 e -> f …

3
論理式を論理積正規形に変換する
ゴール: 命題論理式(以降、論理式または式と呼ぶ)の式を取り、その式を論理積標準形で出力する完全なプログラムまたは関数を記述します。そこの2つの定数があり、⊤そして⊥単項演算子、真と偽を表す¬否定を表す、およびバイナリ演算子は⇒、⇔、∧、と∨暗に、同値、接続詞、および論理和を表す、それぞれどの(通常の論理演算のすべてに従わドモルガンの法則を、二重否定の除去など)。 結合標準形は次のように定義されます。 アトミック表現(⊤およびを含む⊥)は、連言正規形です。 以前に作成された式の否定は、接続詞の正規形です。 以前に作成された2つの式の分離は、接続詞の正規形です。 以前に作成された2つの式の結合は、接続詞の正規形です。 他の表現は、接続型の通常の形式ではありません。 すべての論理式は、論理的に等価な論理積形式に変換できます(一意ではありません)(このアルゴリズムを参照)。その特定のアルゴリズムを使用する必要はありません。 入力: 入力は任意の形式で行うことができます。たとえば、シンボリック論理式(言語でサポートされている場合)、文字列、その他のデータ構造。ここで説明するように、true、false、および論理演算子に同じ記号を使用する必要はありませんが、選択は一貫している必要があり、明確でない場合は、回答で選択を説明する必要があります。他の入力を受け入れたり、入力形式で追加情報をエンコードしたりすることはできません。任意の数の原子式を表現する方法が必要です。例:整数、文字、文字列など 出力: 連想標準形の数式。これも便利な形式です。入力と同じ形式である必要はありませんが、違いがあるかどうかを説明する必要があります。 テストケース: P ∧ (P ⇒ R) -> P ∧ R P ⇔ (¬ P) -> ⊥ (¬ P) ∨ (Q ⇔ (P ∧ R)) -> ((¬ P) ∨ ((¬ Q) ∨ R)) ∧ ((¬ P) ∨ (Q …
10 code-golf  math  logic 

5
有効数字はいくつですか?
入力として数値を与えて、それがいくつの有意な数字を持っているかを決定します。特別なフォーマットを行う必要があるため、この数値は文字列として解釈する必要があります。すぐに私の意味がわかります(私は思う)。 以下の少なくとも1つが当てはまる場合、数字はsig-figです。 ゼロ以外の数字は常に重要です。 2つの有効数字の間のゼロはすべて有効です。 小数部分の最後のゼロまたは後続のゼロのみが重要です。 小数点以下に何もない場合は、すべての桁が有効です。 ゼロしかない場合、最後のゼロ以外はすべて先行ゼロと見なされます 入力 数値の文字列または文字列配列。末尾に小数点のない小数点がある場合があります。小数点がまったくない場合があります。 出力 いくつのsig-figsがあります。 例 1.240 -> 4 0. -> 1 83900 -> 3 83900.0 -> 6 0.025 -> 2 0.0250 -> 3 2.5 -> 2 970. -> 3 0.00 -> 1
10 code-golf  string  math 

1
有効数字で式を評価する
式が与えられたら、あなたの仕事はそれを評価することです。ただし、実際よりも正確な測定値があるという印象を与えるため、答えに必要以上の桁を表示することはできません。 数値が持つ有効数字の数は、小数点が存在する場合は末尾のゼロを含めて、科学表記法で記述した場合の桁数です。たとえば、に1200は2つの有効数字1.2*10^3があり1200.ますが、4つの有効数字と1200.05つの有効数字があるためです。 2つの数値を加算する場合、結果は、最下位桁が左端にある数値と同じ桁数に丸められる必要があります。たとえば、1200 + 3 = 1200(1200は100の位に丸められるため、100の位に丸められます)、、1200.01 + 3 = 1203および4.59 + 2.3 = 6.9。注5切り上げられます。これと同じルールが減算にも適用されます。01の位に丸められます。加算と減算は有効桁数に依存しないことに注意してください。例えば、999 + 2.00 = 1001999は1の位に丸められ、2.00は100の位に丸められるため。より少ない数に丸められたものは999なので、結果の1001.00も1の位に丸められる必要があります。同様に、300 + 1-300は正確に1に等しくなりますが、300は100の位に丸められるため、最終結果も100の位に丸められ、0になります。300。+ 1-300.は、一方。 2つの数値を乗算または除算する場合は、最下位桁のある数値の有効桁数に丸めます。たとえば3.839*4=20、正確な値は15.356、有効数字が1つしかない20ため、丸められ4ます。同様に100/4=30、両方の数値には1つの有効数字があるが100./4.00=25.0、両方の数値には3つの有効数字があるため。0有効桁数が1と定義されています。 式だけ含まれています*、/、+、および-、(括弧)。演算の順序に従い、すべての演算の後に結果を丸める必要があります。加算または減算の文字列、または乗算および除算の文字列で括弧が省略されている場合は、すべての演算が完了した後に丸めます。たとえば、6*0.4*2 = 5(有効数字1つ)、while 0.4*(2*6)=0.4*10=4、(6*0.4)*2=2*2=4. 入力:()*/+-と数字を含む式を含む文字列。物事を簡略化-するために、負の数を示すためではなく、減算演算子としてのみ使用されます。ただし、回答は依然として否定的であり-、接頭辞として必要になります。 出力:式の結果。評価され、正しい桁数に丸められます。の25は正しくないことに注意してください25.0。 テストケース: 3 + 0.5 --> 4 25.01 - 0.01 --> 25.00 4*7*3 --> 80 (4*7)*3 --> 90 (8.0 + 0.5)/(2.36 - …
10 code-golf  math 

7
ヤコビ行列を作成する
未知数のベクトルを取り、いくつかの一般的な微分可能関数を適用します。ヤコビアンは、次いで行列によって与えられるように。 たとえば、と仮定m=3しn=2ます。次に(0ベースのインデックスを使用) のヤコビアンfは この課題の目標は、このヤコビ行列を出力することです。 入力 プログラム/関数は、2つの正の整数mとを入力として受け取る必要nがfありuます。これらはそれぞれとのコンポーネントの数を表します。入力は、任意のソース(stdio、関数パラメーターなど)から取得できます。あなたはこれらが受け取られる順序を指示することができ、これはあなたの答えへのどんな入力でも一貫していなければなりません(あなたの答えで指定してください)。 出力 ヤコビ行列を表すもの。この表現は、ヤコビ行列のすべての要素を明示的に記述する必要がありますが、各項の正確な形式は、何が区別され、何が明確であり、すべてのエントリが論理的な順序で出力される限り、実装で定義されます。マトリックスを表すための受け入れ可能なフォームの例: 外部リストの各エントリがヤコビアンの行に対応し、内部リストの各エントリがヤコビアンの列に対応するリストのリスト。 各行がヤコビアンの行であり、行の各区切り文字で区切られたエントリがヤコビアンの列に対応する文字列またはテキスト出力。 マトリックスのグラフィック/ビジュアル表現。例:MatrixFormコマンドを使用したときにMathematicaによって表示されるもの 他のいくつかの密行列オブジェクト。すべてのエントリは既にメモリに格納されており、クエリできます(つまり、ジェネレータオブジェクトを使用できません)。例としては、Mathematicaが内部的にMatrixオブジェクトをどのように表すかが挙げられます エントリ形式の例: 形式の文字列。d f_i/d u_jここでi、およびjは整数です。例:d f_1/d u_2。dとf_1またx_2はの間のこれらのスペースはオプションであることに注意してください。また、アンダースコアもオプションです。 d f_i(u_1,...,u_n)/d u_jまたはの形式の文字列d f_i(u)/d u_j。つまり、関数コンポーネントの入力パラメーターf_iはオプションであり、明示的に指定するか、コンパクトな形式で残すことができます。 フォーマットされたグラフィック出力。例:式を評価したときにMathematicaが出力するものD[f_1[u_,u_2,...,u_n],u_1] 開始インデックスとその目的uを選択できますf(回答で指定してください)。出力は、必要なシンク(stdio、戻り値、出力パラメーターなど)への出力です。 テストケース 次のテストケースでは、この規則を使用していm,nます。インデックスは0ベースで表示されます。 1,1 [[d f0/d u0]] 2,1 [[d f0/d u0], [d f1/d u0]] 2 2 [[d f0/d u0, d f0/d u1], [d f1/d u0, d …

6
バイナリ繰り返しシーケンス
バイナリ再帰シーケンスは、次の形式の再帰的に定義されたシーケンスです。 これは、フィボナッチ(x = 1, y = 2, a = [1, 1], alpha = 1, beta = 1)シーケンスとルーカス(x = 1, y = 2, a = [2, 1], alpha = 1, beta = 1)シーケンスの一般化です。 チャレンジ 所与n、x、y、a、alpha、およびbeta、任意の合理的な形式で、出力n対応するバイナリ再発配列の第用語。 ルール シーケンスを1インデックス付きまたは0インデックス付きのどちらにするかを選択できますが、選択はすべての入力にわたって一貫している必要があり、回答ではその選択を記録する必要があります。 あなたは無効な入力が(そのような従来の終了シーケンスとして与えられないであろうことを仮定してもよいnの参照は次のように、用語を未定義こと、またはシーケンスF(-1)またはF(k)場所k > n)。この結果として、xそしてy常にポジティブになります。 入力と出力は常に整数であり、言語の自然な整数型の範囲内です。言語に制限のない整数がある場合、入力と出力は範囲[2**31, 2**31-1](つまり、32ビットの符号付き2の補数の整数の範囲)内にあります。 a常に正確にy値が含まれます(定義に従って)。 テストケース 注:すべてのテストケースのインデックスは0です。 x = 1, y = 2, …

13
合同の公式
中国剰余定理は、剰余演算に威力を発揮することができます。 たとえば、次の一連の合同関係について考えてみます。 このような合同関係のセットの場合、すべての基数(3, 5, 7この例では)は互いに素であり、とのn間に1(3*5*7 = 105この例では)基数の積の間に唯一の整数があり、関係を満たします。 。 この例では、数値はであり14、次の式で生成されます。 ここで、2, 4, and 0上記の例で示されています。 70, 21, 15は式の係数であり、基底に依存し3, 5, 7ます。 70, 21, 15一連の基底の式の係数(この例では)を計算するには、次の手順を使用します。 a一連の基数の各数値について: として示される他のすべての基底の積を求めますP。 で割ったときにP余りが残る最初の倍数を見つけます。これはの係数です。1aa たとえば、base 3に対応する係数を計算するには、他のすべてのbase の積(つまり5*7 = 35)を求め、次に1baseで割ったときに余りを残すその積の最初の倍数を求めます。 この場合には、35の残りの葉2で割ったとき3、しかし35*2 = 70、葉の残りの部分1で割ったときの3ように、70に対応する係数です3。同様3*7 = 21の残りの葉1で割ったとき5と3*5 = 15の残りの葉1で割ったときに7。 一言で言えば a一連の数値の各数値について: 他のすべての数値の積を求めますP。 で割ったときにP余りが残る最初の倍数を見つけます。これはの係数です。1aa チャレンジ 課題は、2つ以上のベースのセットの場合、対応する係数のセットを見つけることです。 塩基のセットはペアワイズ素数であることが保証されており、各塩基は1よりも大きいことが保証されています。 入力は、入力[3,4,5]またはスペースで区切られた文字列としての整数のリストですが、入力は"3 4 5"機能します。 出力は、整数のリストか、係数のセットを示すスペースで区切られた文字列のいずれかである必要があります。 テストケース input output …
10 code-golf  math 

2
数が代数であることを証明する
この答えに触発されて(私の強調): ゲームをします。いくつかの数xがあるとします。xから始めて、ゼロ以外の任意の整数で加算、減算、乗算、または除算できます。xを掛けることもできます。これらのことは何度でも行うことができます。合計がゼロになると、勝ちます。 たとえば、xが2/3 であるとします。3を乗算してから2を減算します。結果はゼロです。あなたが勝ちます! 仮定xは 7 ^(1/3)です。乗算により、X、それまでのx再び、その後、あなたは勝つ7を引きます! 仮定xは √2+√3です。ここで勝つ方法を見ることは簡単ではありません。しかし、xを掛けて10を引き、xを 2倍して1を加えると、勝つことがわかります。(これは自明ではありません。電卓で試すことができます。) しかし、x =πで始めると、勝つことができません。加算、減算、乗算、整数による除算、またはπによる乗算では、いくつのステップを実行しても、πから0に到達する方法はありません。(これも明白であるとは限りません。非常に注意が必要です!) あなたが勝つことができる√2+√3のような数は代数と呼ばれます。あなたが勝つことができないπのような数は超越と呼ばれます。 なぜこれが面白いのですか?各代数は整数に算術的に関連付けられており、ゲームでの勝利の動きはその方法を示しています。ゼロへの道は長くて複雑かもしれませんが、各ステップは単純であり、道があります。しかし、超越数は根本的に異なります。それらは、簡単な手順で整数に算術的に関連しているわけではありません。 基本的に、上記の質問で使用した手順を使用して、特定の入力でゲームを「勝ち」ます。 実数の代数定数が与えられたx場合、以下の許可された演算を使用して数値をゼロに変換します。 整数を加算または減算します。 ゼロ以外の整数で乗算または除算します。 元の定数を掛けxます。 入力は、整数、加算、減算、乗算、除算、指数(**またはの選択^、指数は根を表すために使用されます)、および括弧を含む可能性のある文字列です。入力のスペースはオプションですが、出力にはありません。ゼロの結果を得るのに必要なステップを出力する必要があります。そのため7、1ステップとして乗算すると、として出力され*7ます。末尾にスペースや改行を入れることができます。 例 0 -> +0 (or any other valid, or empty) 5/7 + 42 -> -42 *7 -5 (or shorter: *7 -299) 2^(1/3) -> *x *x -2 5*(3**(1/4)) -> *x *x …
10 code-golf  math 

13
対角線のドット積
この課題は非常に簡単です。入力として正気な方法で表された正方行列が与えられ、行列の対角線のドット積を出力する必要があります。 具体的には、対角線とは、左上から右下へ、および右上から左下への対角線です。 テストケース [[-1, 1], [-2, 1]] -> -3 [[824, -65], [-814, -741]] -> 549614 [[-1, -8, 4], [4, 0, -5], [-3, 5, 2]] -> -10 [[0, -1, 0], [1, 0, 2], [1, 0, 1]] -> 1

16
Thue-Morseシーケンスの違いを出力する
注:「否定する」とは、すべて1をゼロに置き換えることを意味します(つまり、ビットごとの否定) Thue-Morseシーケンスは01101001のようになります。 生成方法は次のとおりです。 最初は0から始めます。残っているものを無効にし、最後に追加します。 だから、取る0。それを否定し、それを最後に追加します-01 次にそれを取り、それを否定して最後に追加します- 0110 等々。 これのもう1つの興味深い特性は、ゼロ間の距離が「不合理な」非反復文字列を作成することです。 そう: 0110100110010110 |__|_||__||_|__| 2 1 0 2 01 2 <------------Print this! nを入力すると、文字列の最初のn桁を出力するプログラムを作成できますか? これはコードゴルフなので、最短バイト数が勝ちます!

4
再配置の不等式
バックグラウンド 転位不平等は数字を並べ替えるに基づいて不平等です。同じ長さの数値の2つのリストがある場合、x 0、x 1、x 2 ... x n-1および同じ長さのy 0、y 1、y 2 ... y n-1で、ここでIリストの数値を並べ替えることができます。合計を最大化するには、x 0 y 0 + x 1 y 1 + x 2 y 2 + ... + x n-1 y n-1で2つのリストを並べ替えます減少しない順序。 読むWikipediaのこちらの記事を。 仕事 STDINから入力を受け取るプログラム、または数値(同じ長さ)の2つの配列(または関連するコンテナー)を受け入れる関数を作成します。 2つの配列(aとb)を受け入れる関数を作成すると仮定すると、最大化するために2番目の配列(b)の数値を再配置する方法の数がわかります。 a[0]*b[0]+a[1]*b[1]+a[2]*b[2]+...+a[n-1]*b[n-1] この場合には、配列b [1であれば0、2 1、2 2、3 3、3 4、(明確にするための指標) [1 0、2 1、2 2、3 3、3 …

8
四捨五入時に1を追加する必要がある前に、小数点以下はいくつありますか?
数値を丸めるときに、次の桁が>= 51である場合は、例を示します。 3.1415926535 rounded to 1dp is 3.1 3.1415926535 rounded to 4dp is 3.1416 <-- Note the 5 changed to 6 3.1415926535 rounded to 5dp is 3.14159 3.1415926535 rounded to 9dp is 3.141592654 <-- Note the 3 changed to 4 課題は、整数を入力として受け取り、小数点以下の桁数を出力することです。その前に、数値の平方根を丸める必要があり>= 5ます。つまり、発生する数字の前の小数点以下の桁数です。 整数は0と100,000の間になるため、59752のエッジケースでは、17の小数点をサポートする必要があります(17番目をチェックするため)。 プログラミング言語で小数点の数を変更できない場合は、「?」を表示できます。ユーザーへのメッセージ。 例: Input Root Output 5 -> …
10 code-golf  math 

11
「i」には「i」の可能性がある
すべての0 <i <14について、i番目の数がi%の確率で発生する乱数ジェネレーターを設計します。0は正確に9%の確率で発生します。ジェネレーターのシードはシステム時間である必要があります。事前定義された関数を乱数生成に使用することはできません。 基本的に、1は1%の確率で発生し、2は2%の確率で発生し、13までは13%の確率で発生します。これはコードゴルフなので、最短のコードが優先されます。

3
クノーデル数-Knを見つける
クノーデル数 クノーデル数は一連のシーケンスです。具体的には、正の整数のKnödel数は、と互いに素であるすべてがを満たすようなn合成数のセットです。特定のKnödel数のセットが示されます。(ウィキペディア)。mi < mmi^(m-n) = 1 (mod m)nKn たとえば、K1はカーマイケル番号、およびOEIS A002997です。彼らは次のようになります{561, 1105, 1729, 2465, 2821, 6601, ... }。K2はOEIS A050990で、のようになり{4, 6, 8, 10, 12, 14, 22, 24, 26, ... }ます。 あなたのタスク あなたの仕事は、プログラム/関数/その他を書くことです。それには2つの数値をとり、nそしてp。pKnödelシーケンスの最初の数を返す必要がありKnます。 これはcode-golfなので、バイト単位の最短コードが優先されます! 例 1, 6 -> [561, 1105, 1729, 2465, 2821, 6601] 2, 3 -> [4, 6, 8] 4, 9 -> …

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