Triangle, milieux et probas

Pour tout ce qui concerne l'utilisation du logiciel.
User avatar
Remy
Posts: 40
Joined: Sun May 04, 2008 5:39 pm
Location: Nanterre

Triangle, milieux et probas

Post by Remy » Mon May 19, 2008 11:08 am

Bonjour,

CaRMetal possède-t-il une fonction random ?

À défaut, j'aimerais savoir comment faire pour augmenter la valeur d'un curseur N pendant l'exécution d'une macro.

Voilà les faits : j'aimerais (mais ça me paraît bien compliqué) simuler un tirage aléatoire (sorties : 1, 2, 3). On prend un triangle ABC et un point P au pif.
  • Si on tire 1, dessiner le milieu de [AP] ;
  • Si on tire 2, dessiner le milieu de [BP] ;
  • Si on tire 3, dessiner le milieu de [CP].
Puis on recommence 10 fois, en repartant du nouveau point créé.

Est-ce possible ?

User avatar
yves974
Posts: 268
Joined: Tue Oct 30, 2007 3:11 am
Location: Réunion

Re: Triangle, milieux et probas

Post by yves974 » Mon May 19, 2008 7:00 pm

Remy wrote:
Puis on recommence 10 fois, en repartant du nouveau point créé.
Je vois bien ça avec un tableur du moins pour le début mais je ne vois pas l'amorce de la récurrence : on recommence avec le nouveau point créé ... et deux autres (pour avoir un triangle), lesquels ?

Mais c'est peut-être autre chose aussi ...

User avatar
Remy
Posts: 40
Joined: Sun May 04, 2008 5:39 pm
Location: Nanterre

Post by Remy » Mon May 19, 2008 7:07 pm

On prend trois points fixés A, B et C. Ensuite on applique à P une homothétie de rapport 1/2 de centre au hasard A, B ou C. Le point obtenu est P1 à qui on refait subir la même chose !

Finalement on obtient une approximation du triangle de Sierpinski (point fixe de la contraction constituée par la "réunion" des trois homothéties)...

User avatar
yves974
Posts: 268
Joined: Tue Oct 30, 2007 3:11 am
Location: Réunion

Post by yves974 » Mon May 19, 2008 7:15 pm

Désolé c'est moi qui avait mal lu le texte ...

Faut apprendre à pas faire 3 choses à la fois si on sait pas faire ... encore désolé

User avatar
erichake
Site Admin
Posts: 145
Joined: Sun Oct 28, 2007 11:51 pm
Location: Millau

Re: Triangle, milieux et probas

Post by erichake » Tue May 20, 2008 9:01 pm

Remy wrote:Bonjour,
CaRMetal possède-t-il une fonction random ?
Je viens juste d'implémenter, suite à ton message, une fonction "random" (non il n'y en avait pas). Pour l'instant c'est uniquement disponible dans la version javawebstart :

http://db-maths.nuxit.net/CaRMetal/java ... metal.jnlp

J'ai prévu cette syntaxe :

random(x,b) renvoie un nombre aléatoire compris entre 0 et x.
Si b vaut 0 (false), il n'y a pas de recalcul et le random n'est calculé qu'une seule fois. Si b vaut 1 (true) le random recalcule tout le temps (à chaque fois que quelque chose se passe dans la fenêtre)

random(x) est possible et équivaut à random(x,1)


Exemple :
tu crées un point A et l'expression "random(5,x(A)>0)"
Quand A est dans les x positifs, il y a recalcul permanent
Quand A est dans les x négatifs, il n'y a pas de recalcul

Pour le reste, j'avoue ne pas encore avoir réfléchi de près à ta question du triangle ABC...

User avatar
Remy
Posts: 40
Joined: Sun May 04, 2008 5:39 pm
Location: Nanterre

Post by Remy » Tue May 20, 2008 9:34 pm

Alleluïa ! Merci d'avoir fait ça, ça marche !

Je vous balance un .zir pour rire un peu... J'ai défini un point P (une graine) puis un nouveau point P1 : milieu de [AP1] si rand = 0, milieu de [BP1] si rand = 1, milieu de [CP1] si rand = 2.

