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

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

29
回転合計
入力として正の整数を含む正方行列を取得し、行列の「回転和」を計算します。 回転合計: 元の行列と同じ行列を90、180、270度回転させた合計を取ります。 マトリックスが次のとおりであると仮定します。 2 5 8 3 12 8 6 6 10 回転した合計は次のようになります。 2 5 8 8 8 10 10 6 6 6 3 2 3 12 8 + 5 12 6 + 8 12 3 + 6 12 5 = 6 6 10 2 3 6 8 5 …

30
非ゼロデジタル製品の課題
もともと乗法的デジタルルート チャレンジ 基本的にタイトルが言うことをする 方法 標準入力メソッドのいずれかで正の整数1 <= N <= 100000000が与えられた場合、 ゼロを無視してすべての数字を乗算します。 例:数字を入力して361218402ください: 3* 6=18 18* 1=18 18* 2=36 36* 1=36 36* 8=288 288* 4=1152 1152* 1 (ゼロを無視するか、1に変換します) =1152 1152* 2=2304 の出力361218402は2304 テストケース 1 => 1 他のすべての数字> 0 =>それ自体 10 => 1 20 => 2 100 => 1 999 => 729 21333 …

15
МногочленыЧебышёва(チェビシェフ多項式)
チェビシェフ多項式は、数学のあらゆる種類の場所に現れる直交多項式のファミリーであり、非常に興味深い特性がたくさんあります。それらの1つの特徴は、それらが満たすユニークな多項式であるということです。Tn(cos(x)) = cos(n*x) チャレンジ 非負の整数nを指定すると、n-th Chebyshev Polynomialを出力する必要があります。。Tn(x) 定義 n番目のチェビシェフ多項式は、3項の再帰を以下の式で与えられます。 T0(x) = 1 T1(x) = x Tn+1(x) = 2*x*Tn(x) - Tn-1(x) 詳細 言語にネイティブの多項式タイプがある場合は、それを出力として使用できます。それ以外の場合は、係数のリストを昇順または降順で、または多項式を表す文字列として出力する必要があります。 例 T0(x) = 1 T1(x) = x T2(x) = 2x^2 - 1 T3(x) = 4x^3 - 3 x T4(x) = 8x^4 - 8x^2 + 1 T5(x) = 16x^5 …

30
N番目の違い
数学では、与えられた関係のタイプ(線形、二次など)を把握する1つの方法は、差を計算することです。これを行うには、対応するx値間のギャップが同じy値のリストを取得し、その上の数値からそれぞれを減算し、前のリストより1つ短い数値のリストを作成します。結果のリストが完全に同一の数値で構成されている場合、関係には1の差があります(線形です)。同一でない場合は、新しいリストでプロセスを繰り返します。それらが現在同一である場合、関係には2の差があります(2次です)。それらが同一でない場合は、それらが同一になるまでこのプロセスを続行します。たとえば、x値を増分的に増やすためのy値[1,6,15,28,45,66]のリストがある場合: First Differences: 1 6 1-6 =-5 15 6-15 =-9 28 15-28=-13 45 28-45=-17 66 45-66=-21 Second differences: -5 -9 -5+9 =4 -13 -9+13 =4 -17 -13+17=4 -21 -17+21=4 As these results are identical, this relation has a difference of 2 あなたのタスク: 入力として整数の配列が与えられると、上で説明したように、配列によって記述された関係の差を返すプログラムまたは関数を書きます。 入力: 整数の配列。長さは1より大きい場合があります。 出力: 入力によって記述された関係の差を表す整数。 テストケース: Input => …

9
GCD / LCMポリグロット!
あなたの課題は、入力のGCDをある言語で出力し、入力のLCMを別の言語で出力するプログラムまたは関数を作成することです。GCDまたはLCM(Mathematicaを探しています)の組み込みは許可されていますが、推奨されていません。入力は2つあり、常に正の整数で、1000を超えることはありません。 テストケース 各行は、次の形式の1つのテストケースですx y => GCD(x,y) LCM(x,y)。 1 1 => 1 1 1 2 => 1 2 4 1 => 1 4 3 4 => 1 12 7 5 => 1 35 18 15 => 3 90 23 23 => 23 23 999 1000 => 1 999000 1000 999 => …

30
マイナス、プラス、タイムズ、べき乗?
これは、少し前にチャットルームThe Ninteenth Byteに投稿したCMC(チャットミニチャレンジ)です。 チャレンジ xの最後の2ビットに応じて正の整数を与えx、次の操作を行います。 x & 3 == 0: 0 x & 3 == 1: x + x x & 3 == 2: x * x x & 3 == 3: x ^ x (exponentiation) 入出力 Single Integer -> Single Integer 出力では末尾の改行が許可されます。他の空白は許可されません。 テストケース input output 1 2 2 4 …
26 code-golf  math 

