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

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

11
piの適切な合理的近似
分母の順序が小さい順に、分母<1000000のpiのすべての適切な合理的近似を出力するプログラムを作成します。 a/bは、分母がを超えない他の有理数よりもpiに近い場合、piの「適切な有理数近似」ですb。 出力には合計167行が含まれ、開始と終了は次のようになります。 3/1 13/4 16/5 19/6 22/7 179/57 ... 833719/265381 1146408/364913 3126535/995207 最短のプログラムが勝ちます。

28
nの最後のゼロ以外の数字!
入力として1≤N≤1,000,000の整数を指定すると、N!の最後のゼロ以外の数字が出力されます。、どこ!階乗(1からNまでのすべての数値の積)です。これは、OEISシーケンスA008904です。 プログラムは、有効な入力のために妥当なマシンで10秒以内に終了する必要があります。 テストケース 1 => 1 2 => 2 3 => 6 4 => 4 5 => 2 6 => 2 7 => 4 8 => 2 9 => 8 10 => 8 100 => 4 1000 => 2 10000 => 8 100000 => 6 1000000 => 4 これはコードゴルフなので、バイト単位の最短コードが勝ちです!

2
実存ゴルフ
数学には多くの記号があります。シンボルが多すぎると言う人もいるかもしれません。それでは、写真でいくつかの数学をしましょう。 紙を用意しましょう。これを参考にします。紙が空の状態で開始するには、それがまたはtrueと同等であると言います。⊤⊤\top本当true\textit{true} 紙に他のことを書くと、それも真実です。 例えば クレームおよびQが真であることを示します。PPPQQQ ここで、ステートメントの周りに円を描くと、そのステートメントは偽であると言えます。これは論理的な否定を表します。 例えば: が偽で、Qが真であることを示します。PPPQQQ 複数のサブステートメントの周りに円を配置することもできます。 円の内側の部分は円を囲むことで通常として読むので、それは意味しません (P と Q )。サークルをネストすることもできますP と QP and QP\text{ and }Qない (P および Q )not (P and Q)\text{not }(P\text{ and }Q) not ((not P) および Q )not ((not P) and Q)\text{not }((\text{not }P)\text{ and }Q) ⊥⊥\bot偽false\textit{false} 空のスペースが真であったため、真の否定は偽です。 この単純な視覚的方法を使用して、命題論理のステートメントを実際に表現できます。 証明 ステートメントを表現できるようになった後の次のステップは、ステートメントを証明できるようにすることです。証明には、グラフの変換に使用できる4つの異なるルールがあります。私たちは常に空のシートから始めます。これは私たちが知っているように空虚な真実であり、次にこれらの異なるルールを使用して空のシートを定理に変換します。 最初の推論ルールはInsertionです。 …
22 math  logic  proof-golf 

30
私のボディマス指数は何ですか?
問題: あなたの仕事は、入力として身長(メートル単位)と体重(キログラム単位)を取り、対応するBMIカテゴリを出力するプログラムを書くことです。 BMIは、身長に対する体重の比率の尺度です。それは多くの人々にとって古く不正確です、しかしそれはここでは重要ではありません! BMIは、次の式を使用して計算できます。 BMI = (mass in kilograms) / (height in meters)^2 カテゴリは次のように定義されます。 BMI <18.5:「体重不足」 18.5 <= BMI <25:「通常」 25 <= BMI:「太りすぎ」 挑戦のために、私はすべての「極端な」カテゴリーを無視しています。また、「25」のようないくつかの数値は2つのカテゴリの間にあるため、明確な答えが得られるように境界をわずかに調整しました。 関数または完全なプログラムのいずれかを作成できます。 入力: 入力は、任意の合理的な形式にすることができます。2つの独立した引数または単一の文字列としての2つの数値(または文字列)。2つの数字の配列/リスト、「weight」および「height」キーのある辞書... 10進数の値がサポートされる必要があります。入力は常に有効であると仮定できます(負の値はなく、高さは決して0になりません)。 出力: 出力は、大文字と小文字を区別しないカテゴリ名を含む文字列です。文字列は大文字と小文字を無視して、上記とまったく同じカテゴリ名に一致する必要があります。これは、stdoutへの出力、返される(関数の場合)、またはファイルへの書き込みが可能です。 テストケース(重量、高さ=>結果): 80, 1 => "Overweight" 80, 2 => "Normal" 80, 3 => "Underweight" 50, 1 => "Overweight" 50, 1.5 => …
21 code-golf  math 

30
2つの数字を掛ける
入力: 2つの10進整数。これらは、標準入力のコードに、プログラムまたは関数の引数として、またはリストとして与えることができます。 出力: 10進整数としての積。たとえば、入力5 16は出力につながります80。 制限:標準的な抜け穴はありません。これはcode-golfであり、最小バイト数で答えが勝ちます。 注:以前の課題である2つの数字を追加して盗まれたレイアウト。 テストケース: 1 2 -> 2 4 5 -> 20 7 9 -> 63 -2 8 -> -16 8 -9 -> -72 -8 -9 -> 72 0 8 -> 0 0 -8 -> 0 8 0 -> 0 -8 0 -> 0 0 0 …
21 code-golf  math  number 

12
拡張フィボナッチ数のインデックス付け
あなたはおそらくフィボナッチ数を聞いたことがあるでしょう。や、知っている、その整数シーケンスはで始まり1, 1、新しい番号はそれぞれ最後の2つの合計ですか? 1 1 2 3 5 8 13... 等々。フィボナッチ数に関する課題は、ここでかなり人気があります。しかし、誰がフィボナッチ数列を始めなければならないと言うの1, 1でしょうか?なぜ始められなかったの0, 1ですか?それでは、0から開始するように再定義しましょう。 0 1 1 2 3 5 8 13... しかし...私たちもそこでやめる必要はありません!最後の2つの数値を追加して次の数値を取得できる場合、2番目の数値から最初の数値を減算して新しい数値を追加することもできます。したがって、次のように開始でき1, 0ます。 1 0 1 1 2 3 5 8 13... ネガティブになることさえあります: -1 1 0 1 1 2 3 5 8 13... そして、このシリーズも永遠に続きます。他のすべての数字が負になっているだけで、通常のフィボナッチ数列をミラーリングするのは面白いと思います: 13 -8 5 -3 2 -1 1 …

14
プライム封じ込め番号(ゴルフ版)
これはシーケンスA054261です。 素数封じ込め番号番目は、第含ま最小数であるのサブストリングとして素数を。たとえば、番号は、サブストリングとして最初の3つの素数を含む最小の番号であり、3番目の素数格納番号になります。nnnnnn235235235 最初の4つの素数封じ込め番号があることを把握することは簡単です、、および、しかし、それはより面白いです。次の素数は11であるため、次の素数の包含番号はではありませんが、プロパティで最小の数として定義されているため、です。222232323235235235235723572357235711235711235711112357112357112357 ただし、11を超えると実際の課題が発生します。次の素数の包含番号はです。この数値では、部分文字列と が重複していることに注意してください。番号も番号と重複しています。1132571132571132571113313 次の番号は、その前にある番号のすべての基準を満たし、さらに1つのサブストリングを持つ必要があるため、このシーケンスが増加していることを証明するのは簡単です。ただし、n=10との結果が示すように、シーケンスは厳密には増加していませんn=11。 入力 単一の整数n>0(0インデックスを付けてからを作成することもできますn>=0) 出力 どちらのn目プライム封じ込め番号、または最初に含まれているリストnプライム封じ込め番号を。 私がこれまでに見つけた数字は次のとおりです。 1 => 2 2 => 23 3 => 235 4 => 2357 5 => 112357 6 => 113257 7 => 1131725 8 => 113171925 9 => 1131719235 10 => 113171923295 11 => 113171923295 12 => 1131719237295 はすべての数字を含む最小の数字であるが、も含むため、n = 10とn …

