Ваше завдання - створити найдовший ітераційний період , коли довжина кожної програми в послідовності обмежена 500 байтами.
Тобто, якщо ви повторите такі кроки:
- Почніть зі своєї початкової програми
- Запустіть поточну програму
- Поверніться до кроку 2
Ви з часом повернетесь до своєї початкової програми. Кількість програм у циклі - це ваша оцінка, яку ви намагаєтеся максимально збільшити.
Жодна з програм не може призвести до помилок. Кожну програму також слід запускати однаково (наприклад, відсутні різні версії, реалізації, параметри компілятора, платформи тощо) (EDIT: Так, будь-який зовнішній стан, такий як генератор псевдо випадкових чисел, був включений в останню заява. Зовнішній стан повинен бути "скинутий" після кожного запуску. Якщо ви використовуєте справжні випадкові числа, передбачається найгірший випадок.)
Що відрізняє цей виклик від найдовшого ітераційного квита (крім 100 проти 500), це те, що кожна програма в циклі також повинна бути 500 байт або менше. Це означає, що найдовший можливий цикл становить (256 ^ 501 - 1) / 255 або менше. Звичайно, це велика кількість, але не така велика з точки зору того, скільки коду потрібно обчислити. Таким чином, завдання полягає у використанні якомога більшої кількості можливостей (256 ^ 501 - 1) / 255, а не зайнятого бобра.
Програми не мають доступу до власного вихідного коду. Проте порожня програма буде дозволена , якщо ви хочете ( до тих пір , поки ви будете слідувати іншим правилам).
Оскільки перевірка програм вручну буде важкою, ви можете розібратися в балах, використовуючи теоретичні методи. Ви повинні включити у програму пояснення оцінки та правильності. Якщо ви не можете розібратися з оцінкою, ви можете замість цього використовувати нижню межу кількості програм у циклі як дефоктову оцінку. Ви можете оновлювати це, коли ви знайдете кращі нижчі межі або якщо ви знайдете точний фактичний бал.
Це виклик коду , тому найвищий бал виграє!
EDIT: Рекомендується написати наукову номенклатуру, щоб відповіді були легше порівняти. Цілком чудово мати й інші форми партитури, особливо якщо вони більш чітко підключені до вашої програми. Також читачам рекомендується редагувати попередні відповіді, щоб виконати це.