Сообщение Re[3]: Коллац на Фрактране от 11.07.2023 22:34
Изменено 11.07.2023 22:37 Кодт
Re[3]: Коллац на Фрактране
Здравствуйте, kov_serg, Вы писали:
_>Я видимо не так понимаю постановку задачи.
(не силён в луа, код поскипал без комментариев)
_>И чешим репу
вот, ура, 17-я дробь подошла. умножили — и надо снова бежать от начала списка
а вместо этого — мы тупо выполнили умножение до самого упора — применили максимальную степень этой дроби
и закономерно получили какую-то фигню.
Впрочем, даже для такой альтернативной фрактран-машины с политикой стоять-бежать и round robin есть контрмера!
Если мы договоримся, что у нас абсолютно все состояния (кроме финиша) имеют непустую метку.
Тогда стартовое число будет, скажем, 27p2+1p37 (37 — метка старта)
а стартовые инструкции — -2p2+p7-p37 и -p2-p37.
И паразитное зацикливание станет невозможным, потому что на первой итерации мы сбрасываем метку текущего состояния, а на второй — сбрасывать нечего, бежим дальше по кольцу.
_>Я видимо не так понимаю постановку задачи.
(не силён в луа, код поскипал без комментариев)
_>И чешим репу
_> 0) 27p2
_> 0 pp= 1 --skip-- (2p2-p7)
_> 1 pp= 2 --skip-- (p13+p5-p11-2p2)
_> 2 pp= 3 --skip-- (p11+p5-p13-2p2)
_> 3 pp= 4 --skip-- (p29-p11-p2)
_> 4 pp= 5 --skip-- (p29-p13-p2)
_> 5 pp= 6 --skip-- (p17-p11)
_> 6 pp= 7 --skip-- (p17-p13)
_> 7 pp= 8 --skip-- (p19+p2-p17-p5)
_> 8 pp= 9 --skip-- (p17+p2-p19-p5)
_> 9 pp=10 --skip-- (p23-p17)
_> 10 pp=11 --skip-- (p23-p19)
_> 11 pp=12 --skip-- (6p2+p31-p29-p5)
_> 12 pp=13 --skip-- (6p2+p29-p31-p5)
_> 13 pp=14 --skip-- (4p2+p23-p29)
_> 14 pp=15 --skip-- (4p2+p23-p31)
_> 15 pp=16 --skip-- (p3-p23)
_> 16 pp=17 (27p2)*(p7-2p2)=25p2+p7
вот, ура, 17-я дробь подошла. умножили — и надо снова бежать от начала списка
_> 17 pp=17 (25p2+p7)*(p7-2p2)=23p2+2p7
_> 18 pp=17 (23p2+2p7)*(p7-2p2)=21p2+3p7
_> 19 pp=17 (21p2+3p7)*(p7-2p2)=19p2+4p7
_> 20 pp=17 (19p2+4p7)*(p7-2p2)=17p2+5p7
_> 21 pp=17 (17p2+5p7)*(p7-2p2)=15p2+6p7
_> 22 pp=17 (15p2+6p7)*(p7-2p2)=13p2+7p7
_> 23 pp=17 (13p2+7p7)*(p7-2p2)=11p2+8p7
_> 24 pp=17 (11p2+8p7)*(p7-2p2)=9p2+9p7
_> 25 pp=17 (9p2+9p7)*(p7-2p2)=7p2+10p7
_> 26 pp=17 (7p2+10p7)*(p7-2p2)=5p2+11p7
_> 27 pp=17 (5p2+11p7)*(p7-2p2)=3p2+12p7
_> 28 pp=17 (3p2+12p7)*(p7-2p2)=p2+13p7
а вместо этого — мы тупо выполнили умножение до самого упора — применили максимальную степень этой дроби
и закономерно получили какую-то фигню.
Впрочем, даже для такой альтернативной фрактран-машины с политикой стоять-бежать и round robin есть контрмера!
Если мы договоримся, что у нас абсолютно все состояния (кроме финиша) имеют непустую метку.
Тогда стартовое число будет, скажем, 27p2+1p37 (37 — метка старта)
а стартовые инструкции — -2p2+p7-p37 и -p2-p37.
И паразитное зацикливание станет невозможным, потому что на первой итерации мы сбрасываем метку текущего состояния, а на второй — сбрасывать нечего, бежим дальше по кольцу.
Re[3]: Коллац на Фрактране
Здравствуйте, kov_serg, Вы писали:
_>Я видимо не так понимаю постановку задачи.
(не силён в луа, код поскипал без комментариев)
_>И чешим репу
вот, ура, 17-я дробь подошла. умножили — и надо снова бежать от начала списка
а вместо этого — мы тупо выполнили умножение до самого упора — применили максимальную степень этой дроби
и закономерно получили какую-то фигню.
Впрочем, даже для такой альтернативной фрактран-машины с политикой стоять-бежать и round robin есть контрмера!
Если мы договоримся, что у нас абсолютно все состояния (кроме финиша) имеют непустую метку.
Тогда стартовое число будет, скажем, 27p2+p37 (37 — метка старта)
а стартовые инструкции — -2p2+p7-p37 и -p2-p37.
И паразитное зацикливание станет невозможным, потому что на первой итерации мы сбрасываем метку текущего состояния, а на второй — сбрасывать нечего, бежим дальше по кольцу.
_>Я видимо не так понимаю постановку задачи.
(не силён в луа, код поскипал без комментариев)
_>И чешим репу
_> 0) 27p2
_> 0 pp= 1 --skip-- (2p2-p7)
_> 1 pp= 2 --skip-- (p13+p5-p11-2p2)
_> 2 pp= 3 --skip-- (p11+p5-p13-2p2)
_> 3 pp= 4 --skip-- (p29-p11-p2)
_> 4 pp= 5 --skip-- (p29-p13-p2)
_> 5 pp= 6 --skip-- (p17-p11)
_> 6 pp= 7 --skip-- (p17-p13)
_> 7 pp= 8 --skip-- (p19+p2-p17-p5)
_> 8 pp= 9 --skip-- (p17+p2-p19-p5)
_> 9 pp=10 --skip-- (p23-p17)
_> 10 pp=11 --skip-- (p23-p19)
_> 11 pp=12 --skip-- (6p2+p31-p29-p5)
_> 12 pp=13 --skip-- (6p2+p29-p31-p5)
_> 13 pp=14 --skip-- (4p2+p23-p29)
_> 14 pp=15 --skip-- (4p2+p23-p31)
_> 15 pp=16 --skip-- (p3-p23)
_> 16 pp=17 (27p2)*(p7-2p2)=25p2+p7
вот, ура, 17-я дробь подошла. умножили — и надо снова бежать от начала списка
_> 17 pp=17 (25p2+p7)*(p7-2p2)=23p2+2p7
_> 18 pp=17 (23p2+2p7)*(p7-2p2)=21p2+3p7
_> 19 pp=17 (21p2+3p7)*(p7-2p2)=19p2+4p7
_> 20 pp=17 (19p2+4p7)*(p7-2p2)=17p2+5p7
_> 21 pp=17 (17p2+5p7)*(p7-2p2)=15p2+6p7
_> 22 pp=17 (15p2+6p7)*(p7-2p2)=13p2+7p7
_> 23 pp=17 (13p2+7p7)*(p7-2p2)=11p2+8p7
_> 24 pp=17 (11p2+8p7)*(p7-2p2)=9p2+9p7
_> 25 pp=17 (9p2+9p7)*(p7-2p2)=7p2+10p7
_> 26 pp=17 (7p2+10p7)*(p7-2p2)=5p2+11p7
_> 27 pp=17 (5p2+11p7)*(p7-2p2)=3p2+12p7
_> 28 pp=17 (3p2+12p7)*(p7-2p2)=p2+13p7
а вместо этого — мы тупо выполнили умножение до самого упора — применили максимальную степень этой дроби
и закономерно получили какую-то фигню.
Впрочем, даже для такой альтернативной фрактран-машины с политикой стоять-бежать и round robin есть контрмера!
Если мы договоримся, что у нас абсолютно все состояния (кроме финиша) имеют непустую метку.
Тогда стартовое число будет, скажем, 27p2+p37 (37 — метка старта)
а стартовые инструкции — -2p2+p7-p37 и -p2-p37.
И паразитное зацикливание станет невозможным, потому что на первой итерации мы сбрасываем метку текущего состояния, а на второй — сбрасывать нечего, бежим дальше по кольцу.