Поиск по сайту:
Все люди хотят жить долго, но никто не хочет быть старым (Д. Свифт).

Команда factor в Linux для начинающих (с примерами)

09.09.2017
Команда factor в Linux для начинающих (с примерами)

Если вы пользователь командной строки в Linux, и ваша работа вращается вокруг простых чисел, есть утилита командной строки, которая может помочь вам, инструмент factor. В этой статье мы  быстро обсудим такие вещи, как, почему она существует, как она работает, и как вы можете использовать ее. Пожалуйста, обратите внимание, что все примеры и инструкции, упомянутые здесь, были протестированы на Ubuntu 16.04 LTS.

Команда factor в Linux

Команда factor в Linux дает простые множители числа. Вот синтаксис инструмента:

factor [NUMBER]...

 

А вот как man page описывает утилиту:

Print the prime factors of each specified integer NUMBER.  If none are specified on the command 
line, read them from standard input.

Q1. Как использовать команду factor?

Использование довольно легко (как вы уже догадались, через его синтаксис описан выше). Просто укажите число, которое вы хотите указать в утилите factor в качестве аргумента. Например, чтобы найти простые множители, скажем, 20, используют factor следующим образом:

factor 20

 

Ниже приведен результат, который был произведен в системе:

root@destroyer:~# factor 20                                                                                                                                    
20: 2 2 5

 

Конечно, вы можете передать несколько чисел в качестве аргумента команды factor на одном дыхании.

root@destroyer:~#factor 20 30 40                                                                                                                               
20: 2 2 5                                                                                                                                                     
30: 2 3 5                                                                                                                                                     
40: 2 2 2 5

 

У инструмента нет каких – либо других основных параметров командной строки, за исключением регулярного –help и –version, которые есть почти у каждого инструмента командной строки в Linux.

root@destroyer:~# factor --help                                                                                                                                
Usage: factor [NUMBER]...                                                                                                                                     
  or:  factor OPTION                                                                                                                                          
Print the prime factors of each specified integer NUMBER.  If none                                                                                            
are specified on the command line, read them from standard input.                                                                                             
                                                                                                                                                              
      --help     display this help and exit                                                                                                                   
      --version  output version information and exit                                                                                                          
                                                                                                                                                              
GNU coreutils online help: <http://www.gnu.org/software/coreutils/>                                                                                           
Full documentation at: <http://www.gnu.org/software/coreutils/factor>                                                                                         
or available locally via: info '(coreutils) factor invocation'

 

Q2. Какой алгоритм использует factor?

Согласно документации GNU, команда factor использует алгоритм Pollard-Brent rho. Документация (смотрите здесь), также предлагает эффективный алгоритм только для чисел с относительно малыми коэффициентами. Вот выдержка из документации:

 
Из документации:
Факторинг большого числа, в общем, трудно. Алгоритм Pollard-Brent rho, используемый factor особенно эффективен для чисел с относительно небольших факториалом. Если вы хотите учитывать большие числа, которые не имеют небольшие факториалы (например, число, которые являются произведением двух больших простых чисел), другие методы гораздо лучше. Если factor построен без использования GNU MP, только с одинарной точностью доступна арифметическое, и поэтому большое число (обычно 2 ^ {128} и выше) не будет поддерживаться. Код одинарной точности использует алгоритм, который предназначен для факторинга меньшего числа.

Q3. Почему factor существует?

Ну, нет никакого официального слова об этом, но эксперты предполагают, кто-то (или группа) имели дело с простыми числами и разработали инструмент гдето полвека назад. И тот факт, что с тех пор он был включен в дистрибутивы Unix и Linux можно отнести отсутствие каких-либо причин не делать этого.

С дискуссией по этой теме можно ознакомиться здесь.

Вывод

Очевидно, что команда factor является инструментом ниши. Только те, которые часто используют простые числа/факторы могли бы найти ее полезным. Но опять же, нет абсолютно никакого вреда, чтобы узнать о полезности (особенно, когда практически нет кривой обучения, связанной с ней).

Вы можете получить доступ к справочной странице factorа здесь.

Команда factor в Linux для начинающих (с примерами)

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (Пока оценок нет)
Загрузка...
Поделиться в соц. сетях:
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

**ссылки nofollow

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии

Читайте также

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: