1 / 1 / 0
Регистрация: 12.04.2019
Сообщений: 143
|
|
1 | |
Генерация псевдослучайных чисел при помощи LFSR03.11.2019, 22:30. Показов 2541. Ответов 8
Метки нет (Все метки)
пишу на делфи. нужно сделать вставку ассемблерскую
у меня есть число(resultkey) типа extended состоящее из 1 и 0(длина числа = 28).мне нужно сделать его линейный сдвиг влево и чтобы в 0-ой бит стало число равное операции XOR 27-ого и 3-ого битов числа resultkey.Так надо делать пока число после сдвига не будет равно первоначальному .После каждого сдвига 27-бит надо записать в массив .Сделайте и обьясните пожалуйста
0
|
03.11.2019, 22:30 | |
Ответы с готовыми решениями:
8
Преобразования двух чисел при помощи логических операторов Генерация псевдослучайных чисел.с++ Генерация псевдослучайных чисел!!! C++11 генерация псевдослучайных чисел |
Модератор
|
|
03.11.2019, 22:38 | 2 |
А разве Intel x86 поддерживает работу с числами, разрядность которых не кратна 8?
И в Delphi тип extended занимает 10 байт = 80 бит - ни как не 28 бит.
0
|
1 / 1 / 0
Регистрация: 12.04.2019
Сообщений: 143
|
|
03.11.2019, 22:52 [ТС] | 3 |
массив из 27-мых битов надо вывести в массив чисел в делфи
Добавлено через 2 минуты думал Integer , но его не хвататет Добавлено через 6 минут я хочу реализовать шифрование (LSFR) с помощью fasm Добавлено через 49 секунд на ассемблере оно будет быстрее считать Добавлено через 2 минуты это возможно сделать?
0
|
Модератор
|
||||||
04.11.2019, 00:35 | 4 | |||||
Если возможно на Delphi, то и на ассемблере возможно.
А почему 32-разрядного DWord (или что там у Delphi имеется) не хватит для размещения 28 бит? Без записи в массив
В статье Шустрый 128-битный LFSR (MMX required) предлагают ускорение за счёт использования бита чётности флага состояний. Добавлено через 5 минут При вычислении длины периода совершенно не нужен массив.
0
|
1 / 1 / 0
Регистрация: 12.04.2019
Сообщений: 143
|
|
06.11.2019, 11:02 [ТС] | 5 |
мне нужны значения . так как их и биты исходного файла я буду XOR для шифрования
Добавлено через 46 минут только этот массив будет равен периоду 2^28 Добавлено через 15 секунд очень большое число
0
|
Модератор
|
|
06.11.2019, 16:39 | 6 |
это количество элементов, а его размер составит в 4 раза больше, т.к. один элемент - 4 байта.
Таким образом - смысла в массиве нет - вычисляйте по мере необходимости порциями, равными буферу для файла.
0
|
1 / 1 / 0
Регистрация: 12.04.2019
Сообщений: 143
|
||||||
07.11.2019, 17:29 [ТС] | 7 | |||||
Добавлено через 33 секунды посоветуйте как сделать лучше Добавлено через 9 секунд пожалуйста Добавлено через 37 секунд в edi1.text у меня ключ равный по длине степени многочлена
0
|
Модератор
|
||||||
07.11.2019, 18:13 | 8 | |||||
Сообщение было отмечено damaaa как решение
Решение
4*2^28=2^30 байт=2 Гбайт
Это много для хранения в массиве. Вычисляйте и обрабатывайте порциями по 1 Мбайт. У вас плохой код. Его можно ускорить многократно если вынести из цикла ненужные действия - многократные преобразования текст-число-текст. Я не понимаю, что у вас в коде твориться, поэтому советов не будет. А у Delphi есть встроенный или плагин автоформаттер исходного кода? По-моему GExperts зовётся. Добавлено через 25 минут Смотрите, в вашем коде на Delphi вы смешиваете интерфейс и логику работы. Для нормальной программы требуется написать отдельную процедуру EnCode, которую вызывать из обработчика нажатия на кнопку. Описание заголовка процедуры
В самой процедуре производится кодирование массива (гаммирование) ключом. Придётся выполнять приведение типов (typecast).
1
|
1 / 1 / 0
Регистрация: 12.04.2019
Сообщений: 143
|
|
07.11.2019, 18:32 [ТС] | 9 |
0
|
07.11.2019, 18:32 | |
07.11.2019, 18:32 | |
Помогаю со студенческими работами здесь
9
Генерация псевдослучайных чисел Генерация псевдослучайных чисел Генерация алгоритмов псевдослучайных чисел Генерация массива псевдослучайных чисел Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи | |||||
Как проводить научные вычисления на Python
InfoMaster 15.01.2025
Python стал одним из наиболее востребованных языков программирования в области научных вычислений благодаря своей простоте, гибкости и обширной экосистеме специализированных библиотек. Научные. . .
|
Создание игры типа Minecraft на PyGame/Python: пошаговое руководство
InfoMaster 15.01.2025
В данном руководстве мы рассмотрим процесс создания игры в стиле Minecraft с использованием библиотеки PyGame на языке программирования Python. Этот проект идеально подходит как для начинающих. . .
|
Как создать свою первую игру в стиле Doom на Unreal Engine
InfoMaster 15.01.2025
Разработка шутера от первого лица в стиле классического Doom представляет собой увлекательное путешествие в мир игрового программирования, где сочетаются творческий подход и технические навыки. . . .
|
Параллельное программирование: основные технологии и принципы
InfoMaster 15.01.2025
Введение в параллельное программирование
Параллельное программирование представляет собой фундаментальный подход к разработке программного обеспечения, который позволяет одновременно выполнять. . .
|
Как написать микросервис на C# с Kafka, MediatR, Redis и GitLab CI/CD
InfoMaster 15.01.2025
В современной разработке программного обеспечения микросервисная архитектура стала стандартом де-факто для создания масштабируемых и гибких приложений. Этот подход позволяет разделить сложную систему. . .
|
Что такое CQRS и как это реализовать на C# с MediatR
InfoMaster 15.01.2025
Концепция CQRS и её роль в современной разработке
В современном мире разработки программного обеспечения архитектурные паттерны играют ключевую роль в создании масштабируемых и поддерживаемых. . .
|
Как настроить CI/CD с Azure DevOps
InfoMaster 15.01.2025
CI/ CD, или непрерывная интеграция и непрерывное развертывание, представляет собой современный подход к разработке программного обеспечения, который позволяет автоматизировать и оптимизировать процесс. . .
|
Как настроить CI/CD с помощью Jenkins
InfoMaster 15.01.2025
Введение в CI/ CD и Jenkins
В современной разработке программного обеспечения непрерывная интеграция (CI) и непрерывная доставка (CD) стали неотъемлемыми элементами процесса создания качественных. . .
|
Как написать микросервис на Go/Golang с Kafka, REST и GitHub CI/CD
InfoMaster 14.01.2025
Определение микросервиса, преимущества использования Go/ Golang
Микросервис – это архитектурный подход к разработке программного обеспечения, при котором приложение состоит из небольших, независимо. . .
|
Как написать микросервис с нуля на C# с RabbitMQ, CQRS, Swagger и CI/CD
InfoMaster 14.01.2025
В современном мире разработки программного обеспечения микросервисная архитектура стала стандартом де-факто для создания масштабируемых и гибких приложений. Этот архитектурный подход предполагает. . .
|
Как создать интернет-магазин на PHP и JavaScript
InfoMaster 14.01.2025
В современном мире электронная коммерция стала неотъемлемой частью бизнеса. Создание собственного интернет-магазина открывает широкие возможности для предпринимателей, позволяя достичь большей. . .
|
Как написать Тетрис на Ассемблере
InfoMaster 14.01.2025
Тетрис – одна из самых узнаваемых и популярных компьютерных игр, созданная в 1984 году советским программистом Алексеем Пажитновым. За прошедшие десятилетия она завоевала симпатии миллионы людей по. . .
|