collatz_cert — генератор и верификатор сертификатов отрицательного дрейфа для ускоренных траекторий гипотезы Коллатца.
Идея:
- Для всех нечётных остатков
r mod 2^Kсчитается сумма степеней двойкиS_rна блоке длиныL. - Если
min(S_r / L) > log2(3), то все траектории обладают отрицательным дрейфом и нет нетривиальных циклов.
Таким образом, гипотеза Коллатца сводится к проверяемому компьютерному сертификату.
- v2 (по умолчанию):
table_k{K}_l{L}_v2.bin— бинарный файл с таблицей всехS_r(u32, ver=2). - v1 (совместимость чтения):
table_k{K}_l{L}.bin— старая версия (u16, ver=1). cert_k{K}_l{L}_v2.json— манифест (K,L, min_S, eps, sha256, метаданные сборки, file_ver).CHECKSUMS.sha256— контрольные суммы.- Архив:
cert_k{K}_l{L}_v2.tar.gz.
git clone https://github.com/andysay1/Collatz_Drift_Certificate.git
cd Collatz_Drift_Certificate
cargo build --releaseГенерация сертификата (v2 по умолчанию)
target/release/collatz_cert gen \
--k 24 --l 256 --threads 24
# Выходные файлы по умолчанию:
# table_k24_l256_v2.bin, cert_k24_l256_v2.jsonВерификация сертификата
target/release/collatz_cert verify \
--k 24 --l 256 \
--table table_k24_l256_v2.bin \
--manifest cert_k24_l256_v2.json \
--threads 24
# Также поддерживается проверка старого формата v1
# --table table_k24_l256.bin --manifest cert_k24_l256.json- Статистика и гистограммы (CSV):
# Быстрый обзор таблицы и eps
./target/release/collatz_cert stats --table table_k24_l256_v2.bin --bins 100 --out-csv hist_k24_l256.csv
# Вывод:
# stats: K=24 L=256 ver=2 count=8388608
# min_S=442 max_S=... mean=...
# thr=406 pass(min)=true
# eps(min)=0.141600- Упаковка артефактов (tar.gz + sha256):
./target/release/collatz_cert pack \
--table table_k24_l256_v2.bin \
--manifest cert_k24_l256_v2.json \
--out cert_k24_l256_v2.tar.gz \
--checksums
# Выводит строку с sha256 и пишет CHECKSUMS.sha256- Бенчмарки (примерная производительность на малых параметрах):
cargo bench --bench compute
# Откроет HTML‑отчёт Criterion в target/criterion/report- GitHub Actions
- CI:
.github/workflows/ci.yml— сборка, тесты и смоукgen/verify. - Bench:
.github/workflows/bench.yml— ручной запуск бенчмарков с выгрузкой отчётов.
- CI:
- Бейджи: настроены на
andysay1/Collatz_Drift_Certificateи веткуmain. - Паблиш скрипт:
scripts/publish_cert.sh
# Пример публикации артефактов (архив, checksums, summary, histogram CSV) в dist/
scripts/publish_cert.sh -k 24 -l 256 -t 24 -o distMIT — см. файл LICENSE.
В релизах GitHub доступны:
- Бинарники:
collatz_cert-<tag>-<os>-amd64(Linux/macOS/Windows). - Архивы с README и LICENSE:
- Linux/macOS:
collatz_cert-<tag>-<os>-amd64.tar.gzи.sha256. - Windows:
collatz_cert-<tag>-windows-amd64.zipи.sha256.
- Linux/macOS:
Проверка архива:
# Для .tar.gz (Linux/macOS)
shasum -a256 -c collatz_cert-<tag>-<os>-amd64.tar.gz.sha256
# Для .zip (Windows, из PowerShell)
Get-FileHash collatz_cert-<tag>-windows-amd64.zip -Algorithm SHA256# Запуск всего набора тестов
cargo test
# Что проверяют тесты
# - v2 roundtrip: генерация по умолчанию (u32, ver=2) и последующая верификация
# - v1 совместимость: синтетический небольшой файл ver=1 валидируется корректноПроверка контрольных сумм
# Из каталога с архивом и CHECKSUMS.sha256 (например, dist/):
shasum -a256 -c CHECKSUMS.sha256