Les automates cellulaires sont vraiment fascinants. Ceux dont on parle habituellement sont les binaires, c'est-à-dire ceux représentables par un nombre. Cependant, ceux-ci, à mon avis, ont été tués à mort. Les AC ternaires sont plus intéressants, mais nous avons tous à considérer ASCII! Quel plaisir cela pourrait-il être!
Au lieu de décider d'un ensemble de règles pour chaque personnage, j'utiliserai une règle de décision simple dont je parlerai bientôt. Pour décider de la prochaine génération, nous examinons les trois cellules "supérieures", un peu comme les automates cellulaires. Observez un exemple:
QWERTY
X Y Z
Le "haut" de Yest WER, étant les cellules au-dessus et à droite, au-dessus et au-dessus et à gauche. Y sera le résultat de la fonction que je m'apprête à définir, qui est une fonction sur des chaînes de trois caractères. Le "haut" de Xest QW, ou un espace remplissant la cellule inexistante / manquante .
Maintenant, pour la fonction amusante ! J'appelle cette séquence la séquence XOROR pour une raison. Soit Ale code de cellule en haut à gauche, Ble code de cellule ci-dessus et le code de cellule en Chaut à droite. Ensuite, la cellule résultante est le caractère dont le code de caractère est (A XOR B) OR C, c'est-à-dire (A^B)|C. (Si une valeur résultante est supérieure à 126, elle est alors définie sur (CHARCODE % 127) + 32. Rien n'est fait si une valeur est inférieure à 32.) Voici un exemple de la graine Hello, World!:
S: Hello, World!
0: mmmo/c_ z}~)e
m = ( )^(H)|(e) = (32^72)|101 = 104|101 = 109 (m)
m = (H)^(e)|(l) = (72^101)|108 = 45|108 = 109 (m)
etc.
1: mmo/c_< +wl
2: mo/c_<c< + |;
3: o/c_<c ?+ g
4: oc_<c c??4+gg
5: 0_<c c 4+ o
6: _<c ccc4??ooo
7: c ccc4 ?o o
8: ccccc4w? pooo
9: cccc4w h o
A: ccc4wc hh ooo
B: cc4wc4kh ooo
C: c4wc4 #ooo o
D: wwc4w4#ooo oo
E: wc4wwc oo oo
F: w4wwc4oo oo o
G: wwwc4 oo oo
H: wwc4w4 oo oo
I: w4wwc4oooo oo
J: wwwc4 oo oo
K: wwc4w4oo oo o
L: wc4wwo oo oo
M: w4wwo8ooo oo
N: wwwo8 o oo o
O: wwo8w8oooo oo
Et nous pouvons continuer un peu plus tard. Cette modification de la chaîne est appelée séquence XOROR.
Objectif Vous devez écrire un programme ou une fonction qui effectue l'une des tâches suivantes:
- Étant donné une chaîne
set un nombren >= 0,nsortez la e chaîne sur la séquence XOROR avec seeds, avecn = 0comme première transformation de la chaîne. - Étant donné une chaîne
s, produire (pour les programmes) ou générer (pour les fonctions / générateurs) un flux infini de la séquence XOROR avec seeds. Vous pouvez choisir d'arrêter si la séquence se répète, mais ce n'est pas nécessaire.
s sera toujours uniquement composé de caractères ASCII imprimables, de l'espace aux onglets tilde plus (pas de nouvelle ligne.)
Il s'agit d'un code-golf , donc le programme le plus court en octets l'emporte.
os font ressembler à une ruée vers les zergs .
127%127+32==32.
n=0la chaîne d'origine n'est-elle pas?
(d^!)|(space). Quant à votre deuxième question, vous effectuez (CHAR%127)+32 après l'exécution du XOROR.


