Page 1 sur 1

Suite de Douglas Hofstadter

Posté : jeu. 12 juil. 2012, 16:10
par GM
Une suite chaotique :
u_{1}=1

u_{2}=1

\forall n\geqslant 3 : \qquad u_{n}=u_{n-u_{n-1}}+u_{n-u_{n-2}}

C'est peut-être plus lisible ainsi :
u(1)=1

u(2)=1

\forall n\geqslant 3 : \qquad u(n)=u(n-u(n-1))+u(n-u(n-2))

Figure asymptote 0b36014e05a32daa954b91b8192813bb
*** Pour masquer/découvrir le code Asymptote qui a permis de créer la figure, il faut cliquer dessus. ;-) ***

CODE ASYMPTOTE de la figure ci-dessus : Tout sélectionner
  1. size(250);
  2. import graph;
  3. int x[]={1,2}, y[]={1,1}, n;
  4. while(n<20000){
  5. n=x.length;
  6. int un = y[n-y[n-1]]+y[n-y[n-2]];
  7. x.push(n);
  8. y.push(un);
  9. }
  10. draw(graph(x,y),.1bp+blue);
  11. xaxis(Ticks(NoZero));
  12. yaxis(Ticks(NoZero));

Re: Suite de Douglas Hofstadter

Posté : jeu. 12 juil. 2012, 18:03
par GM

Figure asymptote 2636a8652f80ef9c4f8e4937a208cfda
*** Pour masquer/découvrir le code Asymptote qui a permis de créer la figure, il faut cliquer dessus. ;-) ***

CODE ASYMPTOTE de la figure ci-dessus : Tout sélectionner
  1. size(300,300,IgnoreAspect);
  2. import graph;
  3. int un[]={1,1}, n, N=300, p=10;
  4. while(n<N){
  5. n=un.length;
  6. un.push( un[n-un[n-1]]+un[n-un[n-2]] );
  7. }
  8. for(int k=0; k<300; ++k){
  9. label(string(un[k]), (k%p, -floor(k/p)));
  10. }