問題タブ [factorial]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
971 参照

c# - 連続する因子を取得します、c#

私はこの質問を解決する必要がありますが、要因を取得することに固執していますが、私がする必要があるのは...

正の数nは、因数分解があり、iとjがあり、i> 1、j> 1、j = i + 1の場合にのみ、連続因数分解されます。引数が連続因数分解された場合に1を返すisConsecutiveFactoredという名前の関数を記述します。それ以外の場合は0を返します。関数の署名はintisConsectiveFactored(int n)です。

関数のシグネチャはintです。isConsectiveFactored(int n)

nが24の場合、24 = 2 * 3*4および3=2 + 1であるため、1を返します。

nが105の場合、105 = 3 * 5 * 7および5!= 3 + 1および7!= 5 + 1であるため、0を返します。

nが90の場合、90の因数には2と3が含まれ、3 = 2 + 1であるため、1を返します。

これまでのところ、iveは係数を取得できました。つまり、数値が24の場合、iveは2と12を取得できましたが、そこでスタックして空白になりました。

}

誰かがこれで私を助けることができます.....

0 投票する
2 に答える
134 参照

ruby - これらの2つの関数から2つの非常に異なる結果が得られるのはなぜですか

これは、ルビインラインの「ホーム」であるhttp://www.zenspider.com/ZSS/Products/RubyInline/Readme.htmlからコピーされ、コメントに示されているように追加/変更されます。

私がそれを実行すると、私は得ます

ルビーtestfact.rb

ルビーネイティブ階乗:20922789888000

インライン階乗:2004189184

ルビーのバージョンは正しいです。インラインバージョンが何であるかわかりません(正しくないことを除いて)。

私はruby1.8.7(2008-08-11パッチレベル72)[i486-linux]を実行しています。私は次のようにrubyinlineをインストールしました:sudo gem install RubyInline

Cコードで「int」を「long」に変更してみましたが、違いはありませんでした。(まだ明らかでない場合は、私はCプログラマーではありません。)

最後に、引数として12以下で両方を実行すると、どちらも同じ答えが得られることに気付きました。13歳以上では物事がおかしくなります。

TIA

0 投票する
6 に答える
44079 参照

c# - ライブラリ呼び出しを使用してC#で階乗を計算するにはどうすればよいですか?

約 100 までの数の階乗を計算する必要があります。このウィキペディアのベイジアン確率に関するエントリに従って、一連のコイン投げスタイルのデータがランダムかどうかを判断するため。 ご覧のとおり、必要な数式には 3 つの階乗計算が含まれています (ただし、興味深いことに、それらの階乗計算のうち 2 つが 3 つ目の計算に沿って計算されています)。

this question hereを見ましたが、整数はすぐに吹き飛ばされると思います。階乗計算についてよりインテリジェントな関数を作成することもできます (つまり、wiki の例のように 11!/(7!3!) の場合、(11*10*9*8)/ に移動できます)。 3!)、しかし、それを機能させたいという意味で、それは時期尚早の最適化のように思えますが、速度は (まだ) 気にしません。

では、その確率を得るために階乗を計算するために呼び出すことができる優れた C# ライブラリは何ですか? 私は階乗計算に入ることができるすべての素晴らしいことに興味があるわけではありません.私はそれを操作できる方法で結果が欲しいだけです. Math 名前空間には階乗関数がないように見えるため、質問です。

0 投票する
3 に答える
35774 参照

algorithm - 階乗を計算する高速アルゴリズム

階乗を計算するための多くのアルゴリズムを説明しているこのページを見つけました。残念ながら、説明は簡潔であり、アルゴリズムの背後にある基本原理を理解するために、ソース コードの行ごとにふるいにかけようとは思いません。

階乗を計算するためのこれらの (または他の高速な) アルゴリズムのより詳細な説明を教えてくれる人はいますか?

編集: このページでは、素因数分解の方法について説明します。これは、最高のパフォーマンスを発揮するすべての階乗アルゴリズムに共通の手法です。また、Python の優れたサンプル コードも含まれています。著者はバイナリ分割の説明にリンクし、 Journal of Algorithmsの記事(「階乗計算の複雑さについて」) を参照しています。

