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

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

2
ポリゴンの領域を見つける
s1, s2, s3... s_n円に内接するnゴンの連続する辺の長さを考慮して、その面積を求めます。ポリゴンが存在すると想定できます。さらに、ポリゴンは凸型で自己交差せず、一意性を保証するのに十分です。この課題を具体的に解決するビルトイン、およびサーカム半径またはサーカムセンターを計算するビルトイン関数は禁止されています(これは、このチャレンジの以前のバージョンとは異なります)。 入力:循環ポリゴンの辺の長さ。関数や標準入力などのパラメータとして使用できます。 出力:ポリゴンの面積。 答えは小数点以下6桁まで正確で、適切なラップトップでは20秒以内に実行する必要があります。 これはコードゴルフなので、最短のコードが勝ちます! 特定のテストケース: [3, 4, 5] --> 6 [3, 4, 6] --> 5.332682251925386 [3, 4, 6, 7] --> 22.44994432064365 [5, 5, 5, 5] --> 25 [6, 6, 6, 6, 6] --> 61.93718642120281 [6.974973020933265, 2.2393294197257387, 5.158285083300981, 1.4845682771595603, 3.5957940796134173] --> 21.958390804292847 [7.353566082457831, 12.271766915518073, 8.453884922273897, 9.879017670784675, 9.493366404245332, …

10
マトリックスパワーを見つける
問題 n 乗した行列の結果を計算できるプログラムまたは関数を作成します。コードは任意の正方行列Aと非負の整数nを取り、値A nの行列を返します。 制限事項 行列のべき乗と行列の積を計算する組み込み関数は許可されていません。 コードゴルフの残りの標準ルールが適用されます。 説明 正方行列Aが与えられた場合、A n = AA⋯A(Aとそれ自身のn回の繰り返し行列積)の値。nが正の場合、前述の標準が使用されます。nがゼロの場合、同じ次数のAの単位行列が結果になります。 ゴール これはコードゴルフであり、最も短いコードが優先されます。 テストケース ここで、Aは入力行列、nは入力整数、rは出力行列で、r = A nです。 n = 0 A = 62 72 10 34 r = 1 0 0 1 n = 1 A = 23 61 47 81 11 60 42 9 0 r = …

2
タクシー番号を教えて
タクシー番号またはOEIS A011541は、連続するnについて、2つの正の3乗整数のn個の異なる合計として表すことができる最小数です。 n番目のタクシー番号を印刷する必要があります。これは理論的にはどのnでも機能するはずです。 ただし、これまでに検出されたタクシー番号は6つだけなので、nが6を超えることはありません2, 1729, 87539319, 6963472309248, 48988659276962496, 24153319581254312065344。番号はです。 プログラムは理論的に任意のnに対して機能する必要があるため、これらの変数をハードコーディングすることはできません。

3
わら世論調査に最大の混乱を引き起こす
環境 わら世論調査は、単純な/非公式の世論調査の作成を目的としたウェブサイトです。オプションのリストが提供され、ユーザーは選択肢を選択でき、投票が集計されます。わら投票には2つの非常に重要な機能があります。 投票する前に現在の結果を見ることができます 多くの場合、複数のオプションを選択できます。これは、各オプションに1つずつ、複数回投票した場合と同じように扱われます。 わら世論調査を作るよりも楽しいことの1つは、結果をいじることです。中断には主に2つのタイプがあります。 すべてのオプションに投票する単純な混乱 効果を最大化するために投票するオプションを戦略的に選択する高度な混乱。 この課題では、高度な混乱のためのプログラムを作成します。 数学 数学的に単純に言えば、投票のエントロピーが高いほど、投票はより混乱していると言えます。 つまり、単一のオプションがすべての投票を持つ投票はまったく中断されませんが、すべてのオプションが同じ数の投票を持つ投票は最大に中断されます(これが最終的な目標です)。 数値リストのエントロピーは、[x1, x2, ..., xn]ウィキペディアの次の方程式で与えられます。P(xi)の確率xiですxi / total_num_of_votes。オプションがこれまでに投票数0の場合、そのオプションは合計に含まれません(を避けるためlog(0))。私たちの目的では、対数は任意の底に置くことができます。 例として、のエントロピー[3,2,1,1]は1.277、底eを使用しておよそです。 次のステップは、エントロピーの最大の増加につながる投票パターンを決定することです。オプションの任意のサブセットに投票できるので、たとえば、私の投票はになる可能性があります[1,0,1,0]。これらが私の投票だった場合、最終的な集計は[4,2,2,1]です。エントロピーを再計算するとが得られ1.273、エントロピーが減少します。これは、これが破壊の恐ろしい試みであることを意味します。その他のオプションは次のとおりです。 don't vote [3,2,1,1] -> 1.277 vote for everything [4,3,2,2] -> 1.342 vote for the 1s [3,2,2,2] -> 1.369 vote for the 2 and 1s [3,3,2,2] -> 1.366 このことから、エントロピーが最大に増加するため、最適な投票パターンであると結論付けられ[0,0,1,1]ます。 入力 入力は、増加しない非負の整数の空でないリストです。例としては[3,3,2,1,0,0]、[123,23,1]さえ、または[4]。妥当な形式であれば何でも許容されます。 出力 …
9 code-golf  math 

6
クロネッカー記号を計算する
こことここに関連リンクがありますが、ここに短いバージョンがあります: 2つの整数の入力がaありb、負の無限大と無限大の間にあります(必要な場合は範囲​​を制限できますが、関数は負の入力を受け入れる必要があります)。 クロネッカー記号の定義 (a|b)入力aおよびb場所のクロネッカーシンボルを返す必要があります (a|b) = (a|p_1)^e_1 * (a|p_2)^e_2 * ... * (a|p_n)^e_n ここでb = p_1^e_1 * p_2^e_2 * ... * p_n^e_n、およびp_iおよびe_iは、の素因数分解における素数と指数ですb。 ここで定義されている奇数の素数のp場合。(a|p)=a^((p-1)/2) (mod p) の場合b == 2、(n|2)={0 for n even; 1 for n odd, n=+/-1 (mod 8); -1 for n odd, n=+/-3 (mod 8) の場合b == -1、(n|-1)={-1 for n<0; …

9
ラブテスターコードゴルフ
2つの名前に共通する文字の総数を数え、その長さの積を見つけるプログラムを作成し、「愛のテスター」として機能します。 条件:1:1の回答(3つのうち3つなど)の出力が得られない場合があります。 入力 STDINまたは最も近い代替からの2つの名前。 出力 x大文字と小文字を区別せずに、2つの名前に共通する文字の総数として計算します。y名前の長さの積として計算します。次に、STDOUTまたは最も近い代替物への出力は Name1 and Name2 have x out of y chances of love. 例 入力: Wesley Polly 出力: Wesley and Polly have 2 out of 30 chances of love. ウェズリーとポリーには2文字の共通のがyありl、長さの積は6 * 5 = 30です。 入力: Bill Jill 出力: Bill and Jill have 3 out of 16 …

11
特定のLCMとGCDを持つ数値のペアを見つける
私は私の友人と数学の質問に取り組んでいました、そして私たちは答えを見つけるスクリプトを書くことにしました。元の質問は次のとおりです。 2つの自然数の差は2010であり、それらの最大公分母は、最小公倍数より2014倍小さい。考えられるすべてのソリューションを見つけます。 私たちはプログラムを互いに独立して書き始め、それが機能するようになったとき、管理できる最小のバイト数を取得するためにプログラムを作成することに決めました。結局、この素晴らしいコード行は驚異的な89バイトになりました。 from fractions import*;print[i for i in range(10**6)if i*(i+2010)/gcd(i,i+2010)**2==2014] 最初の100万のiを列挙した短いコードをなんとか書き込めるかどうかを確認したかったのです。競争するのに十分な勇気があるなら、あなたは好きな言語を使うことができますが、Python 2があなたのコードを私たちのものと比較できるようにしたいと思います。 通常のルールが適用され、最短バイトが優先されます。標準コードのゴルフ抜け穴が適用されます。面白くない標準の「抜け穴」 楽しんで!
9 code-golf  math 

3
シーケンスの共通部分を印刷する
シーケンス 1からまで番号が付けられた4つの番号シーケンスが与えられ4ます。 OEIS0自然数が2進数でリストされている場合のの場所。シーケンスを計算する方法の例を次に示します。 0,1,10,11,100,101,110,111 ^ ^ ^^ ^ ^ 0 3 78 10 14 シーケンスの開始は次のようになります。 0, 3, 7, 8, 10, 14, 19, 20, 21, 23, 24, 27, 29, 31, 36, 37, 40, 45, 51, ... OEISこのシーケンスには、最初の自然数が含まれ、次の2つがスキップされ、次に次の3つが含まれ、次に次の4つがスキップされて続行されます。 0, 3, 4, 5, 10, 11, 12, 13, 14, 21, 22, 23, 24, 25, …

3
1つの立方体をいくつの立方体にカットできるかを計算します
残りの部分なしで、より小さな立方体にカットできる立方体を想像してみてください。 立方体をいくつの立方体に切り取ることができるかを調べます。 たとえば、立方体は8、27(明らかに整数の3乗)および20(19の小さい立方体に他の立方体の8倍のサイズを加えたもの、画像を参照)に切り分けることができます。 ここでいくつかのヘルプを参照してください:http : //mathworld.wolfram.com/CubeDissection.html プログラムは、整数n(0 <= n <= 1 000)を入力として受け取りn、キューブをその数のキューブにカットできるように、以下のすべての数値を出力する必要があります。立方体を1つの立方体にカットでき、0の立方体にカットできないとします。 使用できるのは、64ビット以下のサイズの(配列、オブジェクトなどではなく)整数データ型のみです。最短のコードが勝ちます。

6
順列番号付け
チャレンジ n個の整数の特定のセットについて、辞書式インデックスを出力するプログラムを記述します。 ルール 入力は、スペースで区切られた一意の非負の整数のセットでなければなりません。 順列の辞書式インデックス(範囲0〜n!-1を含む)を出力する必要があります。 順列ライブラリまたは順列ビルトインは使用できません。 インデックスの検索に役立つように、入力の順列のセットまたは順列のサブセットを生成することはできません。 また、指定された順列を次または前の(辞書式に)順列にインクリメントまたはデクリメントすることもできません。 階乗を使用せずにこれを完了する方法が見つかった場合、ボーナスポイント(-10バイト)。 n = 100の場合、実行時間は1分未満である必要があります バイト数による最短コードの勝ち 火曜日に選ばれた勝者(2014年7月22日) 順列の詳細 http://www.monkeyphysics.com/articles/read/26/numbering_permutations.html 順列グループ操作 http://lin-ear-th-inking.blogspot.com/2012/11/enumerating-permutations-using.html 例 0 1 2 --> 0 0 2 1 --> 1 1 0 2 --> 2 1 2 0 --> 3 2 0 1 --> 4 2 1 0 --> 5 0 …

24
Z_nのグループテーブルを生成する
グループは数学で広く使用されている構造であり、コンピュータサイエンスでの用途があります。このコードの課題は、追加グループZ nのグループテーブルを作成するための文字数が最も少ないことです。 テーブルの構成方法:Z nの場合、要素は{0、1、2、...、n-1}です。テーブルにはn行とn列があります。テーブルのij番目のエントリの場合、値はi + j mod nです。たとえば、Z 3では、1〜2番目のエントリ(開始行/列を1と数えると2行目、3列目)は(1 + 2)%3 = 0です(サンプル出力を参照)。 入力:正の整数、n 出力:上記のように構成され、サンプル出力で以下に示すように表示される、Z nのテキスト表示である表。スペースはオプションです 入力例: 3 出力例: 0 1 2 1 2 0 2 0 1 入力例: 5 出力例: 0 1 2 3 4 1 2 3 4 0 2 3 4 0 1 3 4 0 1 …

16
結果が「hello world」である数学関数を記述します[終了]
閉まっている。この質問はトピックから外れています。現在、回答を受け付けていません。 この質問を改善してみませんか? 質問を更新して、 Code Golf Stack Exchangeのトピックとなるようにします。 3年前休業。 「hello world」の整数表現となる数学関数を記述します たとえば、16進68656c6c6f20776f726c64数の「hello world」は、「hello world」を表す数値を生成する数学的なプログラムを作成することを目的としています。 以下は、pythonを使用した可能な解決策の例です。 print(2*2*3*59*61*97*416510539*72330832279)==int("68656c6c6f20776f726c64", 16) べき乗、級数、階乗、その他の数学演算など、あらゆるタイプの数学方程式を使用できます。 ルール: 「hello world」を整数としてエンコード/表現する独自の方法を選択できます。ハッシュ関数も許可されています 数学ライブラリ(numpy、GMPなど)が許可されています。 意図は数学の部分に焦点を当てることです

1
行列チェーンの乗算を最適化する
この課題は、いくつかの行列の積に対して最も効率的な乗算次数を計算することです。 行列のサイズは、標準入力の1行で指定されます。総乗算コストを最小限に抑えるには、乗算を実行する順序を示す整数のリストを標準出力に出力する必要があります。 例1 入力 5x6 6x12 12x100 100x7 出力 3 2 1 入力行は、スペースで区切られた行列サイズのリストであり、それぞれの行は行の数であり、その後に、x列の数が続きます。この例では、一緒に乗算する4つの行列があります(したがって、合計3つの乗算)。行列の乗算は結合的であるため、それらは任意の順序で実行できます。 出力は、総コストを最小限に抑えるために乗算を実行する順序でなければなりません。これは、次に実行する乗算の​​インデックスを表す整数のスペース区切りリストである必要があります。N行列の場合、このリストには1からN-1までの数値が含まれている必要があります。たとえば、出力3 2 1は、12x100 * 100x7最初に乗算を実行し、次に6x12 * 12x7乗算(2番目の行列に前のステップの結果を5x6 * 6x7掛けたもの)、最後に結果の乗算を実行する必要があることを意味します。 行列の乗算は常に互換性があります。つまり、行列の列数は後続の行列の行数と一致します。二つの行列の乗算のコストと想定しAxB * BxCているがA*B*C。 コードは最大100の行列のリストを処理する必要があり、各次元は最大999であり、妥当な時間内に処理する必要があります。 例2 入力 5x10 10x5 5x15 15x5 出力 1 3 2 または 3 1 2 例3 入力 22x11 11x78 78x123 123x666 666x35 35x97 97x111 111x20 …
9 code-golf  math 

3
{1,2、…、n}のトポロジの数を計算します
仕事 nパラメーター/入力として受け取り、セットのトポロジーの数(以下に示す)を出力/返す関数/プログラムを記述します{1,2,...,n}。 トポロジーの定義 xは任意の有限集合を、およびのサブセットであるT、と仮定するパワーセット Xの(すなわちXのサブセットを含むセット)は、満足これらの条件を。 Xと空のセットはTにあります。 2組のU及びVがTである場合、組合それら二組のはT.であります 2つのセットUとVがTにある場合、これら2つのセットの共通部分はTにあります。 ... TはXのトポロジと呼ばれます。 仕様書 プログラムは次のいずれかです。 nパラメータとして受け取る関数 または入力するプログラム n そして、セットの(個別の)トポロジの数を出力または返します{1,2,...,n}。 n 11未満の任意の非負整数(もちろん、プログラムが11より大きいnを処理する場合は問題ありません)であり、出力は正の整数です。 プログラムでは、トポロジの数を直接計算するライブラリ関数やネイティブ関数を使用しないでください。 入力例(nの値): 7 出力/戻りの例: 9535241 ここまたはここで戻り値を確認できます。 もちろん、最短のコードが優先されます。 勝者は決まりますが、短いコードが表示された場合は勝者を変更することがあります。

2
浮動小数点なしの浮動小数点加算!
あなたの仕事は、任意の言語で、小数または浮動小数点の数学を使用せずに 2つの浮動小数点数を加算するプログラムを記述することです。整数演算が許可されています。 フォーマット 数値の形式は、IEEE 754 32ビットfloatのバイナリ値を表す1と0を含む文字列です。たとえば、数値2.54は文字列 "01000000001000101000111101011100"で表されます。 ゴール プログラムは、上記の形式で2つの数値を入力し、それらを加算して、同じ形式で結果を出力する必要があります。どの言語でも最も短い答えが勝ちます! ルール 浮動小数点、10進数、または整数以外のあらゆる種類の数学関数は絶対に許可されていません。 入力はクリーン(つまり、1と0のみを含む)であると想定できます。 入力は数値であり、Inf、-Inf、NaNまたは非正規ではないと想定できます。ただし、結果が最大値より大きいか最小値より小さい場合は、それぞれInfと-Infを返す必要があります。非正規(非正規)の結果は0にフラッシュされることがあります。 丸めを適切に処理する必要はありません。結果が少しずれていても心配しないでください。 テスト プログラムをテストするには、このツールを使用して、10進数と浮動小数点の2進数を変換できます。 1000 + 0.5 = 1000.5 01000100011110100000000000000000 + 00111111000000000000000000000000 = 01000100011110100010000000000000 float.MaxValue + float.MaxValue =無限大 01111111011111111111111111111111 + 01111111011111111111111111111111 = 01111111100000000000000000000000 321.123 + -123.321 = 197.802 01000011101000001000111110111110 + 11000010111101101010010001011010= 01000011010001011100110101010000 幸運を!

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