2
数の連続分数を2倍にする
与えられたタスクはxoutput 2*xです。簡単ですよね!?しかし、キャッチxがあります:(おそらく無限の)継続分数として与えられ、出力は継続分数でなければなりません。入力は、次数が最大2の実代数になることが保証されています。 入力:x。これは、整数部分、プレフィックス、および繰り返し部分の3つの部分に分割されます。整数部分は単一の整数で構成されます。プレフィックスと繰り返し部分は、連続した分数のプレフィックスと繰り返し部分を記述する正の整数の配列(空の場合もあります)です。たとえば、入力(3, [1], [2, 4])は連続分数を表し[3; 1, 2, 4, 2, 4, ...]ます。 繰り返し部分が空の場合、それは有理数を示します。たとえば、を(3, [1, 2], [])表し[3; 1, 2] = 11/3ます。両方の形式の有理数を受け入れる必要があります(つまり(3, [1, 1, 1], [])、これ[3; 1, 1, 1] = 11/3も有効な入力である必要があります)。 出力:入力と同じ形式で、入力の2倍の連続した部分を出力します。出力が合理的であれば、どちらの形式の連続分数も出力できます。答えが正解と同等である限り、それは問題ありません。「圧縮」は必要ないので、無限部分は少し「展開」される可能性が[1; 4, 2, 3, 2, 3...]あります(たとえば、書かれ(1, [4], [2, 3])たり(1, [4, 2, 3], [2, 3]))。すべての答えは正確でなければなりません。 テストケース:正確な形式の列は、便宜上提供されています。 Input Exact Form Output (0, [] …

26
デジタルサモリアル
入力が与えられた場合、すべてのベース1からのnデジタル和の合計を出力/返すプログラムまたは関数を記述nしnます。 n+∑b=2n∑i=0∞⌊nbi⌋modbn+∑b=2n∑i=0∞⌊nbi⌋modbn + \sum_{b=2}^n \sum_{i=0}^\infty \left\lfloor \frac{n}{b^i} \right\rfloor \bmod b 例: n = 5 範囲を作成します[1...n]。[1,2,3,4,5] 各要素xに対して、次の基本x桁の配列を取得しますn。 [[1,1,1,1,1],[1,0,1],[1,2],[1,1],[1,0]] 全単射な塩基1の5 IS[1,1,1,1,1] のベース2(バイナリ)5 は[1,0,1] な塩基3の5 IS[1,2] な塩基4の5 IS[1,1] な塩基5の5 IS[1,0] 数字を合計します。 13 テストケース: 1 1 2 3 3 6 4 8 5 13 6 16 7 23 8 25 9 30 10 35 …

2
整数線形計画法
前書き 整数線形計画法のソルバーを記述します。 チャレンジ あなたの仕事は整数線形計画法(ILP)のソルバーを書くことです。ILPでは、一連の未知数(すべて整数)の線形不等式が与えられ、目標は線形関数の最小または最大を見つけることです。 たとえば、不等式の場合(混合整数線形計画法からの例) 4x+2y-15≤0 x+2y- 8≤0 x+ y- 5≤0 - x ≤0 - y ≤0 目的関数3x+2y、目的関数の最大値は12(x=2,y=3)で、最小値は0(x=y=0)でなければなりません。 入力は2D配列(または標準仕様に準拠する任意の同等物)として与えられ、各行は最終行を除く1つの不等式に対応します。配列内の数字は係数であり、その≤0部分は常に省略されます。n各行に要素がある場合、n-1未知の要素があることを意味します。 配列の最後の行は、線形関数に対応しています。係数がリストされます。 たとえば、上記の問題の入力配列は次のとおりです。 [[4,2,-15],[1,2,-8],[1,1,-5],[-1,0,0],[0,-1,0],[3,2,0]]. 出力は、適切な形式で指定された最小値と最大値である必要があります。 次の問題の場合(上記の問題から2つの制限が取り除かれます): [[4,2,-15],[1,2,-8],[1,1,-5],[3,2,0]]. 最大値はまだ12ですが、最小値は存在せず、目的関数は任意の大きな(絶対値の意味で)負の値を持つことができます。この場合、プログラムは12、回答者が決定した偽の値に従ってを出力する必要があります。別のケースは、解決策がまったくないことです。たとえば、 [[4,2,-15],[-1,-2,7],[-1,0,3],[0,1,0],[3,2,0]]. この場合、偽の値も出力する必要があります。目的関数の「最適値」が無限である場合と、解がまったくない場合を識別するのは良いことですが、これは必要ではありません。 入力には、不等式と目的関数の両方の整数係数のみが含まれます。未知数もすべて整数です。不等式の係数行列は、完全なランクを持つことが保証されています。 テストケース @KirillLの功績。元のテストスイートでバグを見つけ、ILPの問題についての理解を深めてくれました。 Input Output [[4,2,-15],[1,2,-8],[1,1,-5],[-1,0,0],[0,-1,0],[3,2,1]] [1,13] [[4,2,-15],[1,2,-8],[1,1,-5],[3,2,0]] [-inf, 12] [[4,2,-15],[-1,-2,7],[-1,0,3],[0,1,0],[3,2,0]] [NaN, NaN] [[-1,-1,-1,-1,-1,8],[1,1,1,1,0,0],[5,5,5,5,6,7]] [55, inf] [[-1,-1,-1,-1,-1,8],[1,1,1,1,0,0],[0,0,0,0,0,4]] [4, 4] [[4,2,-15],[-1,-2,7],[-1,0,3],[0,1,0],[0,0,4]] [NaN, NaN] …

20
私は自分の本をこのテーブルから遠ざけたい
ストーリー だから私は、他の本だけで私のテーブルから分離したい本を持っています。これを本の長さで達成するために必要な本の数を知りたい。nnn 以下は、Wolframの友人が描いた視覚化です。 WolframおよびWikipediaのトピックに関する詳細情報。 チャレンジ 整数の入力与えられると、最上部の本がテーブルから水平方向にn本の長さだけ離れるのに必要な本の数を出力します。または次の不等式で入力n のmの最小整数値を見つけます。 m ∑ i = 1 1nnnnnn mmmnnn∑i=1m12i≥n∑i=1m12i≥n\sum_{i=1}^{m}\frac{1}{2i} \geq n 編集:分数の場合、少なくともIEEE単精度浮動小数点を使用します。投稿後にチャレンジを編集して申し訳ありません (OEIS A014537) テストケース 1 4 2 31 3 227 5 12367 10 272400600

16
再帰的コラッツ予想
このCollat​​z推測あなたは任意の正の整数を取る場合は、以下のアルゴリズム十分な回数繰り返すこと公準: if number is odd, then multiply by three and add one if number is even, then divide by two 最終的には1になります。常に機能するように見えますが、常に機能することは証明されていません。 あなたはすでに1に達するのにかかる時間を計算しているので、私は少し物事を切り替えると思いました。 指定された正の整数から始めて、1(「停止時間」)に達するまでにかかる時間を計算します。次に、その番号の停止時間を見つけます。 1に達するまで、または100回の反復という完全に任意の制限に達するまで繰り返します。前者の場合、それが何回繰り返したかを出力します。後者の場合、整数でない限り、「Fail」または選択した他の一貫した出力を出力します1≤n≤100。このオプションに空の文字列を出力することはできません。ただし、範囲[1、100]以外の整数の出力は許可されています。 例: Input: 2 2->1 Output: 1 Input: 5 5->5->5->5->5->... Output: Fail Input: 10 10->6->8->3->7->16->4->2->1 Output: 8 Input: 100 100->25->23->15->17->12->9->19->20->7->16->4->2->1 Output: 13 Input: 10^100 10^100->684->126->108->113->12->9->19->20->7->16->4->2->1 Output: 13 …

7
半指数関数
半指数関数は、それ自体となるとき、指数関数を与えるものです。たとえば、の場合f(f(x)) = 2^x、f半指数関数になります。この課題では、特定の半指数関数を計算します。 具体的には、次のプロパティを使用して、非負の整数から非負の整数への関数を計算します。 単調増加:if x < y、thenf(x) < f(y) 少なくとも半指数:すべてのx場合、f(f(x)) >= 2^x 辞書式に最小:上記の特性を有する全ての機能のうち、出力最小化するf(0)という選択肢最小に与えられ、f(1)後f(2)など。 入力に対するこの関数の初期値0, 1, 2, ...は次のとおりです。 [1, 2, 3, 4, 8, 9, 10, 11, 16, 32, 64, 128, 129, 130, 131, 132, 256, 257, ...] この関数は、関数または完全なプログラムとして、次のいずれかの方法で出力できます。 乗りx入力、出力としてf(x)。 テイクx出力まず、入力としてxの値f。 すべてを無限に出力しますf。 を取得xして出力する場合はf(x)、xインデックスをゼロにする必要があります。 リファレンス実装 これはコードゴルフです-バイト単位の最短コードが勝ちます。いつものように、標準的な抜け穴は禁止されています。

22
ISBN-13からISBN-10への変換
前書き この課題では、ISBN-13コードが存在する場合、ISBN-13コードを指定して書籍のISBN-10コードを生成することがタスクです。このようなISBN-13コードは、以下で区切られたいくつかの部分で構成されてい-ます。 978-GG-PPPP-TTT-C 文字G(グループ)、P(発行者)、T(タイトル)、およびC(チェックサム)はすべて1桁を表します。このチャレンジの目的では、グループ化と計算C(このチャレンジを参照)はおもしろくありません。このタスクを簡単にするために、すべてのハイフンを削除します。 ISBN-10番号のレイアウトは非常に似ています。 GG-PPPP-TTT-c 文字G、PおよびTは、13桁のISBNと同じcですが、異なります(異なるアルゴリズムを使用して計算されます)。数字cは、次の等価性が保持されるように選択されます(数字が順番に並んでいます)。 10*G + 9*G + 8*P + … + 3*T + 2*T + 1*c = 0 (mod 11) 例 ISBN番号について考えてみましょう。9780345391803対応するISBN-10コードを取得するには、先頭978のチェックサムとチェックサムが3降っているだけ034539180です。 次に、新しいチェックサムを計算する必要があります。 10*0 + 9*3 + 8*4 + 7*5 + 6*3 + 5*9 + 4*1 + 3*8 + 2*0 = 185 で割り切れる次の番号11はです187。そのため、新しいチェックサムは2ISBN-10コードになります0345391802。 ルール 入力には常に対応するISBN-10番号が付けられます(つまり、正確に13桁で始まり、で始まります978) 入力は、必ずしも有効なISBN-13である必要はありません(例:。 …

9
グループは周期的ですか?
前書き 循環グループとは何かをすでに知っている場合は、この部分をスキップできます。 グループが設定され、連想バイナリ操作によって定義される$(、である(a $ b) $ c = a $ (b $ c)グループに正確に1つの要素が存在する。eここで、a $ e = a = e $ a全てのためのaグループ(で識別)。すべての要素についてはa、グループ内の存在正確に一つのbようにa $ b = e = b $ a(逆) 。a, bグループ内の2つの要素ごとに、a $ bに、グループ内にあります(closure)。 私たちは書くことができます a^n代わりにa$a$a$...$a。 任意の要素によって生成された巡回サブグループa、グループ内である<a> = {e, a, a^2, a^3, a^4, ..., a^(n-1)}場合n(サブグループが無限大でない限り)サブグループの順序(サイズ)です。 グループは、その要素の1つによって生成できる場合、周期的です。 チャレンジ 有限グループのCayleyテーブル(製品テーブル)が与えられたら、それが周期的かどうかを判断します。 例 次のCayleyテーブルを見てみましょう。 1 …

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