C'est un objet auto-référent, et comme j'ai pris soin de faire recalculer rand à chaque action sur la feuille (par exemple avec la manivelle), P1 se transforme à chaque étape en le milieu du segment formé par P1 (de l'étape précédente) et l'un des trois sommets.

Je vous conseille de tourner la manivelle après avoir demandé la trace de P1 (le point non nommé qui se balade dans le triangle). C'est vraiment chicos, à part quelques lignes parasites...

Encore merci Éric.
Attachments
SierpinskiPROBA.zir
Soit ABC un triangle ; soit P un point quelconque du plan. À chaque étape on marque le milieu de [AP], [BP] ou [CP] (suivant si on tire 1, 2 ou 3), puis on recommence à partir du nouveau point créé.
(4.39 KiB) Downloaded 499 times

User avatar
yves974
Posts: 268
Joined: Tue Oct 30, 2007 3:11 am
Location: Réunion

Post by yves974 » Tue May 20, 2008 9:45 pm

Hallucinant effectivement, je fais déjà circulé ce topic chez quelques accros de stat et de GD ...

Vous allez un peu vite les mecs là, y a les dino (saures) qu'ont un peu de mal à suivre ...

Enfin bref, on va relire les bouquins de stat ...

Dire que j'aurais fait ça avec Excel, ça aurait été dommage quand même ...

User avatar
Remy
Posts: 40
Joined: Sun May 04, 2008 5:39 pm
Location: Nanterre

Post by Remy » Tue May 20, 2008 10:33 pm

En fait c'est pas des stats, c'est un AFC (ou IFS en anglais) : attracteur d'une famille de contractions. Voir Wikipedia pour les précisions, il me semble que l'article est pas mal.
Last edited by Remy on Tue May 20, 2008 11:55 pm, edited 1 time in total.

User avatar
erichake
Site Admin
Posts: 145
Joined: Sun Oct 28, 2007 11:51 pm
Location: Millau

Post by erichake » Tue May 20, 2008 10:53 pm

Remy wrote:Alleluïa ! Merci d'avoir fait ça, ça marche !

Encore merci Éric.
Excellentissime Rémy : C'est superbe ton idée ! :D

La trace de ce P1 qui se Sierpinskise au fur et à mesure, c'est vraiment superbe.

J'avais lu ton premier message en me disant : "tiens, voilà quelqu'un qui semble vouloir faire un truc très original là"

Ben j'ai pas été déçu, alors en fait merci à toi !
Last edited by erichake on Tue May 20, 2008 11:08 pm, edited 2 times in total.

User avatar
erichake
Site Admin
Posts: 145
Joined: Sun Oct 28, 2007 11:51 pm
Location: Millau

Re: Triangle, milieux et probas

Post by erichake » Tue May 20, 2008 10:59 pm

Faut quand même que j'essaie de comprendre d'où viennent ces petits segments autour des sommets du triangle...

User avatar
erichake
Site Admin
Posts: 145
Joined: Sun Oct 28, 2007 11:51 pm
Location: Millau

Re: Triangle, milieux et probas

Post by erichake » Tue May 20, 2008 11:13 pm

P1:
X=if(rand==0,(x(P1)+x(A))/2,if(rand==1,(x(P1)+x(B))/2,(x(P1)+x(C))/2))
Y=if(rand==0,(y(P1)+y(A))/2,if(rand==1,(y(P1)+y(B))/2,(y(P1)+y(C))/2))
Cette autoréférence-là, fallait y penser !

User avatar
Remy
Posts: 40
Joined: Sun May 04, 2008 5:39 pm
Location: Nanterre

Post by Remy » Tue May 20, 2008 11:58 pm

Oui, mais du coup on n'obtient jamais les toutes premières étapes puisque on a déjà itéré la "sierpinskisation" en cliquant par-ci par-là ! Cependant les premières étapes donnent des points un peu parasites, donc c'est pas grave. Mais c'est pas très pro...

Il faudrait ajouter une condition à l'objet rand en fait...

monique31
Posts: 373
Joined: Sat Nov 03, 2007 3:33 pm
Location: Toulouse

Post by monique31 » Wed May 21, 2008 10:44 am

Superbe !
Et puis, trop jolie cette idée d'utiliser la manivelle :)
On connaissait la manivelle-poulie, la manivelle-horloge, et maintenant voici la ... manivelle-random
Je vous conseille de tourner la manivelle après avoir demandé la trace de P1 (le point non nommé qui se balade dans le triangle). C'est vraiment chicos, à part quelques lignes parasites...
Une info à propos de ces lignes parasites :
L'outil trace avec CaR a un fonctionnement un peu différent de ce qu'on trouve sur les autres logiciels de GD. Les points créés sont liés, donc on obtient une ligne polygonale, sauf .... si on va très vite ! Parce qu'alors les points sont isolés.
C'est pour moi un souvenir précis : parce qu'il y a quelque temps, la ligne était toujours polygonale. Et quand j'avais voulu faire une trace de deux couleurs, les lignes parasites c'était pas joli du tout. D'où un courrier à René. Il a alors modifié l'outil comme décrit plus haut.

monique31
Posts: 373
Joined: Sat Nov 03, 2007 3:33 pm
Location: Toulouse

Post by monique31 » Wed May 21, 2008 2:15 pm

Oui, mais du coup on n'obtient jamais les toutes premières étapes puisque on a déjà itéré la "sierpinskisation" en cliquant par-ci par-là ! Cependant les premières étapes donnent des points un peu parasites, donc c'est pas grave. Mais c'est pas très pro...

Il faudrait ajouter une condition à l'objet rand en fait...
Et pourquoi pas fabriquer d'abord une case à cocher ? Si son nom est a par exemple, un
"random(3,a)"
nous donne bien un nombre aléatoire, mais il y a un bouton"marche-arrêt", puisque a vaut 0 ou 1 !

User avatar
Remy
Posts: 40
Joined: Sun May 04, 2008 5:39 pm
Location: Nanterre

Post by Remy » Wed May 21, 2008 2:57 pm

Oui, j'y ai effectivement pensé hier soir... Je vais tester.

Concernant les lignes parasites je vais voir ; il reste tout de même qu'on ne peut pas conserver la trace des points : on obtient une ligne polygonale justement, c'est peut-être lié.

Post Reply