GNU factorコマンドの実用的な使用法はありますか?


17

GNU Coreutilsを調べてみると、これfactorまで気付かなかったコマンドを見つけました。

マニュアルページを読む:

指定された各整数NUMBERの素因数を出力します。コマンドラインで何も指定されていない場合は、標準入力から読み取ります。

の実用的な用途はありfactorますか、それとも単なるデモンストレーション/玩具パッケージですか?

回答:


17

ウィキペディア、「Factor(Unix)」の興味深いテイク:

factorは、1974年に第5版Research Unixに「ユーザー管理」ユーティリティ(マニュアルのセクション6)として初めて登場しました。1979年の第7版では、マニュアルのメインの「コマンド」セクションに移動しました(セクション1)。そこから、factorユーティリティは、商用UnixおよびBSDを含む、Unixの他のすべてのバリアントにコピーされました。Unixのいくつかの亜種では、深刻なユーティリティというよりも「ゲーム」として分類されているため、セクション6で文書化されています。

そのため、一部のユーザーは素因数をいじり、素因数を書きたいと思ったように思われます。一度存在すると、おそらくそれを後続のUnixバージョンにコマンドとして含めない正当な理由はありませんでした。したがって、factorの「実用的な用途」は、実用的と考えるものに依存する可能性があります。素数理論に興味があるなら、おそらく素晴らしいツール/ゲーム/なんでもあります。


6

少なくとも1つのケースではfactor、未知の形式の大きなデータファイルの分析に役立つことがわかっています。

ファイルに固定長レコードがあると思われる場合、ファイルの長さの素因数が実際のレコード長を決定する開始点を提供します。


4

指定した数を取得するためにどの素数を乗算できるかがわかります。

例えば 20 = 2 * 2 * 5

そう、

> factor 20

20: 2 2 5出力として取得します

数が素数、たとえば19の場合、1つ19だけを取得します。


おかげで、私はこれをmanページから得ました。シェルスクリプトなどでこれを実行する理由を知りたいと思いました。どのくらいの頻度で実際にプライムルートが必要ですか?質問をより明確にするために更新しました。
ギャビンブロック


2

これは、科学計算用電卓が安価で、小さく、豊富であった以前のUNIXの初期から派生したユーティリティです。

それは、元のUNIXの開発者に、全体が何か有用なことができ、資金を受け取り続けるべきであることを示すのに役立ったかもしれません。


1
Unixの機能はまったく計算されていませんが、Unixの機能はいずれも実証されていません。
ステファンシャゼラス

2
Unixの初期の頃、roffタイプセッターはUnixの資金調達要件を満たすために開発されました。
クサラナナンダ

0

暗号学では素数が大きな役割を果たしますが、私はそれについてほとんど知りませんが、大きな素数などを識別するのに役立つと思うかもしれません


5
factor符号なし整数に収まる数値に制限されます。最適なケースは、64ビット(≤18,446,744,073,709,551,615)です。ただし、RSAなどで合理的に使用できる最小の数値は2048ビットです。IOW、それはファクターが処理できるよりもはるかに大きいです。実際、非常に大きいので、何倍も書き出すと、コメントの最大長を超えます。それは長い間、ほぼ600桁です(例えば、あなたがして、それを自分で計算したい場合には、2¹⁹⁸⁴だbc
derobert

だから今日は役に立たないが、おそらく35年前?エントロピーの高いキーを使用した暗号化はその時ですか?それが存在する可能性のある理由かもしれないと思った。
ドレイククラリス

いいえ。factorが数値因数分解できる場合(何年も何年もの間、むかつくことなく)、暗号化には役に立たない。また、私は...要因が比較的遅いアルゴリズムを使用して賭ける
derobert

1
Told ya私は暗号についてほとんど知らない。ハハ
ドレイククラリス

3
:@derobert私のマシン上に少なくともバージョン(8.25)の用途は非常に大きな数libgmp缶ファクター 184467440737095516150000000000001: 19 37 227601536870423 1152893543912729
ヴィクトル・ダール
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.