10
シンボリック行列乗算
行列の乗算を説明する方法はたくさんあります。ここのほとんどの人はそれに精通していると思うので、私は単一の図に固執します(そして図は非常に記述的です)。より詳細な情報が必要な場合は、ウィキペディアの記事、またはWolframMathWorldの説明をご覧になることをお勧めします。 簡単な説明: あなたは二つの行列、持っていると仮定AとB、Aが 3行2であり、Bは 2行3です。これらに対してAB、BAのいずれかの行列に行列乗算を実行すると、以下の結果が得られます。 チャレンジ: 言語にシンボリック行列乗算を実装します。入力として2つのマトリックスを使用します。ここで、マトリックス内の各要素は非空白ASCII文字(コードポイント33〜126)で表されます。これらの行列の積を出力する必要があります。 出力に関する規則: 2つのエントリの製品には、間に記号を入れてはなりません。それはだab、ではないa*b、a·b、times(a,b)または類似した何か。でaaはありませんa^2。 用語の合計には、間にスペース(ASCIIコードポイント32)が必要です。それa bはa+b、ではなく、plus(a,b)または類似したものです。 これら2つのルールの理論的根拠は次のとおりです。すべての非空白文字は行列内の記号として許可されているため、数学記号として使用するのは面倒です。だから、あなたが普通に書くことができるものはそうa*b+c*dなりますab cd。 条件の順序を選択できます。ab cd、dc abおよびcd ba数学的に同じことを話しているので、あなたもここに順序を選択することができます。数学的に正しい限り、順序は一貫している必要はありません。 マトリックスのフォーマットに関する規則: マトリックスは、行間に区切り文字のない単一の文字列を除き、任意の形式で入力できます(これは、出力が完全に台無しになるためです)。両方の行列は同じ形式で入力する必要があります。以下の例はすべて、マトリックスを入力および出力する有効な方法です。 "ab;cd" <- This will look awful, but it's still accepted. "a,b\nc,d" [[a,b],[c,d]] [a, b] [c, d] これにより面倒に見える多くのフォーマットが可能になることは承知していますが、課題は出力のフォーマットではなく行列の乗算です。 一般的なルール: 有効な入力を想定することができます。行列の乗算は、指定された次元で常に可能です。 マトリックスは2つしかありません。 行列が空でないと仮定することができます 組み込み関数が受け入れられます(ただし、書式設定の要件のため、おそらく少し面倒です)。 もちろん、必要に応じて(\'ではなく')入力にエスケープ文字を使用できます。 標準の入出力方法はすべてOKです。 テストケース: 2つの入力行列は、間に空の行が表示されています。出力はの後に表示されOutput:ます。2つの出力マトリックスがある場合、受け入れられる他の出力を表示するだけです。 テストケース#1 Inputs: [a] [b] Output: …

