問題タブ [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 投票する
5 に答える
7310 参照

c++ - 階乗再帰関数が通常の階乗関数よりも効率が悪いのはなぜですか?

数値 n の階乗を計算する 2 つの関数があります。「通常の」関数が数値 n の階乗を計算するのに必要な時間が短い理由がわかりません。これは通常の機能です:

そして、これは再帰関数です:

新しい変数を作成しないため、時間がかからず、操作も少なくなります。通常の関数が少し多くのメモリを使用するのは事実ですが、より高速です。

どちらを使用する必要があり、その理由は?

PS: e^x のテイラー級数を計算するために必要だったので、double を使用しています。

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

java - 数字の100の数字の合計を見つけてください!(私のwhileループは停止しません)

私はプロジェクトオイラーの問題20を解決しようとしてきました:

n!n(n 1)... 3 * 2 * 1を意味します。たとえば、10!= 10 * 9 ... 3 * 2 * 1 = 3628800、および数字の10の桁の合計!は3+6 + 2 + 8 + 8 + 0 + 0 = 27です。数字の100の桁の合計を見つけてください!

これは私がこれまでに思いついたものです。このコードですでに正解(648)を取得しましたが、コードが無限ループであるため、少しOCを取得しました。結果がwhileループ内で0になった後、それは停止しませんでした。誰かが私がこれを修正するのを手伝ってもらえますか?

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

function - この短い階乗関数をscalaで最適化する方法は? (50000 個の BigInt の作成)

scalaのバージョンを比較してみた

パイソン版へ

そして、scala バージョンは Python バージョンよりも約 10 倍の時間がかかったことがわかりました。

大きな違いは、python が数値ごとに新しい BigInt オブジェクトを作成する代わりに、ネイティブの long 型を使用できることだと思います。しかし、scala に回避策はありますか?

0 投票する
7 に答える
278 参照

java - 再帰的に 1 を返すゼロ階乗

基本ケースをテストせずに、つまりfor 0 と 1を実行せず1に、呼び出し時にこの再帰メソッドを返すにはどうすればよいですか。0!if-else

基本ケースをチェックしたくありません。これは可能ですか?

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

format - オクターブ 階乗のすべての数を出力します

100のすべての数字を印刷する方法!オクターブで?

オクターブ:1> factorial(100) ans = 9.3326e+157

以下のコマンドは間違った答えを出します:

octave:4> printf("%u\n",factorial(100)) 93326215443947553183793338240612302366006877769275129529769934567734921397913148008797092443225880267680360266584467988186500321788890593731926090238149001216

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

c++ - 再帰を理解する、C++

以下のコードについて、基本ケース (n==0) の戻り値が 0 の場合、関数が常に「0」を返す理由を教えてください。この関数を修正するには、「return 0」を「return 1」に置き換えるだけでよいことはわかっていますが、以下の基本ケースで 0 を返す理由を理解しようとしています。

ご協力いただきありがとうございます

編集:うまくいけば、以下のコードに論理エラーがありません...

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

math - 標準の階乗関数はどのように動作する必要がありますか?

「数値の階乗を見つける方法」をグーグルで検索すると、これについて多くの答えが得られました...

それらの例の1つは...

そしてそれは機能します...しかし、Windows電卓は私を驚かせました:それは10進数にも機能します!!

例: Windows 電卓では、の階乗0.50.886226925...

それは望ましい動作ですか?階乗は非整数に対して定義されていますか?

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

function - 階乗を計算する関数のループ不変条件

次の関数のループ不変条件を正しく識別するのに苦労しています。

x = 1 OR x = y!そのステートメントが前提条件として真であり、事後条件として真であるため、ループ不変条件を特定しました。

たとえば、y = 3の場合、ループの最初の反復でx = 1 * 3になり、3ではなく3になります。たとえば、すべての反復に当てはまるとは限りません。これは6に相当します。

これは私の混乱が本当に私が推測するところです。いくつかの本の記事は、ループ不変条件は、ループの最初またはループ(したがって前提条件)で真に等しくなければならず、ループの終わり(したがって事後条件)でも真でなければならないステートメントであると述べていますが、必ずしもそうする必要はありませんループの途中で真を保持します。

上記の関数の正しいループ不変条件は何ですか?

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

python - リストを使用してPythonで再帰用のスタックを合成しますか?例?

たとえば、これは私の階乗関数です。

ただし、nが高すぎるとクラッシュします。スタックエミュレーションを使用して、これとまったく同じ関数をエミュレートしたいと思います。どうすればこのようなことができますか?末尾再帰でない場合はどうなりますか?説明を見つけるのに苦労しています。

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

c++ - 並行性::組み合わせ可能 / c++

これは任意の数の階乗を計算するコードです:

私に説明してもらえますか:

    • とはどういう()->意味ですか? 私()はファンクターだと思いますが、どのクラスのですか?なぜそこにあるの->ですか?
    • は何1LLですか?