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

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

30
合計
ましょう(入力)n=42n=42n=42 除数は次のとおりです:1、2、3、6、7、14、21、42 各除数の平方:1、4、9、36、49、196、441、1764 合計(加算):2500 以来したがって、我々はtruthy値を返します。完全な正方形でない場合は、偽の値を返します。50×50=250050×50=250050\times 50=2500 例: 42 ---> true 1 ---> true 246 ---> true 10 ---> false 16 ---> false これはコードゴルフなので、各言語のバイト単位の最短コードが勝ちます シーケンスを指摘してくれた@Arnauldに感謝します:A046655

22
数字のペアの説明で並べ替える
正の整数を指定すると、ペアで取得した数字で記述される新しい数字を作成できます(数字の奇数の場合は、先頭に0を追加します)。 例えば: 1234は1つ、2つ、3つの4として読み取ることができます。したがって、1234の出力は2444です。 643の桁数は奇数なので、先頭にゼロを追加して偶数にします。この場合、0643は次のように読み取ることができます:ゼロ6秒、4つの3秒。したがって、出力は3333になります。 (これはOEIS A056967です)。 タスク:正の整数の配列が与えられた場合、数字ペアで記述された値で昇順に並べ替えます。同じ値につながる入力番号の間で順序は関係ありません。 入力:正の整数の配列/リスト/セット。入力の先頭のゼロは許可されず、文字列/数字のリストなどとして入力されます。許可されていません-入力は、言語が使用できる限り整数/数値型に近いものでなければなりません。 出力:上記の方法でソートされた配列で、通常の方法(関数の戻り値/ STDOUT / voidへの叫びなど)で返されます。それらを個別に印刷し、数値、文字列、またはリストとして返すことができます。桁。 テストケース Input Output [19, 91, 2345, 2023] [19, 2023, 2345, 91] [25257, 725, 91, 5219, 146125, 14620512] [725, 5219, 14620512, 91, 146125, 25257] [123130415 3335 91 111111111 528 88] [528, 111111111, 123130415, 3335, 88, 91] [1 21 33 …

7
積み上げ桁階段
以下に説明するように、正の整数およびhを指定すると、テキストのw列およびh行が出力されます。wwwhhhwwwhhh 最初の行は11 0秒で始まり、2行目は10 1秒で始まり、3 行目は9 2秒で始まり、10行目は2秒で続き9ます。これらの最初の10行のそれぞれで、連続する数字の最初の実行に続いて、次に低い数字が2回現れ、次に2番目に小さい数字が2回現れ、このパターンが永久に繰り返されます。0sの実行が発生した場合、その後の数字は常に9sです。 10番目の行の下の行は、そのすぐ上の行と同じですが、1つ右にシフトします。表示される新しい数字は、それ自体の別のインスタンスの隣にない場合、前の左端の数字と同じです。それ以外の場合は、次に高い桁(9から0に戻る循環)です。 最初の要素は次のとおりです。11×1011×1011\times10 00000000000 11111111110 22222222211 33333333221 44444443322 55555544332 66666554433 77776655443 88877665544 99887766554 パターンをより明確にするために、色付きのテキストを使用した画像を次に示します。 より少ない列/行を作成する必要がある場合は、上記のテキストを切り抜く必要があります。 これより多くの列/行を作成する必要がある場合は、既存の階段を延長する必要があります。さらに列/行が連続する数字の新しい階段を追加する場合、数字は整数から周期的に選択される必要があります。したがって、入力のために出力がなければなりません(15,13)(15,13)(15,13) 000000000009988 111111111100998 222222222110099 333333332211009 444444433221100 555555443322110 666665544332211 777766554433221 888776655443322 998877665544332 099887766554433 009988776655443 100998877665544 このテキストの色付きの画像を次に示します。 ルール 便利な方法で出力できます。 完全なプログラムまたは機能のいずれかが受け入れられます。関数の場合、出力する代わりに出力を返すことができます。 必要に応じて、行のリストを返すことができます。 必要に応じて、数字の2D配列または数字のリストのリストを返すことができます。 標準の抜け穴は許可されていません。 最短のコードが優先されます。 テストケース (w,h)(w,h)(w,h) 1,1 0 3,2 000 111 20,1 …

7
ニム乗算
バックグラウンド 多くのコードゴルフを行う場合は、ビット単位のXOR操作を知っている可能性があります。2つの整数が与えられると1、2つの入力が異なるビットにsを持つ別の整数が与えられます。したがって、たとえば、1010 XOR 0011 = 1001。 それはゲーム理論で非常に有用であることが判明し、「nim sum」として知られています。2つのゲームの合計がある場合(つまり、一度に1つのゲームで移動している場合)、位置の値は、個々のゲームの位置の値のnim合計です。 しかし、これをさらに一歩進めることができます。nimの追加とnimの乗算の適切な定義により、非負の整数からフィールドを形成できます。したがって、課題はゴルフニムの増殖です。 定義 Nim乗算は次の規則に従います 。Fermat 2乗n =(2 ^(2 ^ k))と任意の小さい数のnim積は通常の積です。 Fermat 2乗nとそれ自体のnim積は3n / 2です。 Nim乗算は、nim加算を介して分散します。 Nim乗算は可換および結合的です(nim加算と同様)。 乗法恒等式は1です(および加法恒等式は0です)。 非負の整数は、2の異なるべき乗のnimの合計として記述でき、2のべき乗は、異なるフェルマー数の積として記述できます。したがって、これは、すべての非負の整数のnim乗算を定義するのに十分です。 例 それはすべてかなり抽象的だったので、例を見ていきましょう。私が使用します+NIM加算(XOR)を表すとする*NIM乗算に。 6 * 13 = (4 + 2) * (8 + 4 + 1) = (4 + 2) * ((4 * 2) + 4 …
17 code-golf  math 

19
エルミート行列?
この課題では、複素数の処理や理解が必要ないことに注意してください。 すべての要素が2要素(Re、Im)整数リストである空でない正方行列が与えられた場合、これがエルミート行列を表すかどうかを決定(真理値/偽値または2つの一貫した値を与える)します。 入力は整数の3D配列であることに注意してください。複素数の2D配列ではありません。言語で3D配列を直接取得できない場合は、フラットリストを使用できます(それが役立つ場合は、n×nまたはn×n×2の形状)。 行列は、それ自身の共役転置に等しい場合、エルミート行列です。言い換えると、左上から右下の対角線上でそれを反転し、すべての2要素リーフリストの2番目の要素を無効にすると、入力行列と同じになります。反転と否定の順序は無関係であることに注意してください。したがって、最初に否定し、その後反転することができます。 ウォークスルーの例 この例では、読みやすくするために、余分な空白を含むJSONを使用しています。 [[ [2, 0] , [2, 1] , [4, 0] ], [ [2,-1] , [3, 0] , [0, 1] ], [ [4, 0] , [0,-1] , [1, 0] ]] 転置(NWを越えて反転-SE対角線): [[ [2, 0] , [2,-1] , [4, 0] ], [ [2, 1] , [3, 0] …

1
Moufangループのカウント
ループは非常に単純な代数構造です。タプル(G、+)で、Gは集合で、+は二項演算子G×G→Gです。つまり、+はGから2つの要素を取得し、新しい要素を返します。また、オペレーターは2つの特性を満たす必要があります キャンセル:すべての場合、AとBにGのユニークな存在のxとyとにGよう a + x = b y + a = b アイデンティティ:ある電子でGのすべてのためのように、AでGは、 e + a = a a + e = a グループの概念に精通している場合、ループは連想プロパティを持たない単なるグループであることに気付くかもしれません。 ループは非常に単純なので、人々はより多くのルールを追加して、より興味深い新しい構造を作成することを好みます。そのような構造はMoufangループもことFORALL満たす次の4人のアイデンティティをループであり、X、Y及びZでG z + (x + (z + y)) = ((z + x) + z) + y ((y + z) + x) + z = y + …

6
最初の定期的な数字を削除する
有理数が10進数で書かれているときはいつでも、結果は終了するか(最終的に)周期的であることを知っています。たとえば、41/42が10進数で記述されている場合、結果は次のようになります。 0.9 761904 761904 761904 761904 761904 761904 761904 ... 最初の数字のシーケンスと0.9それに続くシーケンスが761904繰り返し繰り返されます。(これの便利な表記法は0.9(761904)、括弧が繰り返し数字のブロックを囲む場所です。) この課題の目標は、正の有理数を取得し、繰り返しシーケンスの一部である最初の数字を削除して、結果の有理数を返すことです。たとえば、これを41/42にすると、次のようになります 0.9 61904 761904 761904 761904 761904 761904 761904 ... または0.9(619047)略して101/105です。 1/4 =のように、有理数の末尾に10進数の展開がある場合0.25、何も起こりません。あなたはどちらかと1/4の考えることができる0.250000000...かのように0.249999999...番号が変わらず、繰り返し部分の葉の最初の数字を削除するが、いずれの場合も。 詳細 入力は、分子と分母を表す正の整数のペアとして、または(選択する言語で許可され、必要な場合)何らかの種類の有理数オブジェクトとしての正の有理数です。 出力も有理数であり、どちらの形式でもあります。結果が整数の場合、有理数の代わりに整数を返します。 入力として数値のペアを使用する場合、それらは比較的素数であると想定できます。出力として数値のペアを生成する場合、それらを比較的素数にする必要があります。 繰り返しブロックを開始する最初の数字を見つけることに注意してください。たとえば、41/42と書くこともできます0.97(619047)が、これは2041/2100(10進数展開0.97(190476))を有効な答えにしません。 あなたは、あなたが得る入力で、第1の周期の数字であると仮定してもよいの後になって、小数点120/11= 10.909090909...(その最初の定期的な数字が考えられる:無効な入力0で10)。あなたはそのような入力であなたが好きなことをするかもしれません。 これがコードゴルフです。最短のソリューションが勝ちです。 テストケース 41/42 => 101/105 101/105 => 193/210 193/210 => 104/105 104/105 => 19/21 1/3 => 1/3 1/4 => …

3
乗算から加算への累乗
2つの整数間の乗算は、次のように一連の加算に減らすことができます。 3 * 5 = 3 + 3 + 3 + 3 + 3 = 5 + 5 + 5 べき乗(上昇電力にbが)また、乗算のシリーズに低減することができます。 5 ^ 3 = 5 * 5 * 5 したがって、乗算式を作成することにより、べき乗を一連の加算に減らしてから、一連の加算に減らすことができます。たとえば、5 ^ 3(5立方体)は次のように書き換えることができます。 5 ^ 3 = 5 * 5 * 5 = (5 + 5 + 5 + 5 …

21
マトリックスのデルタを合計する
バックグラウンド 整数の配列のデルタは、連続する要素の差を取得することにより形成される配列です。たとえば[1, 2, 4, 7, 3, 9, 6]、次のデルタがあります[1, 2, 3, -4, 6, -3]。 ここで、整数の行列のデルタを、各行とそれに含まれる各列のデルタとして定義します。 例として: Row deltas: 1 2 3 4 │ => [1, 1, 1] 4 5 6 7 │ => [1, 1, 1] 7 1 8 2 │ => [-6, 7, -6] Column deltas (the matrix' columns have …

11
エチオピアの乗算
この質問は、この答えに触発されています。偶然にも、私は子供の頃エチオピア乗法を使用していましたが、最近までその方法の名前を知りませんでした。 エチオピアの乗算は、加算、倍増、および半分だけを使用して整数を乗算する方法です。 方法: 乗算する2つの数値を取得し、2つの列の上部に書き留めます。 左側の列では、値1を書き込むまで、最後の数値を繰り返し半分にし、残りをすべて破棄し、同じ列の最後の結果の下に結果を書き込みます。 右側の列で、最後の数字を繰り返し2倍にして、以下の結果を書きます。左側の列に1が表示されているのと同じ行に結果を追加すると停止します。 作成されたテーブルを調べて、左側の列の値が偶数である行を破棄します。残っている右側の列の値を合計して、元の2つの数値を乗算した結果を生成します。 例:17 x 34 17 34 最初の列を半分にする: 17 34 8 4 2 1 2列目を2倍にするには: 17 34 8 68 4 136 2 272 1 544 最初のセルが偶数の取り消し線は、これらの数値を角括弧で囲んで右側に配置します。 17 34 8 [68] 4 [136] 2 [272] 1 544 右側の列の残りの数値を合計します。 17 34 8 [68] 4 [136] 2 [272] …

30
消える要素
文字列Sとインデックスのリストを指定すると、その結果をの新しい値として使用しながら、の各インデックスの要素を削除してX変更SしSますS。 例えば、与えられたS = 'codegolf'とX = [1, 4, 4, 0, 2]、 0 1 2 3 4 5 6 7 | c o d e g o l f | Remove 1 c d e g o l f | Remove 4 c d e g l f | Remove 4 c …
17 code-golf  string  array-manipulation  code-golf  string  ascii-art  code-golf  number  sequence  pi  code-golf  number  array-manipulation  code-golf  string  ascii-art  code-golf  math  number  game  code-golf  math  sequence  polynomials  recursion  code-golf  math  number  sequence  number-theory  code-golf  permutations  balanced-string  code-golf  string  ascii-art  integer  code-golf  decision-problem  hexagonal-grid  code-golf  ascii-art  kolmogorov-complexity  code-golf  number  code-golf  matrix  binary-matrix  code-golf  math  statistics  code-golf  string  polyglot  code-golf  random  lost  code-golf  date  path-finding  code-golf  string  code-golf  math  number  arithmetic  number-theory  code-golf  tetris  binary-matrix  code-golf  array-manipulation  sorting  code-golf  number  code-golf  array-manipulation  rubiks-cube  cubically  code-golf  grid  optimization  code-golf  math  function  code-golf  string  quine  code-golf  ascii-art  grid  code-golf  decision-problem  grid  simulation  code-golf  math  sequence  code-golf  path-finding  code-golf  ascii-art  grid  simulation  code-golf  number  whitespace  code-golf  sequence  code-golf  sequence  code-golf  sequence  integer  code-golf  math  game  code-golf  internet  stack-exchange-api  code-golf  sequence  code-golf  internet  stack-exchange-api  code-golf  math  factoring  code-challenge  sequence  polyglot  rosetta-stone  code-golf  string  browser  code-golf  date  code-golf  base-conversion  code-challenge  cops-and-robbers  hello-world  code-golf  cops-and-robbers  hello-world 

21
追加の事実!
数学では、n!で示される非負整数nの階乗の短縮された「事実」。は、n以下のすべての正の整数の積です。たとえば、5!ある1 * 2 * 3 * 4 * 5 = 120 空の製品の規則に従って、0の階乗は1です。 これらは、私たちが慣れ親しんでいる通常の事実です。いくつかの選択肢を追加しましょう: 階乗(上記で定義) 二重階乗:n !! = 1 + 2 + ... + n 三重階乗:n !!! = 1-(2-(3-(...-n)))...) 4つの階乗:n !!!! = 1 /(2 /(3 ... / n)))...)。注:これは整数除算ではなく、浮動小数点除算です。 チャレンジ 非負の整数入力を取るN、直接間続く1及び4感嘆符。入力は(まったく)次のようになります:0!、5 !! 、132 !!! または4 !!!! 。このチャレンジでは、柔軟な入力形式を想定していない可能性があります。申し訳ありません。 出力 出力は、任意の便利な形式での結果でなければなりません。4倍階乗の結果は、0 !!!!を除き、小数点の後に少なくとも2桁ある必要があります。= 0。 テストケース: …

5
最速のツイート可能な整数因数分解器
タスクは、合成数の重要な要素を見つけることです。 コードの長さが140バイトを超えないことを条件に、複合数の重要な要素をできるだけ早く見つけるコードを記述します。出力は、あなたが見つけた要素である必要があります。 コードは、たとえば関数の引数としてなど、便利な方法で入力を取得し、出力を提供できます。 すべての要因をリストするテストケース(出力する必要があるのは1つだけです) 187: 11 17 1679: 23 73 14369648346682547857: 1500450271 9576890767 34747575467581863011: 3628273133 9576890767 52634041113150420921061348357: 2860486313 5463458053 3367900313 82312263010898855308580978867: 264575131106459 311111111111113 205255454905325730631914319249: 2860486313 71755440315342536873 1233457775854251160763811229216063007: 1110111110111 1000000000063 1111111999999 1751952685614616185916001760791655006749: 36413321723440003717 48112959837082048697 テストに興味があるかもしれない次の難しいテストケースであなたの答えを採点しません: 513231721363284898797712130584280850383: 40206835204840513073 12764787846358441471 スコア スコアは、上記のすべてのテストケースを因数分解するための合計時間であり、因数分解に失敗するたびに10分のペナルティがあります(すべて最も近い秒に丸められます)。コードは他の整数でも機能するはずです。つまり、これらの答えをハードコーディングするだけではいけません。 10分後にコードを停止します。 2人が同じスコアを獲得した場合、最初の答えが勝ちます。 制限事項 コードでは、整数分解を実行する組み込み関数またはライブラリ関数を使用できません。入力は256ビット未満であると想定できます。すべての入力番号は合成されます。 どうやって時間を計るの? 私はtime ./myprog、Ubuntuシステムで文字通りタイミングを実行するので、定義した機能を含む完全なプログラムも実行してください。 コンパイルされた言語に関する注意 私のマシンでは、コンパイル時間は1分以内でなければなりません。 実際に可能ですか? スペースの制約を無視すると、純粋なPythonコード+ …

25
シンプルなパターン
入力: 選択した入力形式での2つの1桁(それらをm、と呼んでみましょうn)と2つの文字(aとと呼んでみましょうb)。 出力: チュートリアルでは、のふりをしm=2, n=5, a='a', b='b'ます。 出力は、4つの入力から作成された文字列になります。resultvalueでstringを呼び出しましょう""。まず、CONCATENATE aへのresult m回なので、CONCATENATE aへresult 2回。resultに等しくなりましたaa。第二に、CONCATENATE bへのresult m回なので、CONCATENATE bへresult 2回。resultに等しくなりましたaabb。最後に、resultがすでにより長い場合n、resultlengthを持つように切り捨てnます。それ以外の場合は、のm長さの実行aとが長さになるbまで交互に続けます。最後は、長さです。resultnresultaabba5 テストケース: Input: m = 2, n = 4, a = A, b = B Output: AABB Input: m = 3, n = 8, a = A, b = B Output: AAABBBAA Input: m = …
17 code-golf  string  code-golf  arithmetic  code-golf  string  array-manipulation  rubiks-cube  code-golf  math  number  code-golf  tips  bash  code-golf  ascii-art  music  code-golf  arithmetic  code-golf  math  number  arithmetic  integer  code-golf  number  array-manipulation  code-golf  geometry  grid  set-partitions  code-golf  math  number  code-golf  combinatorics  code-golf  regular-expression  code-golf  permutations  code-golf  ascii-art  code-golf  number  array-manipulation  matrix  code-golf  kolmogorov-complexity  compile-time  cops-and-robbers  polyglot  cops-and-robbers  polyglot  code-golf  string  code-golf  string  ascii-art  matrix  animation  code-golf  ascii-art  code-golf  string  balanced-string  code-golf  integer  integer-partitions  expression-building 

12
無料のランチのようなものはありません
...またはありますか? あなたの課題は、基本料金、ヒント、割引、クーポン、追加料金を含む私の昼食請求書を解析し、私の昼食が0ドル以下かどうかを調べることです。これが入力の場合: 12.34 15 tip 25 discount 1.5 extra 2 coupon その場合、出力はになる可能性がありますfalse。仕組みは次のとおりです。 12.34 は基本価格です。 15 tip合計に15%を追加することを意味します。 25 discount合計から25%を引くことを意味します。 1.5 extra合計に1.5を加算することを意味します。 2 coupon合計から2を引くことを意味します。 の量があるかもしれませんヒント、割引、クーポン、およびエキストラが、常に1台の価格が存在します。 それから (12.34 * 1.15) * 0.75 + 1.5 - 2、10.14の出力を作成します。10.14は0より大きいため、falseを出力します。私の昼食は無料ではありませんでした。 ルール 数値 tipは、合計に数値パーセントを追加することを意味します。 number discountは、合計からnumberパーセントを引くことを意味します 数値 extraは、合計に数値を追加することを意味します 数の coupon減算する手段の数を、合計から もう一つの例: 10 20 tip 20 discount 2 coupon …

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