0 投票する
3 に答える
295 参照

c# - 階乗値を格納するためにC#で小さなキャッシュを実装するための最適な方法は何ですか?

これが私が持っているコードです:

===========================

===========================

数学的に言えば、これは機能します。興味深いことに、たとえば5の階乗が最初に計算された値である場合、キャッシュはこの計算中に2、3、4、および5の階乗を格納します(つまり、すべての「中間」階乗を格納します)。私の場合、同時に複数のFooクラスのインスタンスが存在することはありませんが、この例では、Fooの複数のインスタンスが同時に存在する可能性がある場合もカバーするために、辞書を静的として宣言することにしました。時間。

私の質問は次のとおりです。

  • これは、技術的な観点(スレッドセーフなど)から同じ値の階乗の再計算を回避するための最良の方法ですか?

  • 以前に計算された値を格納するための(静的)クラススコープ変数の必要性を回避する他のアプローチ(たとえば、遅延評価などに関連するもの)はありますか?

すべての提案を歓迎します。

ありがとう、

d。

0 投票する
11 に答える
20295 参照

c++ - すべての桁を表示して、任意に大きな数の階乗を計算します

私は最近、あるインタビューで、任意の大きな数の階乗を計算する方法について説明するよう求められました。答えのすべての桁を取得する方法。

私はさまざまな場所を検索し、いくつかのフォーラムで質問しました。しかし、GMP などのライブラリを使用せずにこれを達成する方法があるかどうかを知りたいです。

ありがとうございました。

0 投票する
10 に答える
9191 参照

c++ - C++ での大規模階乗の計算

これは古典的なプログラミングの問題であることを理解しています。したがって、解決策としてコードを探しているわけではないことを明確にしたいと思いますが、正しい方向へのプッシュに感謝します。私は C++ を学んでおり、学習プロセスの一環として、いくつかのプログラミングの問題に取り組んでいます。10 億の階乗までの数を処理するプログラムを作成しようとしています。明らかに、これらは膨大な数になり、通常の算術演算を使用するには大きすぎます。この種の問題を解決するためにどの方向に進むべきかについての指示をいただければ幸いです。

可能であれば、追加のライブラリを使用せずにこれを解決しようとします

ありがとう

PS - 問題はここにあります http://www.codechef.com/problems/FCTRL


問題を解決するために使用した方法は次のとおりです。これは、以下のコメントを読むことで達成されました。

解決策 -- 数字の 5 は、ゼロで終わる数字の素因数です。したがって、階乗数を 5 で割って再帰的に商を加算すると、階乗結果の後続ゼロの数が得られます。

EG - 126 の末尾のゼロの数! = 31

126/5 = 25 余り 1

25/5 = 5 残り 0

5/5 = 1 余り 0

25 + 5 + 1 = 31

これはどの値でも機能します。商が 5 未満になるまで除算を続けてください。

0 投票する
1 に答える
2436 参照

java - java.bigInteger valueOfはどのように機能しますか?

BigInteger、BigDecimalなどを使用せずに、大きな数に関するプロジェクトを作成しています。すべての基本を実行できましたが、階乗をカウントする機能を追加する必要があります。私のBigNumberはデータをint[]として保存します。

これはBigIntegerを使用したサンプルソリューションですが、実際の数値がないと使用できません。

では、値を数える方法は?最後から最初にintを追加し、10を10倍し、100を100倍にするなどして、それを長く保存しますか?

BigIntegerのソース:http: //developer.classpath.org/doc/java/math/BigInteger-source.html

0 投票する
3 に答える
623 参照

c# - 階乗タスクが誤ってゼロを出力している

プログラムの予行演習で問題が発生しています。私のプログラムが出力に 0 を与える理由がわかりません。これが私のコードです:

0 投票する
4 に答える
734 参照

c# - 階乗値の結果を追加するにはどうすればよいですか?

ここで論理的な問題が発生しています。階乗値の結果を追加したいのですが、追加方法がわかりません。これが私のコードです: