問題タブ [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.
c++ - 階乗再帰関数が通常の階乗関数よりも効率が悪いのはなぜですか?
数値 n の階乗を計算する 2 つの関数があります。「通常の」関数が数値 n の階乗を計算するのに必要な時間が短い理由がわかりません。これは通常の機能です:
そして、これは再帰関数です:
新しい変数を作成しないため、時間がかからず、操作も少なくなります。通常の関数が少し多くのメモリを使用するのは事実ですが、より高速です。
どちらを使用する必要があり、その理由は?
PS: e^x のテイラー級数を計算するために必要だったので、double を使用しています。
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になった後、それは停止しませんでした。誰かが私がこれを修正するのを手伝ってもらえますか?
function - この短い階乗関数をscalaで最適化する方法は? (50000 個の BigInt の作成)
scalaのバージョンを比較してみた
パイソン版へ
そして、scala バージョンは Python バージョンよりも約 10 倍の時間がかかったことがわかりました。
大きな違いは、python が数値ごとに新しい BigInt オブジェクトを作成する代わりに、ネイティブの long 型を使用できることだと思います。しかし、scala に回避策はありますか?
java - 再帰的に 1 を返すゼロ階乗
基本ケースをテストせずに、つまりfor 0 と 1を実行せず1
に、呼び出し時にこの再帰メソッドを返すにはどうすればよいですか。0!
if-else
基本ケースをチェックしたくありません。これは可能ですか?
format - オクターブ 階乗のすべての数を出力します
100のすべての数字を印刷する方法!オクターブで?
オクターブ:1> factorial(100) ans = 9.3326e+157
以下のコマンドは間違った答えを出します:
octave:4> printf("%u\n",factorial(100)) 93326215443947553183793338240612302366006877769275129529769934567734921397913148008797092443225880267680360266584467988186500321788890593731926090238149001216
c++ - 再帰を理解する、C++
以下のコードについて、基本ケース (n==0) の戻り値が 0 の場合、関数が常に「0」を返す理由を教えてください。この関数を修正するには、「return 0」を「return 1」に置き換えるだけでよいことはわかっていますが、以下の基本ケースで 0 を返す理由を理解しようとしています。
ご協力いただきありがとうございます
編集:うまくいけば、以下のコードに論理エラーがありません...
math - 標準の階乗関数はどのように動作する必要がありますか?
「数値の階乗を見つける方法」をグーグルで検索すると、これについて多くの答えが得られました...
それらの例の1つは...
そしてそれは機能します...しかし、Windows電卓は私を驚かせました:それは10進数にも機能します!!
例: Windows 電卓では、の階乗0.5
は0.886226925
...
それは望ましい動作ですか?階乗は非整数に対して定義されていますか?
function - 階乗を計算する関数のループ不変条件
次の関数のループ不変条件を正しく識別するのに苦労しています。
x = 1 OR x = y!
そのステートメントが前提条件として真であり、事後条件として真であるため、ループ不変条件を特定しました。
たとえば、y = 3の場合、ループの最初の反復でx = 1 * 3になり、3ではなく3になります。たとえば、すべての反復に当てはまるとは限りません。これは6に相当します。
これは私の混乱が本当に私が推測するところです。いくつかの本の記事は、ループ不変条件は、ループの最初またはループ(したがって前提条件)で真に等しくなければならず、ループの終わり(したがって事後条件)でも真でなければならないステートメントであると述べていますが、必ずしもそうする必要はありませんループの途中で真を保持します。
上記の関数の正しいループ不変条件は何ですか?
python - リストを使用してPythonで再帰用のスタックを合成しますか?例?
たとえば、これは私の階乗関数です。
ただし、nが高すぎるとクラッシュします。スタックエミュレーションを使用して、これとまったく同じ関数をエミュレートしたいと思います。どうすればこのようなことができますか?末尾再帰でない場合はどうなりますか?説明を見つけるのに苦労しています。
c++ - 並行性::組み合わせ可能 / c++
これは任意の数の階乗を計算するコードです:
私に説明してもらえますか:
- とはどういう
()->
意味ですか? 私()
はファンクターだと思いますが、どのクラスのですか?なぜそこにあるの->
ですか?
- とはどういう
- は何
1LL
ですか?
- は何