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

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

14
終了、純粋に周期的、または最終的に周期的?
前書き 有限の小数桁がある場合、小数は終了します。たとえば、0.4(2/5)は10進数が1つあるため終了します。 小数は、無限の数の小数桁を持ち、繰り返しのある小数の部分の前に小数桁がない場合、純粋に周期的です。たとえば、0.142857142857142…(1/7)は、繰り返しがあるため純粋に周期的です。 142857、小数点の直後から繰り返し始めます。 小数は、無限の小数桁数を持ち、繰り返しのある小数部の前に有限数の小数桁がある場合、最終的には周期的です。たとえば、0.166666666666666…(1/6)は最終的に周期的です。繰り返し6は1の後に繰り返されます。 あなたのタスク 数値pとq(整数、0 <= p < q <= 100)が与えられたときに、p / qの 10進表現がが終了するか、純粋に周期的か、最終的に周期的かます。 あなたは出力しなければならないaことの終端であれば(すなわち0.1)を、bそれは純粋に定期だ場合(すなわち0.333 ...)、またはcそれは結局定期だ場合(すなわち0.166 ...)、どこa、bと、cお好みのいずれかの明確な、定数文字列です。 テストケース 0/1 => Terminating 0/2 => Terminating 1/2 => Terminating 0/3 => Terminating 1/3 => Purely Periodic 2/3 => Purely Periodic 0/4 => Terminating 1/4 => Terminating 2/4 => Terminating 3/4 …
21 code-golf  math  number 

22
継続的な分数を単純化する
継続分数は、分数を反復的に記述する式です。それらはグラフィカルに表すことができます: または、値のリストとして表すことができます。 [a0; a1, a2, a3, ... an] チャレンジ: 基数:と分母値のリストを取得し、連続分数を単純化された有理分数に単純化します。分子と分母を個別に返すか、印刷します。a0[a1, a2, a3, ... an] 例: √19 : [4;2,1,3,1,2]: 170/39 ℯ: [1;0,1,1,2,1,1]: 19/7 π: [3;7,15,1,292,1]: 104348/33215 ϕ: [1;1,1,1,1,1]: 13/8 実装例:(python) def foo(base, sequence): numerator = 1 denominator = sequence[-1] for d in sequence[-2::-1]: temp = denominator denominator = d * denominator …

23
除数の削減
数値nの除数は、1とn自体を含め、nを均等に分割する任意の数値です。約数d(n)は、数に含まれる約数です。最初のカップルn のd(n)は次のとおりです。 n divisors d(n) 1 1 1 2 1, 2 2 3 1, 3 2 4 1, 2, 4 3 5 1, 5 2 6 1, 2, 3, 6 4 数から除数の数を繰り返し減算できます。例えば: 16 = 16 16 - d(16) = 16 - 5 = 11 11 - d(11) = 11 - …

1
整数を分離する
前書き トポロジーとして知られる数学の分野では、分離公理と呼ばれるものがあります。直感的に、のセットXとサブセットのコレクションがありX、これらをプロパティと考えることができます。Xプロパティに基づいてすべてのアイテムを区別できる場合、システムは十分に分離されています。分離公理はこの考えを形式化します。この課題でのタスクは、指定された3つの分離公理Xとプロパティのリストを確認することです。 入力 入力は整数n ≥ 2であり、整数のリストのリストTです。の整数はTから描画されX = [0, 1, ..., n-1]ます。のリストはT空でソートされていない場合がありますが、重複は含まれません。 出力 出力は4つの文字列の1つであり、3つの分離公理によって決定され、それぞれが最後のものよりも強力です。他の公理もありますが、簡単にするためにこれらを使用します。 すべてのdistinct xおよびyinについてX、Tそのうちの1つだけを含むリストが存在するとします。次にX、公理T0をT満たします。 すべての明確なためと仮定xし、yでX、そこに二つのリストが存在してT含まれているの一つ、xではなくy、その他に含まれていyますがありませんx。次にX、公理T1をT満たします。 上記の2つのリストにも共通の要素が含まれていないとします。次にX、公理T2をT満たします。 あなたの出力は次のいずれかであるT2、T1、T0またはTS、(保持している上記の条件のどれに応じて、TSそれらの手段のどれも行いません)。T2はT1よりも強く、T1はT0よりも強いことに注意してください。常に可能な限り強い公理を出力する必要があります。 ルールとスコアリング 完全なプログラムまたは関数を作成できます。最小のバイトカウントが優先され、標準の抜け穴は許可されません。 テストケース 2 [] -> TS 2 [[],[1]] -> T0 2 [[0],[1]] -> T2 3 [[0],[0,1,2],[1,2]] -> TS 3 [[],[0],[0,1],[2]] -> T0 3 [[0],[0,1],[2,1],[0,1,2]] -> T0 3 [[0],[0,1],[2,1],[2,0]] -> T1 6 …

2
多項式のシンボリック統合
与えられた文字列に不定積分を適用します。使用するルールは、次のように定義されます。 ∫cx^(n)dx =(c /(n + 1))x ^(n + 1)+ C、n≠-1 c、C、およびnはすべて定数です。 仕様: 多項式を可能な機能のいずれかと統合できる必要があります。 係数、場合によっては形式の分数(numerator/denominator)。 eおよびπが定数であり、それらを使用すると、分数またはそれらを含む式を形成できることを認識します((e/denominator)または(numerator/e)などの分数、または指数の場合はx^(e+1)) これら2つの特別な定数は別として、すべての係数は合理的な実数になります。 形式の指数、場合によっては分数 x^(exponent) それらを含むeまたはπその中の式は、それ自体は別として、指数ではありません。(のようなものを統合する必要はありませんが、統合x^(e+1)するかもしれませんx^(e)) x以外の1文字の変数を使用できます(つまりf) これは、ASCII範囲65〜90および97〜122のみです。 チェーンルールを使用したり、統合したりする必要はありませんx^(-1)。 出力にはパディング(用語間の分離、つまりx^2 + x + C。 上記の機能と統合する方法が不明な場合、プログラムは出力する必要があります"Cannot integrate "+input。 完全なプログラムでなければなりません。 ボーナス: マークダウン用にフォーマットされた「きれいな」指数を印刷する場合は、-10%(代わりにx^2、x<sup>2</sup>)。 方程式を印刷する場合は-10%(つまり∫xdx = (1/2)x^2 + C) 例: 入力: x 出力: (1/2)x^(2) + C 入力: -f^(-2) 出力: f^(-1) + …

17
ダイヤモンドパズル!
説明: 昨年の数学の授業では、宿題について、これらの非常にシンプルなものを時々取得しましたが、ダイヤモンドパズルと呼ばれる同様に迷惑な質問がありました。これらは基本的に私たちが合計を与える質問であり、製品は乗算されたときに製品を与え、加算されたときに合計を与える2つの数を見つけるように求められました。私はそれらを解決する方法を知っていた唯一の方法(代数I)で、製品の要因をリストし、合計するために追加された要因を確認するだけだったので、これらは夢中になりました。(当時Quadraticsを使用する方法を知らなかったので)言うまでもなく、彼らは数学に挑戦していませんでした。しかし、ちょうどプログラムを書いたほうがいいと思いました。それが今日のあなたの挑戦です!ダイヤモンドパズルを解決できるプログラムを作成します。 例 ぼやけた画像についての謝罪、私が見つけることができる最高の。また、泡の中の数字は無視してください。菱形の上部は製品、下部は合計、左右は2つの数字です。回答は次のとおりです(これらはテストケースでもあります)。 9、-7 -2、-1 5、8 -9、-9 ルール: これを実現する定義済みの関数またはクラスを使用することはできません。 あなたのコードは完全なプログラム、または答えが見つかったら返されるか出力する関数でなければなりません 入力は合計と積であり、関数パラメーターまたはユーザー入力として入力されます 仕様: 2つの数値、合計、および積は常に整数であると仮定します。 2つの答えは両方とも-127から127の間です。 入力は2つの整数(合計と製品)になります。 これはコードゴルフであるため、最短バイトカウントが優先されます。標準の##言語名、バイト数で回答にタイトルを付けてください 編集:また、ドアノブはこれが本質的に「x ^ 2 + bx + cの形の2次を因数分解する」ことを指摘しました。これは、この課題について考え、アプローチする別の方法です。:D
21 code-golf  math 

9
数字の合計1〜7
チャレンジ N28以上の正の整数が指定された場合、N各桁1を71回だけ使用して合計する数値のリストを出力します。プログラムまたは関数として与えることができます。 数字を繰り返し使用せずに1回使用する限り、数字は単独で表示することも連結することもできます。たとえば、[12, 34, 56, 7]isは有効で、is [1, 27, 6, 4, 35]およびですが、orではあり[1234, 567]ません。番号がリストされている順序は重要ではありません。[123, 34567][3, 2, 1476] N1〜7で作成できない場合は、何も返さないか出力します。 その他の情報 これはコードゴルフなので、10月15日木曜日までのバイト単位の最短コードが勝ちです。 コメントで質問をしてください。 チャレンジで指定していないことはすべてあなた次第です。 標準の抜け穴は許可されていません。 例 これらにより、混乱が解消される場合があります。 入力 28 出力 [1, 2, 3, 4, 5, 6, 7] 入力 100 出力 [56, 7, 4, 31, 2] 入力 1234567 出力 [1234567] 入力 29 出力 何も、29は無効です。 入力 …
21 code-golf  math  number 

3
特定のサイズのグループをカウントする
グループ 抽象代数では、グループはタプル(G,∗)(G,∗)(G,\ast)であり、ここでGGGは集合であり、∗∗\astは次のような関数G×G→GG×G→GG\times G\rightarrow Gです。 すべてのためのx,y,zx,y,zx, y, zにおけるGGG、(x∗y)∗z=x∗(y∗z)(x∗y)∗z=x∗(y∗z)(x\ast y)\ast z=x\ast(y\ast z)。 要素が存在するにおけるGような、そのすべてのためのxにおけるG、X * E = X。eeeGGGxxxGGGx∗e=xx∗e=xx\ast e=x 毎におけるG、要素が存在するYにおけるGように、X * Y = eは。xxxGGGyyyGGGx∗y=ex∗y=ex\ast y=e グループの順序は、Gの要素の数として定義されます。(G 、∗ )(G、∗)(G,\ast)GGG 厳密に正の整数ごとに、次数nのグループが少なくとも1つ存在します。例えば、(C N、+ Nは)そのような基であり、C N = { 0 、。。。、n − 1 }およびx + n y = (x + y )nnnnnn(Cn、+n)(Cn、+n)(C_n,+_n)Cn= { 0 、。。。、n − 1 }Cn={0、。。。、n−1}C_n=\{0,...,n-1\}。x …

8
クレイジーライブラリアンのすばらしい仕分けシステム
学校シーズンに戻りました!アルバイトの場合、学校の図書館で手伝っています。問題は、主任司書が「デューイ十進法」という言葉さえ聞いたことがないことであり、そのシステムを実装したことは言うまでもない。代わりに、ライブラリが拡大するにつれて、使用中の分類システムが「有機的に」成長しました... あなたの正気を保つために、あなたは本が返されるときに本を分類するのを助けるプログラムを書くことを選んだ。(ヘッドライブラリアンは非常に厳格です。) 入出力 入力は、STDIN /同等の言語からの(架空の)書籍タイトルのリストで、1行に1つずつです。 一度に入力できるのは100冊までです(一度に多くの本を図書館に持ち込むことができます)。 書籍のタイトルには複数の単語を含めることができ、これらの単語はスペースまたはその他の句読点(コロン:、ダッシュ-など)で区切ることができます。 計算を簡単にするために、すべてのタイトルがUTF-8であると想定します。 出力は同じタイトルで、以下のルールに従ってソートされ、再び1行に1つずつ、STDOUT /言語に相当します。 ソート規則 書籍は、平均文字値(つまり、累積文字値を書籍タイトルの文字数で割った値)に基づいて数値順にソートされ、次の規則に従ってカウントされます。 すべての文字は、タイトルの文字数を決定するためにカウントされます。 小文字は、アルファベットの位置によってカウントされます。(a = 1、b = 2、... z = 26) タイトルに大文字が含まれる場合、それらは小文字の値(A = 1.5、B = 3、... Z = 39)の1.5としてカウントされます。(「大文字が重要です!」司書は言います。) このリストの各句読点/記号は、!@#$%^&*()-=_+[]\{}|;':",./<>?~平均する前に累積値から-1をカウントします。(「壮大なタイトルは違います!」) タイトルにアラビア数字で書かれた数字が含まれている場合、ソートする前にその数字が平均値から差し引かれます。複数の連続した数字は1つの数字として扱われます(たとえば、424を減算してから2を減算するのではなく、42を減算します)。個々の数字は累積値にはカウントされません(つまり、各数字は0に寄与します)が、DOは文字数にカウントされます。これは負の値になる可能性があるため、適切に処理する必要があることに注意してください。(噂によると、司書は数年前から数学のインストラクターに夢中になっている。) タイトルにで始まる2つの単語が含まれているR場合、本は「無限」のスコアを取得し、コーナーの山に捨てられます(つまり、リストの最後にランダムに配置されます)。(司書は、それらのイニシャルを持つ人によってかつて投げ捨てられた、またはあなたは聞いたことがあります。) スペースは、累積文字値にはカウントされません(つまり、0は寄与します)が、タイトルの文字数には寄与します。 上記のルールに適合しない文字(例:a ÿ)は、累積文字値にはカウントされません(つまり、0に寄与します)が、タイトルの文字数には寄与します。 たとえば、架空の本ÿÿÿÿÿにはの「スコア」が(0+0+0+0+0) / 5 = 0ありますが、架空の本ÿÿyÿÿにはの「スコア」があり(0+0+25+0+0) / 5 = 5ます。 偶然同じ「スコア」の2冊の本を、選択した順序で出力できます。(とにかく同じ棚にあります) 入力例1 War and Peace Reading …

13
あらゆる可能なサイクル長
入力を受け取り、出力を提供する関数(またはプログラム)は、独自の出力で関数を繰り返し呼び出して最終的に元の数に達した場合、サイクルを持っていると言えます。たとえば、次の関数を使用します。 Input: n 1 2 3 4 5 6 Output: f(n) 5 7 1 3 4 9 我々が開始するとn=1、f(n)=5、f(f(n))=f(5)=4、f(f(f(n)))=f(4)=3、f(f(f(f(n))))=f(3)=1。 これは書かれてい(1 5 4 3)ます。このループには4つの一意の番号があるため、これは長さ4のサイクルです。 あなたの課題は、あらゆる長さのサイクルを持つプログラムまたは関数を書くことです。つまり、長さ1、長さ2などのサイクルが必要です。 さらに、関数/プログラムは正の整数から正の整数である必要があります。また、すべての正の整数にわたって、可能な出力値ごとに1つの入力値が存在する必要があることを意味するbijectiveでなければなりません。別の言い方をすれば、関数/プログラムは正の整数の順列を計算する必要があります。 詳細:STDIN、STDOUT、関数の引数、戻り値など、標準の入出力システムはすべて許可されます。標準の抜け穴は禁止されています。 データ型の制限について心配する必要はありません-上記のプロパティは、たとえば、任意の値を保持できる、intまたはfloat任意の値を保持できるという仮定の下でのみ保持する必要があります。 正の整数ではない入力に対する関数の動作に制限はなく、これらの入力/出力は無視されます。 得点はバイト単位のコードゴルフで、最短のコードが勝ちです。

9
Collat​​z Cousinsの計算
次のように、正の整数nに対して関数f(n)を定義します。 n / 2、nが偶数の場合 3 * n + 1、nが奇数の場合 この関数を0より大きいnに繰り返し適用すると、結果は常に1に収束するように見えます(まだ誰も証明できていませんが)。このプロパティはCollat​​z予想と呼ばれます。 整数の停止時間を、1に達するまでCollat​​z関数fを通過する必要がある回数として定義します。最初の15個の整数の停止時間は次のとおりです。 1 0 2 1 3 7 4 2 5 5 6 8 7 16 8 3 9 19 10 6 11 14 12 9 13 9 14 17 15 17 Collat​​z cousinsと同じ停止時間で数字のセットを呼び出しましょう。たとえば、5と32はCollat​​zのいとこであり、停止時間は5です。 あなたのタスク:非負の整数を取り、その整数に等しい停止時間を持つCollat​​zのいとこのセットを生成するプログラムまたは関数を作成します。 入力 STDIN、ARGV、または関数引数を介して指定された非負の整数S。 出力 停止時間がSであるすべての数値のリスト。昇順でソートされています。リストはプログラムによって出力されるか、関数によって返されるか出力される場合があります。出力形式は柔軟性があります。スペース区切り、改行区切り、または言語の標準リスト形式は、数字が簡単に区別できる限りは問題ありません。 必要条件 提出は、S≤30に対して正しい結果を提供する必要があります。数時間または数日ではなく、数秒または数分で完了する必要があります。 …

6
中国の剰余定理
中国剰余定理は、我々は常に異なるプライムモジュラスの下に必要な残りを生産数を見つけることができることを教えてくれる。あなたの目標は、そのような数を多項式時間で出力するコードを書くことです。最短のコードが優先されます。 たとえば、これらの制約が与えられているとしましょう(%modを表します): n % 7 == 2 n % 5 == 4 n % 11 == 0 1つのソリューションはn=44です。最初の制約が満たされているのは44 = 6*7 + 2、で44割った2ときに余りがある7ため44 % 7 == 2です。他の2つの制約も満たされます。など、他のソリューションが存在するn=814とn=-341。 入力 空でないペアのリスト(p_i,a_i)。各モジュラスp_iは異なる素数で、各ターゲットa_iは範囲内の自然数です0 <= a_i < p_i。便利な形式で入力できます。実際にペアのリストである必要はありません。入力がソートされているとは限りません。 出力 整数nようにn % p_i == a_i各インデックスのi。このような最小の値である必要はなく、負の値でもかまいません。 多項式時間制限 ちょうどしようと安価なソリューションを防ぐためにn=0、n=1、n=2、というように、あなたのコードは、多項式時間で実行する必要があります入力の長さ。m入力の数値にはlength Θ(log m)があるため、それm自体の長さは多項式ではないことに注意してください。つまりm、操作m時間までカウントしたり操作したりすることはできませんが、値の算術演算を計算することはできます。 これを回避するために単項式のような非効率的な入力形式を使用することはできません。 その他の禁止 次を実行するためのビルトインは許可されていません。中国剰余定理の実装、方程式の解、または因子数。 組み込みを使用してmodを見つけ、モジュラー加算、減算、乗算、および指数(自然数指数を使用)を実行できます。モジュラー逆行列、除算、順序検索など、他の組み込みのモジュラー操作を使用することはできません。 テストケース これらは、最小の非負のソリューションを提供します。あなたの答えは異なる場合があります。出力が各制約を満たしていることを直接確認する方が良いでしょう。 [(5, 3)] …

2
素多項式
多項式が与えられたら、それが素数かどうかを判断します。 多項式はax^n + bx^(n-1) + ... + dx^3 + ex^2 + fx + g、各項が定数(係数)にの非負の整数乗を掛けたものですx。ゼロ以外の係数を持つ最高のパワーは、次数と呼ばれます。この課題では、少なくとも次数1の多項式のみを考慮します。つまり、各多項式にはが含まれますx。また、整数係数を持つ多項式のみを使用します。 多項式は乗算できます。たとえば、(x+3)(2x^2-2x+3)等しい2x^3+4x^2-3x+9。したがって、2x^3+4x^2-3x+9に因数分解することができるx+3と2x^2-2x+3、それは複合体であるので、。 他の多項式は因数分解できません。たとえば、2x^2-2x+3は2つの多項式の積ではありません(定数多項式または非整数係数を持つ多項式は無視されます)。したがって、それは素数(既約とも呼ばれます)です。 ルール 入力と出力は、標準的な方法で行うことができます。 入力は、などの文字列、など2x^2-2x+3の係数のリスト{2,-2,3}、または同様の手段です。 出力は、素数の場合は真偽値、合成の場合は偽値です。すべての素数に同じ真理値を、すべての合成多項式に同じ偽値を生成する必要があります。 入力は少なくとも1次で最大10次です。 (整数または式の)因数分解または方程式の解法に組み込みツールを使用することはできません。 例 真-プライム x+3 -2x x^2+x+1 x^3-3x-1 -2x^6-3x^4+2 3x^9-8x^8-3x^7+2x^3-10 False-複合 x^2 x^2+2x+1 x^4+2x^3+3x^2+2x+1 -3x^7+5x^6-2x x^9-8x^8+7x^7+19x^6-10x^5-35x^4-14x^3+36x^2+16x-12
21 code-golf  math  primes 

13
ユニークな素数の組み合わせ製品
問題の声明 一意の連続する素数(必ずしも2を含まない)のセットが与えられた場合、これらの素数の最初のべきのすべての組み合わせ(たとえば、繰り返しなし)と1の積を生成します。たとえば、{ 7}、{1、2、3、5、6、7、10、14、15、21、30、35、42、70、105、210}を生成します: 1 = 1 2 = 2 3 = 3 5 = 5 6 = 2 x 3 7 = 7 10 = 2 x 5 14 = 2 x 7 15 = 3 x 5 21 = 3 x 7 30 = 2 x 3 x 5 …

5
彼女は吹く!
Arrr ...アホイあそこ、私仲間!メインセールを展開!右boardいっぱい!ああ、あなたの髪に風を感じてください! そう、私は心のこもった...ちょっとしたスキルが必要なんだ!私の乗組員は自分よりも現代的です... 私の乗組員は常に先頭に立っていますが、コンパスのポイントを優先しています(詳細はこちらを参照してください、Arrr ...)。 。私は、彼らが私が理解できるものにヘッディンを呼んでいる、このたたきを変換する簡単な方法です。 私が必要としているのは、コードを入力することです(0 <= the headin' < 36010進数でも大丈夫です)tha ' を入力し、最も近いコンパスポイントとしての答えを吐き出します!あら! 以下に例を示します。 > heading 0.1 North > heading 11.25 North by East > heading 22.7 North Northeast > heading 44.99 Northeast > heading 91 East さて、もしあなたが 'ヘッディン'であるなら、それがまさに2つのコンパスポイントの真ん中に収まるようなものであるなら、 'あなたがたはフレットである'、私は心から...私はコードを吐き出すことを期待していますBetween <point 1> and <point 2>例えばはheading 5.625言うだろうBetween North and North …
21 code-golf  math 

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