Бюджет: 100 USD Срок: 3 дня
Добрый день.
У меня есть опыт в коммерческих проектах более 20 лет. Интересная задача, готов её выполнить.
Необходимо реализовать способ подбора seed, a, b без генераторов математически, чтобы было миллисекунды (максимум до 1 минуты) на 25 миллиардов 4-х значных чисел
Типа 1234 3214 1122 1234 3412 1123 4234 4411...
А также 100% восстановление и максимальная скорость
Основное описание я сделал с chat gpt
Техническое задание (обновленное)
Цель
Реализовать систему из двух модулей:
1. Подбор (Recovery): найти seed, a, b по короткому фрагменту ряда.
2. Воспроизведение: сгенерировать ряд длиной до 25 миллиардов чисел (1..4).
---
Формат данных
Базовый элемент: цифра из множества {1,2,3,4}.
Упаковка: 8 цифр → 64 бита (по 2 бита на цифру). Это один блок.
Окно для подбора: W = 32..64 последовательных блоков.
---
МОДУЛЬ A. ПОДБОР (Recovery)
A1. Вход
y_window: массив из W упакованных блоков (uint64) — последовательные.
seed_candidates: список кандидатов seed (например, [0..4095] или предоставленный файл со списком).
n0_local: известный локальный индекс первого блока в окне (может быть 0, если глобальный не нужен).
A2. Выход
seed: найденный seed.
a: разница (множитель) по модулю 2⁶⁴, нечетное.
b: сдвиг по модулю 2⁶⁴.
status: OK / FAIL (+ диагностика).
A3. Модель (для реализации)
x_n = (a*n + b) mod 2^64, где a — нечетное.
y_n = PRP_seed(x_n), где PRP_seed — инвертированная перестановка 64-бит (предоставляем реализацию/интерфейс).
A4. Алгоритм подбора (без брутфорса по всему пространству)
Для каждого seed в seed_candidates:
1. Вычислить ключ PRP_seed^{-1}.
2. Инвертировать первые 2 блока:
x0 = PRP_inv(y0), x1 = PRP_inv(y1), задать a = (x1 - x0) mod 2^64.
(Если a четное — быстрое отсеивание.)
3. Для i=2..W-1:
xi = PRP_inv(yi) и проверить (xi - x_{i-1}) == a.
Если где-то не совпало — этот seed отклоняем.
4. Если все разницы одинаковые — seed найден.
Вычислить b = (x0 - a*n0_local) mod 2^64.
Вернуть (seed,a,b) как результат.
> Вычислительная сложность ~O(|seed_candidates| · W). Для |seed_candidates|≤4096 и W≤64 — десятки мс.
A5. Псевдокод
for seed in seed_candidates:
key = PRP_make_key(seed)
x0 = PRP_inv(y[0], key)
x1 = PRP_inv(y[1], key)
a = (x1 - x0) mod 2^64
if (a % 2 == 0): continue
ok = True
prev = x1
for i in 2..W-1:
xi = PRP_inv(y[i], key)
if ((xi - prev) mod 2^64) != a: ok = False; break
prev = xi
if ok:
b = (x0 - a*n0_local) mod 2^64
return (OK, seed, a, b)
return (FAIL, -, -, -)
A6. Проверки/валидация
После нахождения (seed,a,b) проверить еще 8–16 следующих блоков (если есть) на постоянную разницу.
Опционально: сгенерировать 8–16 блоков вперед от n0_local и сверить с предоставленными.
---
МОДУЛЬ B. OFFSET
B1. Вход
y_obs: один наблюдаемый блок (uint64).
seed, a, b — полученные из Модуля A.
B2. Выход
n: глобальный индекс блока (mod 2⁶⁴; если нужен абсолютный в пределах файла — описать диапазон страниц/блоков).
B3. Формула
x = PRP_inv(y_obs, seed)
ainv = inverse_mod_2_64(a) // a нечетное
n = (x - b) * ainv (mod 2^64)
B4. Время
O(1): одна инверсия PRP + одна модульная инверсия (предварительно подготовленная) + несколько 64-бит операций → микросекунды.
---
МОДУЛЬ C. ВОСПРОИЗВЕДЕНИЕ РЯДА
C1. Вход
seed, a, b
start_n, count (диапазон для генерации)
C2. Выход
Поток блоков y_n в заданном диапазоне (упакованные 64-бит), или распакованные цифры {1..4} (по опции).
Поддержка потоковой записи в файл в формате 2 бита/цифру.
C3. Алгоритм
x = a*start_n + b
for i in 0..count-1:
y = PRP_seed(x)
output(y)
x += a
(Распаковка 8 цифр из 64 битов — простое извлечение 2-битовых полей +1.)
---
Требования к производительности
Подбор (W=64, |seed_candidates|≤4096): < 100 мс на обычном ноутбуке.
Offset: ≈ микросекунды.
Генерация 25 миллиардов цифр (с 2-битовой упаковкой, 4 потока): ~2–6 мин на Dell Latitude 5400 (ориентир).
---
Технические требования к реализации
Язык: C++17/20, компиляция с -O3 -march=native.
Легкая PRP (инвертированная): 3–4 раунда Feistel с 4×4 S-box, без тяжелых зависимостей.
Модульная инверсия a в mod 2⁶⁴ (Ньютон/Хенсел).
Многопоточность: OpenMP или std::thread (опционально).
Вывод: буферизованный, блоками 8–32 МБ; формат—упакованные 2 бита/цифру.
Код с комментариями, отдельные модули: prp.h/.cpp, recover.h/.cpp, regen.h/.cpp, pack.h/.cpp, cli.cpp.
---
CLI/API (минимум)
recover --window in.bin --seeds seeds.txt --n0 0 --out params.json
offset --block y.bin --params params.json --out n.txt
regen --params params.json --start 0 --count 100000000 --out stream.bin --packed
params.json:
{ "seed": 1234, "a": "0x1d3f5b7b9d", "b": "0xcafebabe12345678" }
---
Приемочные тесты
1. Синтетический: сгенерировать эталон (известные seed,a,b), вырезать 64 блока, запустить recover → ожидаем точное совпадение seed,a,b.
2. Offset: для первого блока из эталона — offset должен равняться его индексу.
3. Regen: с восстановленными параметрами сгенерировать N блоков и побайтово сверить с эталоном.
4. Перф: замерить время recover (<100 мс) и скорость regen (не хуже заданного порога).
---
Дополнительно (опции)
Векторизация AVX2 (SIMD) для PRP.
Пакувальник/распаковщик {1..4}↔︎2 бита с потоковыми буферами.
Логи производительности (--bench).
Библиотечный API (C-стиль/C++ класс) для встраивания.
Вот ссылка на переписку, где вы можете прочитать или задать вопросы
https://chatgpt.com/share/68b0912d-a1b0-8012-af8f-eb6049798075
Бюджет: 100 USD Срок: 3 дня
Добрый день.
У меня есть опыт в коммерческих проектах более 20 лет. Интересная задача, готов её выполнить.
Бюджет: 100 USD Срок: 1 день
Добрый день, интересно, могу попробовать прогнать это все через свою LLM и глянуть на результат если интересно напишите в лс
Бюджет: 99 USD Срок: 1 день
Добрый!
Готов выполнить ваше задание! Подробнее в личные сообщения.
Бюджет: 2500 USD Срок: 10 дней
Здравствуйте, Роман
Я рассмотрел вашу спецификацию и могу предоставить как модули Выбора (Восстановление), так и Воспроизведения точно так, как описано (мод
2
64
2
64
аффинный счетчик
𝑥
𝑛
=
𝑎
𝑛
+
𝑏
x
n
=an+b, нечетное
𝑎
a; 64-битный PRP с обратным; 2-битная упаковка). Подход избегает грубой силы и соответствует цели восстановления менее 100 мс для
∣
семян
∣
≤
4096
,
𝑊
≤
64
∣семян∣≤4096,W≤64 на ноутбуке.
Пожалуйста, ответьте на следующие вопросы:
-Вы предоставите свой PRP_seed / PRP_inv или мне следует отправить свой (документированный и протестированный)?
-Ожидаемый верхний предел размера seed_candidates? (По умолчанию ≤4096)
-Целевая ОС/ЦП (Linux или Windows, доступен ли AVX2?)
-Ограничения на размер выходного файла/разделение для 25B цифр? (упакованный ≈ 6.25 ГБ)
-Есть ли требования к переносимой битовой точности между компиляторами/архитектурами?
Бюджет: 100 USD Срок: 1 день
Добрый день!
У меня есть опыт в C++17/20, оптимизации (-O3, AVX2), многопоточности и модульной арифметике. Реализую PRP (Feistel), быстрый подбор seed/a/b без брутфорса, восстановление и генерацию 25 млрд элементов с упаковкой битов.
Гарантирую скорость и 100% соответствие ТЗ.
Бюджет $100 ок, готов начать сейчас.
Настройка и программирование плат. Нужны специалисты, знающие Altium, C++. Предоставляем бронь. Оплата - договорная.
Создать совместимость между наземной станцией управления, системой автоматического старта (САС), радаром и самолетом.
Нужен разработчик MTA:SA. Мне нужно помочь собрать чистый MTA:SA 1.6 mtasa-blue source под Windows. Что нужно сделать: 1. Настроить среду для сборки: Visual Studio, Git, DirectX SDK, CEF, DLL и другие зависимости. 2. Собрать чистый mtasa-blue клиент/сервер. 3. Проверить, чтобы клиент запускался без ошибок. 4. Объяснить, какие файлы/зависимости нужны. 5. Дать короткую инструкцию, как я смогу повторно собрать клиент сам. 6. Или еще помочь через AnyDesk/Discord/Telegram. Важно: - Без обхода античита. - Без читов. - Без вредоносного кода. - Нужна только легальная сборка source и настройка среды. Результат, который я хочу получить: - собранный чистый клиент MTA:SA 1.6; - собранный сервер или объяснение, как его собрать; - список всех зависимостей; - короткая инструкция для повторной сборки; - объяснение, что именно было исправлено. Или Предлагайте свою цену!
Необходимо разработать программу для Windows, которая позволяет подключать iPhone с jailbreak через USB-кабель и управлять им с компьютера. Основной функционал: Подключение iPhone через USB. Программа должна быстро распознавать подключенный iPhone и работать через кабель, чтобы минимизировать задержки и лаги. Трансляция экрана iPhone на компьютер. (На компьютере должен отображаться экран телефона в реальном времени) Управление телефоном с помощью мыши. Пользователь должен иметь возможность кликать, свайпать, прокручивать и управлять экраном iPhone с помощью мыши с компьютера. Ввод текста с компьютера. Должен быть общий буфер обмена между компьютером и iPhone. Передача файлов с компьютера на iPhone. Нужно добавить функцию загрузки файлов с компьютера в память телефона или в нужные папки/приложения. Стабильная работа. Программа должна работать плавно, без значительных задержек, зависаний и обрывов соединения. Совместимость: поддержка «взломанного» iPhone, rootless jailbreak, iOS 16.7.12, подключение через USB.
Индивидуальное задание КР-1 Срок выполнения - 20 июня ---- Фигура - белый домик с двумя окнами и цветной крышей. Рисование - ИСКЛЮЧИТЕЛЬНО псевдографикой. Изменение цветов окон: окно 1 -- 1=желтое, b=черное окно 2 -- G==зеленое, r=красное выход == U Обратите внимание на регистр символов! Ошибки - отработать == сообщение об ошибках в командах, которые появляются и исчезают через 1-2 секунды! ВСЕ ДРУГИЕ ТРЕБОВАНИЯ - в Задании В том числе -- Отчет по ВСЕМ требованиям Задания.