21
これらの数字のみを含む最小のn桁の素数
n数字を含む最小の素数を生成する必要があり、リストに指定された数字のみが含まれますk。 例: 入力: 4 1 2 そのために4は、数字1を含む最小の素数を生成する必要があり、その素数には数字とのみが含まれている必要があります2。 出力: 2111 入力: 10 0 4 7 出力: 4000000007 入力: 6 5 5 5 5 5 5 5 5 5 5 1 5 5 5 5 5 5 5 5 5 5 出力: 115151 入力は常に指定した形式であることが保証でき、無効な入力(入力が1桁であるなどn、k。 入力に対するそのような解決策が存在しない場合、プログラムは次のいずれかを実行できます。 印刷する banana エラーを投げる 永遠に走る 他に何か これはcode-golfなので、最短のコードを目指してください。 入力は、指定した任意の形式にすることができます。たとえば、入力を次のいずれかにしたい場合は問題ありません。 …

9
できるだけ早くパーマネントを計算します
課題は、行列のパーマネントを計算するために可能な限り速いコードを書くことです。 永久n行列のn行列A=( ai,j)は以下のように定義されます ここでS_nのすべての順列の集合を表します[1, n]。 例として(wikiから): この質問では、行列はすべて正方形で、値-1と1その中のみを持ちます。 例 入力: [[ 1 -1 -1 1] [-1 -1 -1 1] [-1 1 -1 1] [ 1 -1 -1 1]] 永久: -4 入力: [[-1 -1 -1 -1] [-1 1 -1 -1] [ 1 -1 -1 -1] [ 1 -1 1 -1]] 永久: 0 …

1
Android Lockパターンを把握する
友達が自分のパスワードをAndroidスマートフォンに入力しているのを見たとしましょう。彼らがどのようにパターンを作ったかは覚えていませんが、パターンがどのように見えるかは覚えています。あなたがあなたであるという懸念の友人であることは、彼らのパスワードがどれほど安全であるかを知りたいです。あなたの仕事は、特定のパターンを作成できるすべての方法を計算することです。 Androidパターンの仕組み パターンはノードの3x3グリッドに描かれます。パターンでは、画面から指を離さずに一連のノードにアクセスします。訪問する各ノードは、エッジによって前のノードに接続されます。留意すべき2つのルールがあります。 1つのノードに複数回アクセスすることはできません エッジは未訪問のノードを通過できません 通常、実行するのは非常に難しいため、実際のAndroidロックの組み合わせではあまり一般的ではありませんが、Knightのように移動することができます。つまり、一方の側から隣接していないコーナーに移動したり、反対側に移動したりすることができます。このような動きを採用したパターンの2つの例を次に示します。 これが実行されているアニメーションGifです。 パターンを解く 典型的なパターンは次のようになります。 このような単純なパターンでは、2つの方法でパターンを描画できます。2つのルーズエンドのいずれかから開始し、強調表示されたノードを介してもう一方に移動できます。これは多くのパターン、特に人間が通常使用するパターンに当てはまりますが、すべてのパターンに当てはまるわけではありません。 次のパターンを検討してください。 すぐに認識できる解決策が2つあります。左上から始まるもの: そして、下中央から始まるもの: ただし、線が選択されると、ポイントを通過することが許可されるため、上部中央から始まる追加のパターンがあります。 この特定のパターンには3つのソリューションがありますが、パターンには1〜4のソリューションがあります[要出典]。 それぞれの例を次に示します。 1。 2。 3。 4。 I / O ノードは、0から9までの整数、それらに相当する文字列、またはaからi(またはAからI)の文字として表すことができます。各ノードには、これらのセットのいずれかからの一意の表現が必要です。 ソリューションは、ノード表現を含む順序付けられたコンテナで表されます。ノードは、通過するのと同じ順序で並べる必要があります。 パターンは、ノードのペアの順序付けられていないコンテナで表されます。各ペアは、ペアの2つのポイントを接続するエッジを表します。パターン表現は一意ではありません。 パターン入力を標準入力メソッドを介して入力として受け取り、標準出力メソッドを介して同じパターンを作成するすべての可能なソリューションを出力します。 各入力には少なくとも1つのソリューションがあり、少なくとも4つのノードを接続すると想定できます。 希望する場合、または言語の選択により強制される場合は、順序付けられていないコンテナの代わりに順序付けされたコンテナを使用することを選択できます。 テストケース ノードを次のパターンで配置します。 0 1 2 3 4 5 6 7 8 ましょう{...}、順不同容器で[...]注文した容器であり、(...)ペアこと。 次の入力と出力は一致する必要があります {(1,4),(3,5),(5,8)} -> {[1,4,3,5,8]} {(1,4),(3,4),(5,4),(8,5)} -> {[1,4,3,5,8]} {(0,4),(4,5),(5,8),(7,8)} -> …

22
四分位平均
仕事 ソートされた浮動小数点データセットを(何らかの方法で)与えられた場合、(何らかの方法で、正しい値の1‰以内で)四分位平均を返します。 1つの可能なアルゴリズム データポイントの最低および最高の四半期を破棄します。 残りのデータポイントの平均(合計をカウントで割った値)を計算します。 注:データセットのサイズが4つに均等に分割できない場合、サブセットで共有されるデータポイントを比較検討する必要があります。下記の評価例2を参照してください。 評価例1 与えられた{1、3、4、5、6、6、7、7、8、8、8、9、38} 我々は最低と最高3のデータポイントを削除するように、データ数は、12である:{ 1、3、4、 5、6、6、7、7、8、8、9、38 } 残りの6つのデータポイントの平均:(5 + 6 + 6 + 7 + 7 + 8)/ 6 = 6.5 評価例2 与えられた{1、3、5、7、9、11、13、15、17} カウントは9なので、各四半期には2¼データポイントがあります:{ 1、2、(0.25×5)、(0.75×5)、7、9、11 、(0.75×13)、(0.25×13)、 15、17 } 残りの4.5データポイントの平均:(0.75×5 + 7 + 9 + 11 + 0.75×13)/ 4.5 = 9

21
コード内のミラー、ミラー
多くの場合、2次元プログラミング言語には、グリッド上の命令ポインターをリダイレクトするためのミラーコマンドが/あります\。 >>>>\ v v <<<</ この課題では、着信方向とミラーを指定し、発信方向を決定する必要があります。 ルール 到来方向は、文字の一つとして説明するNESWと、ミラーは、いずれかとして与えられる/、または\。これらは任意の順序で受け取ることができます。大文字を使用する必要があります。 2文字の文字列、文字間の区切り文字を使用した文字列、リスト内の文字のペア、またはシングルトン文字列のペアなど、任意の便利な形式で入力を取得できます。区切り文字付きの文字列を使用する場合、区切り文字には文字を使用できませんNWSE\/。 出力は、からの文字NESWまたは単一文字の文字列でなければなりません。 プログラムまたは関数を作成し、入力を受け取り出力を提供する当社の標準的な方法のいずれかを使用できます。 任意のプログラミング言語を使用できますが、これらの抜け穴はデフォルトでは禁止されています。 これはcode-golfであるため、バイト単位で測定される最短の有効な回答が勝ちます。 テストケース 処理する必要がある入力は8つしかないため、すべてのコードをテストしない理由はありません。 N / --> W N \ --> E E / --> S E \ --> N S / --> E S \ --> W W / --> N W \ --> S

29
部分文字列合計セット
前書き この配列を見てみましょう:[3, 2, 4, 1, 1, 5, 1, 2]。 各要素には、合計する必要がある部分文字列の長さが表示されます。上記の配列の最初の要素を見てみましょう。 [3, 2, 4, 1, 1, 5, 1, 2] ^ 最初のインデックスの要素は3なので、開始位置と同じインデックスを持つ長さ3の部分文字列を取得します。 [3, 2, 4] 合計すると、これは9になるため、部分文字列合計セットの最初の要素は9です。 配列内のすべての要素に対してこれを行います。 3 -> [3, 2, 4] 2 -> [2, 4] 4 -> [4, 1, 1, 5] 1 -> [1] 1 -> [1] 5 -> [5, 1, …

3
残基番号システム
多数の課題がありますが、これは面白いかもしれません。 この課題では、剰余数システム(RNS)を使用して、大きな整数の加算、減算、乗算を実行します。 RNSとは RNSは、整数を識別するために開発された多くの方法の1つです。このシステムでは、数値は剰余のシーケンス(モジュラス演算後の結果(整数除算後の剰余))で表されます。このシステムでは、各整数には多くの表現があります。物事をシンプルにするために、各整数が一意に表現されるように物事を制限します。具体的な例で何が起こっているかを説明する方が簡単だと思います。 最初の3つの素数、2、3、5を見てみましょう。RNSシステムでは、これら3つの数字を使用して、残基を使用して2 * 3 * 5 = 30未満の数字を一意に表すことができます。テイク21: 21は30未満なので、2、3、および5でモッドした後の結果を使用して表すことができます(つまり、整数を2、3、および5で除算した後の余り) 次の整数シーケンスで21を識別します。 21〜{21 mod 2、21 mod 3、21 mod 5} = {1、0、1} したがって、RNSシステムでは、「21」の代わりに{1,0,1}を使用します。 一般に、整数nが与えられた場合、nは{ n mod 2、...、n mod p_k } として表されます。ここで、p_kは最小の素数であり、nはp_k以下のすべての素数の積より小さくなります。 別の例は、ので、私たちはここに2,3,5,7,11,13を使用する必要があり、我々は3412を持っていると言う2*3*5*7*11*13=30030、一方2*3*5*7*11=2310小さすぎます。 3412〜{3412 mod 2、3412 mod 3、3412、mod 5、...、3412 mod 13} = {0、1、2、3、2、6} このシステムを使用すると、非常に大きな数を比較的簡単に表すことができます。{1、2、3、4、5、6、7、8、...}残基を使用して、最大{2、6、30、210、2310、30030、510510、9699690 ...}までの数を表すことができますそれぞれ。(ここにシリーズがあります) 私たちの仕事 これらの剰余を使用して、多数に対して+、-、および*を実行します。これらのプロセスを以下に説明します。ここでは、入力仕様と出力仕様を示します。 入力 stdinまたは関数の引数を介して2つの(潜在的に非常に大きい)数が与えられます。10桁の文字列として与えられます。 問題をさらに詳しく説明するために、最初の入力nと2番目の入力を呼び出しますm。n> m> …

30
数字を合計し、数字を逆にした
0より大きい数を指定すると、すべての数字(1 .. n)が連結および反転された合計が出力され、それらが加算されます。たとえば、n = 6の場合: 1〜6の数字を連結したもの: 123456 逆に: 654321 これらを合計すると、777777になります。別の例はn = 11です。 1 2 3 4 5 6 7 8 9 10 11 > 1234567891011 そして 11 10 9 8 7 6 5 4 3 2 1 > 1110987654321 それらを一緒に追加すると、になり2345555545332ます。これはA078262としても知られています。 最短のコードが勝ちます!

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