Portál AbcLinuxu, 1. května 2025 07:11
1) Měnit můžete pouze tělo bloku while (1)
.
2) Nejvýše na 5 místech můžete testovat proměnnou $sym
, jiné testy nejsou povoleny.
3) $sym
můžete měnit, ovšem pouze na 1
nebo undef
.
4) Dále můžete volat left
, right
, nebo last
.
5) Bezprostředně po každém left
nebo right
musí následovat další test.
#! /usr/bin/perl -w use strict; my (@left, $sym, @right, $cnt); sub left { push @right, $sym; $sym = pop @left; $cnt++; } sub right { push @left, $sym; $sym = pop @right; $cnt++; } while (1) { # 1 if ($sym) { left; } else { $sym = 1; right; # 2 while ($sym) { right; } $sym = 1; right; } # 3 if ($sym) { $sym = undef; left; # 4 last unless $sym; $sym = undef; left; } else { $sym = 1; right; # 5 while ($sym) { left; } $sym = 1; left; } } print "$cnt\n";
Tiskni
Sdílej:
Najdete program, který vypíše větší číslo? Dokážete, že takový program neexistuje?No nehynoucí slávu by asi nikdo neodmítl, ale rozhodně jsou jednodušší způsoby, než tohle.
kříží Scheme s Haskellemvime o tom vic?
nechceš do ní ještě vrazit kus chobotnice?ja bych tam vrazil spis chameleona... neviditelna ovce hopkava, by byla fakt sila!
vime o tom vic?Přes společného kamaráda vím jen to, že se nedávno podařilo zkompilovat faktoriál...
ja bych tam vrazil spis chameleona... neviditelna ovce hopkava, by byla fakt sila!A o čem asi tak mluvím, že?
$cnt
. Díky omezením na počet stavů je takových programů pro každé N jen konečný počet, a dají se snadno generovat a provádět. Stačí tedy vyloučit ty které se zacyklí, a ze zbylých vybrat ten nejlepší. Problém je že těch programů pro N=5 existuje pár miliónů, a zhruba stovka z nich je "problémových". Při spuštění to cyklí nad všechny rozumné limity, takže je hodně pravděpodobné že nikdy neskončí, ale nikdo pro to zatím neodvodil důkaz. Existuje tedy pořád šance že některý z těch programů někdy skončí, a pak logicky vytiskne ještě mnohem větší číslo než současný "šampión".
#!/bin/bash echo 99999999999999999999999999999999999999
Jo, je to turingáč s binární abecedou a 5 stavy. Zajímavý na tom je, že fce (N -> max kroků, za které se nějaký TS s N stavy zastaví) není vyčíslitelná.tak jsem již na sto procent přesvědčen, že bude lepší se živit čímkoli, jen né vývojem software
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.