Page 1 of 1

[Mini-Challenge Basic #11] : Mandelbrot

Unread postPosted: 27 Jul 2014, 20:09
by davidElmaleh
Le but de ce défi est de créer une fonction mandelbrot(c,imax) qui prend en paramètre un nombre complexe c et le nombre d'itérations max (ou précision) et qui renvoie true si c appartient à l'ensemble de mandelbrot ou false sinon (à une certaine présicion).
Ensemble de Mandelbrot?? Kesako! : cf Wikipedia
Image

L'auteur de l'algorithme le plus rapide sera le grand vainqueur (en cas d'égalité, on considérera le critère de longueur).

Bonne chance ;)

PS: Je suis désolé pour la "non-originalité" de l'énoncé, néanmoins, contrairement aux autres, il s'agit de complexes :p

Re: [Mini-Challenge Basic #11] : Mandelbrot

Unread postPosted: 27 Jul 2014, 20:13
by Levak
Il manque un paramètre : le nombre d'itérations, puisque c'est une suite divergente.

Re: [Mini-Challenge Basic #11] : Mandelbrot

Unread postPosted: 27 Jul 2014, 20:14
by davidElmaleh
Euh... pas compris :p
Pourquoi mettre le nombre d'itérations en paramètres?

EDIT: ce n'est pas forcément une suite divergente

Re: [Mini-Challenge Basic #11] : Mandelbrot

Unread postPosted: 27 Jul 2014, 20:27
by Adriweb
La précision du calcul, si tu veux (ici, c'est le nombre d'itérations du calcul de la suite)

Edit : au début, je croyais qu'il fallait la tracer... en basic - j'ai fait "wut" :P

Re: [Mini-Challenge Basic #11] : Mandelbrot

Unread postPosted: 27 Jul 2014, 20:37
by davidElmaleh
Ah je vois...
Je vais donc modifier l'énoncé

EDIT: done

Re: [Mini-Challenge Basic #11] : Mandelbrot

Unread postPosted: 27 Jul 2014, 20:53
by Levak
davidElmaleh wrote:EDIT: ce n'est pas forcément une suite divergente

C'est une suite divergente. Ce n'est parce qu'en quelques points du plan (C) elle ne diverge pas que la suite en elle même ne l'est pas.
Pour savoir si un point à la périphérie de l'ensemble appartient à ce dernier, on est obligé de connaître le nombre d'itérations, car à n+1 le point pourra ne plus appartenir à l'ensemble.

Re: [Mini-Challenge Basic #11] : Mandelbrot

Unread postPosted: 01 Oct 2014, 21:11
by Bisam
Bon, puisque personne ne répond, j'en profite lâchement :
Code: Select all
Define mandel(c,maxi)=
Func
Local z,i
0→z
0→i
While abs(z)<=2 and i<=maxi
  z^2+c→z
  i+1→i
EndWhile
i>maxi
EndFunc

Je ne sais pas comment tu vas mesurer la rapidité... mais ce n'est pas mon problème :p