問題タブ [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.
algorithm - 実数の逆階乗を計算するには?
実数の逆階乗を計算する方法はありますか?
例えば -1.5 ! = 1.32934039
1.5
値を持っている場合、元に戻す方法はあります1.32934039
か?
やっています
http://www.wolframalpha.com/input/?i=Gamma^(-1)[1.32934039]
しかし、それは失敗です。
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 の反復バージョンに基づく
c++ - アセンブリで64ビットの結果を使用した最速の階乗実装
これは宿題ではなく、私が思っていることです。したがって、ストレートコンピューティングの階乗は正確に高速ではありません。メモ化は役立ちますが、結果が32ビットまたは64ビットに収まる場合、階乗はと0
を介した入力に対してのみ機能12
し20
ます。したがって...ルックアップテーブルを使用することもできます。
したがって、インラインアセンブリを使用するインラインC ++因数分解関数が必要であり、結果として32ビットまたは64ビットの符号なし整数が期待されるとします。入力が負であるか、オーバーフローを引き起こすのに十分な大きさである場合、出力は0である必要があります。これをアセンブリで実行して、消費するサイクルを最小限に抑えるにはどうすればよいでしょうか。このコードは、64ビットのIntel/AMDアーキテクチャで実行されます。可能であれば、私は最悪のシナリオを改善することに興味があるので20!
、計算にそれほど長くはかからないはずです0!
-うまくいけば、バイナリ検索アプローチがあります。うまくいけば、それを行うための巧妙なトリックがありif (n == 0 || n == 1) { return 1; }
ます。また、出力が32ビットである必要がある場合、アセンブリ命令にはコードとデータの両方を含めることができると思います。私のアセンブリの知識は弱いです。質問があまり意味をなさない場合は、私に知らせてください。
C ++で関数を使用できると便利ですが、より現実的な問題になります。たとえば、関数の呼び出しにコストがかかる場合、アセンブリの本体で1〜2クロックサイクルを節約しようとしてもあまり役に立ちません。
c - 階乗-C(Linux)
このプログラムを実行するためのより効率的な代替案を提案してください
regex - 再演習: 階乗
これは、StackOverlow の実験的な新機能です。さまざまな古典的な問題を解決することで、正規表現の筋肉を鍛えます。正しい答えは 1 つではありません。実際、正しい答えが教育的価値を提供する限り、できるだけ多くの正しい答えを収集する必要があります。すべてのフレーバーが受け入れられますが、明確に文書化してください。できるだけ実用的なテストケース/スニペットを提供して、パターンが「機能する」ことを実証します。
正規表現を使用して、数値xが階乗であるかどうかをどのように確認できますか?
おまけ: パターンがx = nと判断できる場合! 、 nも見つけることができますか?
c - Cの数値の順列
繰り返し番号を含む5つのグループで、番号のセットのすべての順列を一覧表示するC関数を作成しようとしています。
したがって、数値セットのすべての順列を取得してそれらを破棄する関数を作成するのは簡単ですが、特定のグループサイズにマップされているため、やや行き詰まっています。
c - xの階乗を計算する方法
x
で示される整数の値を取得する方法x!
は、1からxまでの数値の積です。
例:5! 1x2x3x4x5 = 120.
java - Java: 単純な再帰関数が 1 しか返さない
奇妙なことに、これは私の最初の Java アプリケーションです。任意精度の階乗関数を実装したかったのですが、再帰関数は問題なく実行できましたが、反復関数は単純に "1" を出力し、それ以外は何も出力しませんでした。 、どこで間違ったのかわかりません。ここで明らかなことはありますか?
BigInteger パッケージを使用していることに気付かなかった場合は、奇妙な文章を参照してください..
また、C のように、毎回「BigInteger」と入力する必要がないように、typedef に似たようなことはできますか?
編集:私はret
として設定n
するつもりだったと思います。
c# - ファイルの配列のすべての一意の組み合わせを再帰的に生成する必要がある
私は調査し、同様のリクエストをたくさん見つけましたが、私が必要としていたものは何もありませんでした.
これが私の問題です。私は C# で作業していますが、要素数が不明な FileInfo[] 配列があります。
そして、ファイルを繰り返さずに、これらのファイルの可能なすべての並べ替えの組み合わせのリストを生成する必要があります。
したがって、私の結果の一部は次のようになります (例はコード形式ではありません)。
などなど、ありとあらゆる組み合わせを思いつくまで
したがって、結果の総数は、配列内の要素数の階乗になるはずです。この例では、9 つの要素があるため、9*8*7*6*5*4*3*2*1=362,880 通りの組み合わせが可能です。
私はこれを数日間いじっていますが、それについて頭を悩ませることはできません. 特にコード例については、どんな助けでも大歓迎です!
ありがとう!
c# - C#: 大量のファイルを DVD にできるだけ効率的に収めるコード
ファイルのリスト (大きいものと小さいもの) を取得し、それらを DVD (または CD など) にできるだけ効率的に収めるアプリケーションを作成する必要があります。このアプリケーションの全体的なポイントは、2 番目のディスクに移動する前に 1 番目のディスクをできるだけ使い果たし、3 番目のディスクに移動する前に 2 番目のディスクをできるだけいっぱいにする、などです。
(注: アプリケーションは、DVD への実際の書き込みを行う必要はありません。可能な限り最適なものを見つけ出す必要があるだけです)。
最初は、ファイルの順列を生成し、各組み合わせをチェックして最適なものを確認することで、良いゲームプランがあると思いました. (これに関する私のリクエストは、こちらで見つけることができます)
しかし、ファイルが多ければ多いほど、時間がかかります...指数関数的に。そのため、これを達成する最善の方法について意見を求めました。
何か案は?そして、いつものように、C# コードは常に高く評価されています。