Existe-t-il une utilisation pratique de la commande de facteur GNU?

17

En parcourant GNU Coreutils , j'ai repéré la factorcommande que je n'avais jamais remarquée auparavant.

Lire la page de manuel:

Imprimez les facteurs premiers de chaque nombre entier spécifié. Si aucun n'est spécifié sur la ligne de commande, lisez-les à partir de l'entrée standard.

Existe-t-il une utilisation pratique factorou s'agit-il simplement d'un ensemble de démonstration / jouet?

Gavin Brock
la source

Réponses:

17

Wikipedia, "Factor (Unix)" avec une prise intéressante:

factor est apparu pour la première fois sur la 5e édition de Research Unix en 1974, en tant qu'utilitaire «géré par l'utilisateur» (section 6 du manuel). Lors de la 7e édition en 1979, il a été déplacé dans la section principale "commandes" du manuel (section 1). À partir de là, l'utilitaire factor a été copié sur toutes les autres variantes d'Unix, y compris les Unix commerciaux et BSD. Dans certaines variantes d'Unix, il est classé comme un "jeu" plus qu'un utilitaire sérieux, et donc documenté dans la section 6.

Il semblerait donc que certains utilisateurs aimaient jouer avec les facteurs premiers et écrivaient le facteur - et une fois qu'il existait, il n'y avait probablement aucune bonne raison de ne pas l'inclure comme commande dans les versions Unix suivantes. Ainsi, les «utilisations pratiques» du facteur peuvent dépendre de ce que vous considérez comme pratique - si vous êtes dans la théorie des nombres premiers, c'est probablement un excellent outil / jeu / peu importe.

Oliver
la source
6

Je sais que dans au moins un cas, pour moi a factorété utile dans l'analyse d'un grand fichier de données de format inconnu.

Si vous pensez qu'un fichier a des enregistrements de longueur fixe, les facteurs premiers de la longueur du fichier fournissent un point de départ à partir duquel déterminer la longueur d'enregistrement réelle.

codelahoma
la source
4

Il vous dira quels nombres premiers peuvent être multipliés ensemble pour obtenir le nombre que vous avez spécifié:

par exemple 20 = 2 * 2 * 5

Donc,

> factor 20

Vous obtenez 20: 2 2 5en sortie

Si le nombre était un nombre premier, par exemple 19, vous obtiendrez un 19seul.

Marguerite
la source
Merci, j'ai en quelque sorte obtenu cela de la page de manuel. J'étais plus curieux de savoir pourquoi vous voudriez faire cela dans un script shell, ou similaire. À quelle fréquence les gens ont-ils réellement besoin de racines principales? J'ai mis à jour la question pour être plus clair.
Gavin Brock
2

Cela peut être un utilitaire issu des premiers jours d'UNIX, avant que les calculatrices scientifiques soient bon marché, petites et abondantes.

Cela a peut-être permis aux développeurs de l'UNIX d'origine de montrer que le tout pouvait faire quelque chose d'utile et qu'il devait continuer à recevoir des fonds.

LawrenceC
la source
1
Il ne montre cependant aucune des fonctionnalités d'Unix car il est purement informatique.
Stéphane Chazelas
2
Dans les premiers jours d'Unix, le rofftypographe a été développé pour répondre aux exigences de financement d'Unix.
Kusalananda
0

Les nombres premiers jouent un grand rôle dans la cryptographie, bien que j'en sache très peu à ce sujet, je pourrais comprendre qu'ils peuvent le trouver utile pour identifier de grands nombres premiers et similaires

Drake Clarris
la source
5
factorest limité aux nombres qui correspondent à un entier non signé. Dans le meilleur des cas, c'est 64 bits (≤ 18 446 744 073 709 551 615) - mais le plus petit nombre que vous utiliseriez raisonnablement, par exemple, RSA est 2048 bits. IOW, c'est beaucoup plus que ce que le facteur peut supporter. En fait, c'est tellement plus grand que le fait d'écrire combien de fois plus grand dépasse la longueur maximale d'un commentaire . C'est presque 600 chiffres (c'est 2¹⁹⁸⁴ si vous voulez le calculer vous-même avec par exemple, bc)
derobert
Donc pas utile aujourd'hui, mais peut-être il y a 35 ans? La cryptographie utilisait-elle alors des clés avec un tel niveau d'entropie? Je pensais juste que cela pourrait être une raison possible de son existence.
Drake Clarris
Non. Si facteur peut factoriser le nombre (sans le caler pendant de nombreuses années), alors il est inutile pour la cryptographie. Aussi, je parie que le facteur utilise un algorithme relativement lent ...
derobert
1
Je vous ai dit que je connaissais très peu la cryptographie. haha
Drake Clarris
3
@derobert au moins la version sur ma machine (8.25) utilise libgmp et peut prendre en compte de très grands nombres: 184467440737095516150000000000001: 19 37 227601536870423 1152893543912729
Viktor Dahl