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

algorithm - 実数の逆階乗を計算するには?

実数の逆階乗を計算する方法はありますか?

例えば ​​-1.5 ! = 1.32934039

1.5値を持っている場合、元に戻す方法はあります1.32934039か?

やっています

http://www.wolframalpha.com/input/?i=Gamma^(-1)[1.32934039]

しかし、それは失敗です。

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

lambda - 内部再帰プロシージャの名前付けに「let」が機能しないのはなぜですか?

階乗を計算する関数の次の実装を考えてみましょう: [1]

let内部定義を使用して書き直そうとしました:

その時点でエラーはありませんdefineが、実行結果は次のようになります。

letバージョンを機能させるにはどうすればよいですか?

スキームのバージョンは SISC v 1.16.6 です

[1] SICP http://mitpress.mit.edu/sicp/full-text/book/book-ZH-11.html#%_sec_1.2.1factorialのセクション 1.2.1 の反復バージョンに基づく

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

c++ - アセンブリで64ビットの結果を使用した最速の階乗実装

これは宿題ではなく、私が思っていることです。したがって、ストレートコンピューティングの階乗は正確に高速ではありません。メモ化は役立ちますが、結果が32ビットまたは64ビットに収まる場合、階乗はと0を介した入力に対してのみ機能1220ます。したがって...ルックアップテーブルを使用することもできます。

したがって、インラインアセンブリを使用するインラインC ++因数分解関数が必要であり、結果として32ビットまたは64ビットの符号なし整数が期待されるとします。入力が負であるか、オーバーフローを引き起こすのに十分な大きさである場合、出力は0である必要があります。これをアセンブリで実行して、消費するサイクルを最小限に抑えるにはどうすればよいでしょうか。このコードは、64ビットのIntel/AMDアーキテクチャで実行されます。可能であれば、私は最悪のシナリオを改善することに興味があるので20!、計算にそれほど長くはかからないはずです0!-うまくいけば、バイナリ検索アプローチがあります。うまくいけば、それを行うための巧妙なトリックがありif (n == 0 || n == 1) { return 1; }ます。また、出力が32ビットである必要がある場合、アセンブリ命令にはコードとデータの両方を含めることができると思います。私のアセンブリの知識は弱いです。質問があまり意味をなさない場合は、私に知らせてください。

C ++で関数を使用できると便利ですが、より現実的な問題になります。たとえば、関数の呼び出しにコストがかかる場合、アセンブリの本体で1〜2クロックサイクルを節約しようとしてもあまり役に立ちません。

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

c - 階乗-C(Linux)

このプログラムを実行するためのより効率的な代替案を提案してください

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

regex - 再演習: 階乗

これは、StackOverlow の実験的な新機能です。さまざまな古典的な問題を解決することで、正規表現の筋肉を鍛えます。正しい答えは 1 つではありません。実際、正しい答えが教育的価値を提供する限り、できるだけ多くの正しい答えを収集する必要があります。すべてのフレーバーが受け入れられますが、明確に文書化してください。できるだけ実用的なテストケース/スニペットを提供して、パターンが「機能する」ことを実証します。

正規表現を使用して、数値xが階乗であるかどうかをどのように確認できますか?

おまけ: パターンがx = nと判断できる場合! 、 nも見つけることができますか?

0 投票する
5 に答える
6328 参照

c - Cの数値の順列

繰り返し番号を含む5つのグループで、番号のセットのすべての順列を一覧表示するC関数を作成しようとしています。

したがって、数値セットのすべての順列を取得してそれらを破棄する関数を作成するのは簡単ですが、特定のグループサイズにマップされているため、やや行き詰まっています。

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

c - xの階乗を計算する方法

xで示される整数の値を取得する方法x!は、1からxまでの数値の積です。

例:5! 1x2x3x4x5 = 120.

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

java - Java: 単純な再帰関数が 1 しか返さない

奇妙なことに、これは私の最初の Java アプリケーションです。任意精度の階乗関数を実装したかったのですが、再帰関数は問題なく実行できましたが、反復関数は単純に "1" を出力し、それ以外は何も出力しませんでした。 、どこで間違ったのかわかりません。ここで明らかなことはありますか?

BigInteger パッケージを使用していることに気付かなかった場合は、奇妙な文章を参照してください..

また、C のように、毎回「BigInteger」と入力する必要がないように、typedef に似たようなことはできますか?

編集:私はretとして設定nするつもりだったと思います。

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

c# - ファイルの配列のすべての一意の組み合わせを再帰的に生成する必要がある

私は調査し、同様のリクエストをたくさん見つけましが、私が必要としていたものは何もありませんでした.

これが私の問題です。私は C# で作業していますが、要素数が不明な FileInfo[] 配列があります。

そして、ファイルを繰り返さずに、これらのファイルの可能なすべての並べ替えの組み合わせのリストを生成する必要があります。

したがって、私の結果の一部は次のようになります (例はコード形式ではありません)。

などなど、ありとあらゆる組み合わせを思いつくまで

したがって、結果の総数は、配列内の要素数の階乗になるはずです。この例では、9 つ​​の要素があるため、9*8*7*6*5*4*3*2*1=362,880 通りの組み合わせが可能です。

私はこれを数日間いじっていますが、それについて頭を悩ませることはできません. 特にコード例については、どんな助けでも大歓迎です!

ありがとう!

0 投票する
9 に答える
1250 参照

c# - C#: 大量のファイルを DVD にできるだけ効率的に収めるコード

ファイルのリスト (大きいものと小さいもの) を取得し、それらを DVD (または CD など) にできるだけ効率的に収めるアプリケーションを作成する必要があります。このアプリケーションの全体的なポイントは、2 番目のディスクに移動する前に 1 番目のディスクをできるだけ使い果たし、3 番目のディスクに移動する前に 2 番目のディスクをできるだけいっぱいにする、などです。

(注: アプリケーションは、DVD への実際の書き込みを行う必要はありません。可能な限り最適なものを見つけ出す必要があるだけです)。

最初は、ファイルの順列を生成し、各組み合わせをチェックして最適なものを確認することで、良いゲームプランがあると思いました. (これに関する私のリクエストは、こちらで見つけることができます)

しかし、ファイルが多ければ多いほど、時間がかかります...指数関数的に。そのため、これを達成する最善の方法について意見を求めました。

何か案は?そして、いつものように、C# コードは常に高く評価されています。