Техническое задание
Скоростная позиционная декомпозиция больших чисел
1. ПОСТАНОВКА ЗАДАЧИ
Цель: Разработать систему быстрой позиционной декомпозиции чисел размером от 6 миллиардов до 30 миллиардов цифр с последующим точным математическим восстановлением.
2. ХАРАКТЕРИСТИКИ ВХОДНЫХ ДАННЫХ
2.1 Структура числа
- Размер: От 6 миллиардов до 30 миллиардов цифр
- Цифровая база: Число состоит исключительно из цифр
1,2,3,4 - Формат: Непрерывная последовательность цифр без разделителей
- Пример:
12341234123412341234...(6-30 млрд цифр)
2.2 Ограничения и требования
- Точность: 100% математическая точность восстановления без потерь
- Скорость: Декомпозиция должна выполняться за миллисекунды (секунды максимум)
- Результат: 4-8 числовых коэффициентов
3. АЛГОРИТМ ПОЗИЦИОННОЙ ДЕКОМПОЗИЦИИ
3.1 Математическая модель
Принцип последовательного деления:
Входное число N раскладывается по формуле:
N = K₁×B₁ + K₂×B₂ + K₃×B₃ + K₄×B₄ + K₅×B₅
Где:
N- начальное число (6-30 млрд цифр)K₁, K₂, K₃, K₄, K₅- коэффициенты декомпозицииB₁, B₂, B₃, B₄, B₅- позиционные основания (делители)
3.2 Пошаговый алгоритм декомпозиции
Шаг 1: Деление на наибольшее основание
N ÷ B₁ = K₁ (часть) + R₁ (остаток)
B₁ = 100,000,000 (100 миллионов)
Шаг 2: Деление остатка на второе основание
R₁ ÷ B₂ = K₂ (часть) + R₂ (остаток)
B₂ = 100,000 (100 тысяч)
Шаг 3: Продолжение декомпозиции
R₂ ÷ B₃ = K₃ + R₃, где B₃ = 1,000
R₃ ÷ B₄ = K₄ + R₄, где B₄ = 10
R₄ ÷ B₅ = K₅ + 0, где B₅ = 1
Результат: Набор коэффициентов [K₁, K₂, K₃, K₄, K₅]
3.3 Формула восстановления
Точное восстановление оригинального числа:
N = K₁×100,000,000 + K₂×100,000 + K₃×1,000 + K₄×10 + K₅×1
4. ТЕХНИЧЕСКИЕ ТРЕБОВАНИЯ К СКОРОСТИ
4.1 Целевые показатели производительности
Для числа 6 миллиардов цифр:
- Декомпозиция: ≤ 60 сек макс
- Восстановление: ≤ 30-60 макс
- Полный цикл: 2- 3 мин макс
Основная проблема: Стандартные алгоритмы деления надвысоких чисел слишком медленные
Необходимые оптимизации
8. ТЕСТИРОВАНИЕ И ВЕРИФИКАЦИЯ
8.1 Наборы тестовых данных
Малые тесты (до 1 млн цифр):
- Полная верификация всех методов
- Сравнение с эталонными результатами
- Тестирование граничных случаев
Большие тесты (6-30 млрд цифр):
- Тестирование производительности
- Проверка использования ресурсов
- Стресс-тестирование стабильности
8.2 Критерии качества
Функциональность:
- ✅ 100% математическая точность восстановления
- ✅ Поддержка чисел до 30 млрд цифр
- ✅ Стабильная работа при многократном использовании
10. ОЖИДАЕМЫЕ РЕЗУЛЬТАТЫ
10.1 Технические достижения
- Скорость: Декомпозиция чисел за секунды
- Математическая точность: 100% восстановления без потерь
По сути нужно разработать быстрое деление
Тесты будут проходить на обычных ноутбуках типа Dell Latitude 5400 (32ОЗУ)
-
1 день6727 UAH
1117 4 0 1 день6727 UAHВаши целевые показатели производительности физически недостижимы на Dell Latitude 5400 (или любом другом ноутбуке): чтение 6–30 миллиардов байтов цифр из оперативной памяти или с диска занимает большую часть времени.
Даже при оптимистичной пропускной способности оперативной памяти 20–30 ГБ/с чтение 6 ГБ (≈6 миллиардов цифр) занимает 0,2–0,3 секунды; чтение 30 ГБ занимает около 1–2 секунд.
Миллисекунды недостижимы независимо от алгоритма.
Я могу сделать алгоритм потоковым и O(n) с практически нулевыми накладными расходами, чтобы время выполнения по сути представляло собой «время ввода-вывода + крошечная константа».
Буду признателен, если вы укажете, в чём я ошибаюсь.
-
4 дня8970 UAH
2536 51 1 4 дня8970 UAHреализовать алгоритм я могу и он даже будет работать быстро... но будет дальнейшая проблема с размером сжатия ...
-
3 дня4485 UAH
2221 16 3 1 3 дня4485 UAHДобрый день, у меня есть вариант, как реализовать задание. С радостью отвечу на вопросы и реализуем на практике алгоритм.
-
Такі цифри на таких ноутух не реально і за таку вартість - тим паче
-
Актуальные фриланс-проекты в категории C и C++
Сборка MTA:SA 1.6 клиента из исходного кода
2500 UAH
Нужен разработчик MTA:SA. Мне нужно помочь собрать чистый MTA:SA 1.6 mtasa-blue source под Windows. Что нужно сделать: 1. Настроить среду для сборки: Visual Studio, Git, DirectX SDK, CEF, DLL и другие зависимости. 2. Собрать чистый mtasa-blue клиент/сервер. 3. Проверить,… C и C++ ∙ 12 часов 50 минут назад ∙ 6 ставок |
Разработка программного обеспечения для управления iPhone через USB-кабель с ПК
10 000 UAH
Необходимо разработать программу для Windows, которая позволяет подключать iPhone с jailbreak через USB-кабель и управлять им с компьютера. Основной функционал: Подключение iPhone через USB. Программа должна быстро распознавать подключенный iPhone и работать через кабель,… C и C++, Python ∙ 1 день 9 часов назад ∙ 17 ставок |