Чи є практичне використання для команди GNU factor?


17

Переглядаючи GNU Coreutils , я помітив factorкоманду, яку я ніколи раніше не помічав.

Читання сторінки чоловіка:

Роздрукуйте прості множники кожного вказаного цілого числа НОМЕР. Якщо в командному рядку не вказано жодного, прочитайте їх зі стандартного введення.

Чи є практичне використання для цього factorчи це лише демонстраційний пакет / іграшки?

Відповіді:


17

Вікіпедія, "Фактор (Unix)" з цікавим заходом:

Фактор вперше з'явився у 5-му виданні Research Unix у 1974 році як утиліта "підтримується користувачем" (розділ 6 посібника). У 7-му виданні 1979 року він був переведений у головний розділ «команди» посібника (розділ 1). Звідти факторна утиліта була скопійована у всі інші варіанти Unix, включаючи комерційні Unixes та BSD. У деяких варіантах Unix він класифікується як "гра", ніж більше, ніж серйозна утиліта, а тому задокументований у розділі 6.

Тож здавалося б, що деякі користувачі любили грати з простими факторами і писали фактор - і коли він існував, мабуть, не було жодної вагомої причини не включати його як команду в наступні версії Unix. Тож «практичне використання фактора» може залежати від того, що ви вважаєте практичним - якщо ви в теорії простих чисел, це, мабуть, чудовий інструмент / гра / що завгодно.


6

Я знаю, що принаймні в одному випадку для мене factorбув корисний аналіз великого файлу даних невідомого формату.

Якщо ви підозрюєте, що файл має записи фіксованої довжини, прості коефіцієнти довжини файлу дають вихідну точку, з якої можна визначити фактичну довжину запису.


4

Він підкаже, які прості числа можна помножити разом, щоб отримати вказане вами число:

напр 20 = 2 * 2 * 5

Так,

> factor 20

Ви отримуєте 20: 2 2 5як вихід

Якщо число було простим, наприклад 19, ви отримаєте 19єдиний.


Дякую, я якось отримав це зі сторінки man. Мені було цікавіше, чому ви хочете зробити це в сценарії оболонки чи подібному. Як часто люди насправді потребують головних коренів? Я оновив питання, щоб було зрозуміліше.
Гевін Брок


2

Це може бути утиліта, що виникла з перших днів UNIX, до того, як наукові калькулятори були дешевими, маленькими та багатими.

Можливо, це дозволило розробникам оригінального UNIX показати, що вся справа може зробити щось корисне і що вона повинна продовжувати отримувати фінансування.


1
Він не демонструє жодної функції Unix, хоча як суто обчислювальний.
Стефан Шазелас

2
У перші дні Unix roffнабір машин був розроблений для задоволення вимог фінансування Unix.
Кусалаланда

0

Прості числа відіграють велику роль у криптографії, хоча я про це знаю дуже мало, я можу подумати, що вони можуть вважати його корисним для виявлення великих праймерів тощо


5
factorобмежується числами, які вписуються в непідписане ціле число. У кращому випадку, це 64 біти (≤ 18,446,744,073,709,551,615) - але найменше число, яке ви розумно використовуватимете, наприклад, RSA - 2048 біт. IOW, Це набагато більше, ніж може справити фактор. Насправді його настільки більше, що виписування в скільки разів більше перевищує максимальну довжину коментаря . Це майже 600 цифр (це 2¹⁹⁸⁴, якщо ви хочете обчислити його, наприклад, bc)
derobert

Так не корисно сьогодні, а може, 35 років тому? Тоді криптографія використовувала ключі з такою високою ентропією? Просто подумав, що це може бути можливою причиною його існування.
Дрейк Кларріс

Ні. Якщо фактор може підрахувати кількість (не змінюючи при цьому багато, багато років), то це не марно для криптографії. Крім того, фактор
обміну

1
Я сказав, що я знаю дуже мало про криптографію. ха-ха
Дрейк Кларріс

3
@derobert принаймні версія на моїй машині (8.25) використовує libgmp і може враховувати дуже великі цифри: 184467440737095516150000000000001: 19 37 227601536870423 1152893543912729
Віктор Даль,
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.