Показано с 1 по 8 из 8

Тема: Как сгенерировать/проверить простое число

  1. #1

    Question Как сгенерировать/проверить простое число

    Собственно вопрос: как сгенерировать случайное простое число ?
    если воспользоваться генератором случайного числа то как организовать его проверку на простоту ?
    Последний раз редактировалось qwertyfuck; 13.06.2020 в 17:27.

  2. #2
    Пользователь Аватар для Сергей0308
    Регистрация
    25.06.2011
    Адрес
    Галактика Андромеды (M31)
    Сообщений
    5,812

    По умолчанию

    Цитата Сообщение от qwertyfuck Посмотреть сообщение
    Собственно вопрос: как сгенерировать случайное простое число ?
    если воспользоваться генератором случайного числа то как организовать его проверку на простоту ?
    Тестов простоты немерено, глаза разбегаются, какая здесь проблема?!
    https://ru.wikipedia.org/wiki/Простое_число

    Тест простоты.PNG

    Например такой: https://ru.wikipedia.org/wiki/Тест_А...аяла_—_Саксены

    Для начала можно использовать самый понятный метод - метод перебора делителей(https://ru.wikipedia.org/wiki/Перебор_делителей), кстати он и самый медленный! Ограничим диапазон в пределах миллиона(у вас же ключ открытый), тогда, значение делителей будет не более 1000(квадратный корень из миллиона), в этом диапазоне имеется всего 168 делителей:

    Простые числа до 1000.PNG

    Даже последовательно перебирая делители при цикле программы 3 мс это займёт полсекунды, наверно вас это устроит, если не устроит никто не запрещает это параллейно выполнить, тогда время ограничится временем цикла программы, всё!
    Последний раз редактировалось Сергей0308; 16.06.2020 в 12:05.
    Если проблему можно решить за деньги, это не проблема, это расходы. Бог каждому посылает проблемы по его силам. Так что одно из двух. Либо ты можешь-таки
    справиться с проблемами, либо это не твои проблемы.

  3. #3
    Пользователь
    Регистрация
    21.11.2019
    Адрес
    Гомель
    Сообщений
    35

    По умолчанию

    Самый простой способ (как мне видится): делаем массив простых чисел, генерируем случайное число в пределах длины массива и вынимаем простое число по полученному индексу. Из минусов - потеря времени на формирование массива если это делать руками, но никто не запрещает написать утилитку, которая будет генерировать массив требуемой длины.

  4. #4
    Пользователь Аватар для Сергей0308
    Регистрация
    25.06.2011
    Адрес
    Галактика Андромеды (M31)
    Сообщений
    5,812

    По умолчанию

    Цитата Сообщение от Mask Посмотреть сообщение
    Самый простой способ (как мне видится): делаем массив простых чисел, генерируем случайное число в пределах длины массива и вынимаем простое число по полученному индексу. Из минусов - потеря времени на формирование массива если это делать руками, но никто не запрещает написать утилитку, которая будет генерировать массив требуемой длины.
    А в ОЛ(ПР) есть массивы?
    Если проблему можно решить за деньги, это не проблема, это расходы. Бог каждому посылает проблемы по его силам. Так что одно из двух. Либо ты можешь-таки
    справиться с проблемами, либо это не твои проблемы.

  5. #5
    Пользователь
    Регистрация
    27.11.2011
    Адрес
    Краснодар
    Сообщений
    7,269

    По умолчанию

    з.ы. вроде для ОЛ же писали генератор случайных чисел ? Если да, то число можно использовать для выемки ячейки ППЗУ, в котором как раз и указать список простых чисел.

  6. #6
    Пользователь Аватар для Сергей0308
    Регистрация
    25.06.2011
    Адрес
    Галактика Андромеды (M31)
    Сообщений
    5,812

    По умолчанию

    Цитата Сообщение от melky Посмотреть сообщение
    з.ы. вроде для ОЛ же писали генератор случайных чисел ? Если да, то число можно использовать для выемки ячейки ППЗУ, в котором как раз и указать список простых чисел.
    И сколько потребуется лет чтобы записать в ПЗУ все простые числа хотя бы диапазона UDINT, что поддерживает ОЛ(ПР)?
    Мне почему то кажется что более 20 лет уйдёт, если на каждое число тратить по 1-ой секунде!
    Последний раз редактировалось Сергей0308; 17.06.2020 в 12:45.
    Если проблему можно решить за деньги, это не проблема, это расходы. Бог каждому посылает проблемы по его силам. Так что одно из двух. Либо ты можешь-таки
    справиться с проблемами, либо это не твои проблемы.

  7. #7
    Пользователь
    Регистрация
    21.11.2019
    Адрес
    Гомель
    Сообщений
    35

    По умолчанию

    Цитата Сообщение от Сергей0308 Посмотреть сообщение
    А в ОЛ(ПР) есть массивы?
    Действительно, нету, уже настолько привык что все это есть вот и написал.

  8. #8
    Пользователь
    Регистрация
    27.11.2011
    Адрес
    Краснодар
    Сообщений
    7,269

    По умолчанию

    Сергей0308 а я сказал записывать ВСЕ числа ? можно сделать набор всего из 32-х числел, не применять 5, 7, 11 а просто с большим количеством цифр.
    Раз это ключ, думаю будет вполне достаточно такого решения.
    Можно сделать два макроса ППЗУ32 и периодически переключаясь между ними выбирать из них, например. И чтобы переключение тоже было случайным..
    Последний раз редактировалось melky; 17.06.2020 в 12:40.

Похожие темы

  1. Ответов: 3
    Последнее сообщение: 25.12.2017, 17:16
  2. Ответов: 9
    Последнее сообщение: 05.07.2017, 20:48
  3. ПР 114 проверить работу в ОНЛАЙНЕ как?
    от дрю в разделе Программируемые реле
    Ответов: 10
    Последнее сообщение: 08.04.2015, 20:29
  4. Простое реле времени УТ24?
    от Alex в разделе Эксплуатация
    Ответов: 7
    Последнее сообщение: 01.11.2013, 14:22
  5. Проверить АС-2
    от XopHeT в разделе Сетевые технологии
    Ответов: 1
    Последнее сообщение: 20.02.2011, 11:48

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •