C'è un uso pratico per il comando del fattore GNU?


17

Guardando attraverso i GNU Coreutils , ho notato il factorcomando che non avevo mai notato prima.

Leggendo la pagina man:

Stampa i fattori primi di ciascun numero intero specificato NUMBER. Se non ne viene specificato nessuno sulla riga di comando, leggerli dall'input standard.

Esiste un uso pratico factoro è solo un pacchetto dimostrativo / giocattolo?

Risposte:


17

Wikipedia, "Factor (Unix)" con un'interpretazione interessante:

fattore apparve per la prima volta sulla 5a edizione di Research Unix nel 1974, come un'utilità "mantenuta dall'utente" (sezione 6 del manuale). Nella 7a edizione del 1979, è stato spostato nella sezione principale "comandi" del manuale (sezione 1). Da lì, l'utilità del fattore è stata copiata in tutte le altre varianti di Unix, inclusi Unix commerciali e BSD. In alcune varianti di Unix, è classificato come un "gioco" più che un'utilità seria, e quindi documentato nella sezione 6.

Quindi sembrerebbe che ad alcuni utenti piacesse giocare con i fattori primi e scrivere il fattore - e una volta che esisteva, probabilmente non c'era motivo di non includerlo come comando nelle successive versioni di Unix. Quindi gli "usi pratici" del fattore possono dipendere da ciò che consideri pratico: se sei nella teoria dei numeri primi, è probabilmente un ottimo strumento / gioco / qualunque cosa.


6

So che in almeno un caso, per me è factorstato utile nell'analisi di un file di dati di grandi dimensioni di formato sconosciuto.

Se si sospetta che un file abbia record di lunghezza fissi, i fattori primi della lunghezza del file forniscono un punto di partenza da cui determinare la lunghezza effettiva del record.


4

Ti dirà quali numeri primi possono essere moltiplicati insieme per ottenere il numero che hai specificato:

per esempio 20 = 2 * 2 * 5

Così,

> factor 20

Ottieni 20: 2 2 5come output

Se il numero era un numero primo, ad es. 19, otterrai un 19solo.


Grazie, l'ho preso dalla pagina man. Ero più curioso di sapere perché avresti voluto farlo in uno script di shell o simile. Quanto spesso le persone hanno davvero bisogno di radici primarie? Ho aggiornato la domanda per essere più chiara.
Gavin Brock,


2

Questa potrebbe essere un'utilità discendente dai primi giorni di UNIX, prima che i calcolatori scientifici fossero economici, piccoli e abbondanti.

Potrebbe essere servito a consentire agli sviluppatori dell'UNIX originale di dimostrare che l'intera cosa potrebbe fare qualcosa di utile e che dovrebbe continuare a ricevere finanziamenti.


1
Non dimostra nessuna delle caratteristiche di Unix sebbene sia puramente computazionale.
Stéphane Chazelas,

2
All'inizio di Unix, il roffcompositore è stato sviluppato per soddisfare le esigenze di finanziamento di Unix.
Kusalananda

0

I numeri primi svolgono un ruolo importante nella crittografia, anche se ne so molto poco, potrei capire che potrebbero essere utili per identificare numeri primi grandi e simili


5
factorè limitato ai numeri che rientrano in un numero intero senza segno. Nel migliore dei casi, sono 64 bit (≤ 18.446.744.073.709.551.615), ma il numero più piccolo che si potrebbe ragionevolmente utilizzare, ad esempio, RSA è 2048 bit. IOW, È molto più grande di quanto possa gestire il fattore. In effetti è molto più grande, che scrivere quante volte più grande supera la lunghezza massima di un commento . È lungo quasi 600 cifre (è 2¹⁹⁸⁴ se si desidera calcolarlo da soli, ad es. bc)
derobert

Quindi non è utile oggi, ma forse 35 anni fa? Allora la crittografia utilizzava le chiavi con quell'entropia così elevata? Ho pensato che potesse essere una possibile ragione per cui esiste.
Drake Clarris,

No. Se il fattore può fattorizzare il numero (senza ridimensionarlo per molti, molti anni), allora è inutile per la crittografia. Inoltre, scommetto che il fattore utilizza un algoritmo relativamente lento ...
derobert

1
Ti ho detto che so molto poco sulla crittografia. haha
Drake Clarris il

3
@derobert almeno la versione sulla mia macchina (8.25) usa libgmp e può considerare numeri molto grandi: 184467440737095516150000000000001: 19 37 227601536870423 1152893543912729
Viktor Dahl,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.