Knuthの基本的なアルゴリズムからのこのステートメントは現在も適用できますか?[閉まっている]


10

ある意味で10!(10階乗)は、計算するのが実用的なものとそうでないものとの間のおおよその境界線を表します。

これは、KnuthのTAOCP Fundamental Algorithms book(1973)からのものです。これはまだ有効なステートメントですか、それとも計算能力が古くなっていますか?


それがこれまで真実だったという意味で、私にはわかりません— 10!ほんの数百万です。直接理解するには大きすぎますが、ペンや紙を使っても計算するのはそれほど難しくありません。
ホブス2013年

11
@hobbs 10 の値の計算についてではなく、約10での計算についてです!物事。つまり、メソッドが約10以上を必要とする場合です。<作業単位>、新しい方法を見つける時が来ました。
AakashM 2013年

回答:


21

それはまだ合理的です。

10!= 3,628,880。その後の各ステップは、少なくとも1桁増加します。

(fact 10)
3628800

(fact 11)
39916800 -- about 40 million

(fact 12)
479001600 -- almost 500 million

(fact 13.0)
6227020800.0 -- over 6 billion

間もなく、あなたは議会の支出数について話しています。


15

良い教授は幸運にも私たちと一緒にいて、決定的な答えを確認する最良の方法は彼を書いて彼の意見を尋ねることです。

とはいえ、階乗が表す関数ほど絶対数は重要ではないと思います。Knuthが当時それを実現していたかどうかにかかわらず、彼がそのステートメントで確立したモデルは、過去数十年で計算するのに実際的であったものを振り返り、その後のモデルを進めるのに非常に役立ちます。

1973年、データを生成、保存、転送、処理する能力は、10を作成するのに十分な制限がありました。撮影する合理的な「遠端」の図。Knuth(またはそのほかの誰か)が、それ以来私たちが享受してきたほとんどすべての指数関数的な改善を予測できたのではないかと思いますが、階乗は実際の数値にうまく適合しています。

私はこれを直接目にしました。10年前、私は約5,000万のレコードを保存および処理する方法を開発するプロジェクトに取り組み、同時にさらに1桁以上の方法を考えていました。10年後、私は同様のプロジェクトを行っています。私の目標数値はすべて階乗的に変化しました:

                      2002           2012
Small Test .......  9! / 362K ... 10! / 3.6M
Large Test ....... 10! / 3.6M ... 11! /  40M
Capacity Goal .... 11! /  40M ... 12! / 479M
Capacity Dream ... 12! / 479M ... 13! / 6.3B

両方のプロジェクトを行っているグループは、それらよりもはるかに丸い数字を取り囲んでいましたが、階乗はそれほど遠くないです。世界のGoogleとFacebookには、私の現在のプロジェクトが夢見ているようなことを実行するためのリソースがありますが、私が座っているところから13!10年以内に、それほど遠くに届かないとは思えません。

私は1992年に大量のデータについては考えていませんでしたが、後から考えて、おそらく1つの階乗より少ないすべてのものを調べていたでしょう。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.