Novembre 2024 | Lun | Mar | Mer | Jeu | Ven | Sam | Dim |
---|
| | | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | | Calendrier |
|
|
| hazard et classements | |
| | |
Auteur | Message |
---|
sergeauze
Nombre de messages : 391 Age : 72 Localisation : Hautes Alpes France Date d'inscription : 09/01/2010
| Sujet: hazard et classements Dim 20 Juin 2010 - 23:12 | |
| je m'interesse en ce moment aux programmes de tri,tirage au sort et classement des resultats. Vous devez bien avoir quelques programmes de ce genre qui dorment dans vos tiroirs. Pourquoi ne pas les ressortir. Dans le code que je poste la premiere partie ,je l'ai trouvee sur le site. Lasuite ,je l'ai ecrite moi_meme(vieux souvenirs de programmation) - Code:
-
dim x ,y ,lm,i ,pt Dim a(6), t(49) height 0,150 width 0,500 lm=40 pt=15 rem ..................................... for i = 1 to 6 pt=0 repeat a(i)= int(rnd(49)+1) until t(a(i))=0 t(a(i))=1 lm=lm+25 pt=25 print_locate lm,pt print a(i) next i rem .......................................... for y=1 to 5 for x=1 to 5 if a(x) >a (x+1) a(0 )=a(x) a(x )=a(x+1) a(x+1)=a(0)
end_if next x
lm=40 pt=0 next y rem ............................................ for x=1 to 6 pt=50 lm=lm+25 print_locate lm,pt print a(x)
next x end
6 numeros parmi 49!! | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: hazard et classements Lun 21 Juin 2010 - 0:14 | |
| Joli ! Tirage au hasard, puis réaffichage classé en ordre croissant.
C'est là qu'on peut se poser la question si le tirage est vraiment aléatoire. Je sais de façon certaine qu'en informatique, il n'y a rien de vraiment aléatoire, et c'est bien pour cela que beaucoup de langages de programmation offrent une fonction pour "réinitialiser" le générateur de numéros de hasard !
Essaie de faire une boucle sur, disons 100.000 tirages, voir 1.000.000 tirages, et compter le nombre de numéros de 1 à 49 que génère l'expression int(rnd(49)+1). Ce serait intéressant à observer. Avec un grand nombre de tirages, les compteurs par numéro devraient avoir tendance à être équilibrés... | |
| | | Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: hazard et classements Lun 21 Juin 2010 - 7:43 | |
| En QB la fonction RND avait une fonction supplémentaire RANDOMIZE | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: hazard et classements Lun 21 Juin 2010 - 9:39 | |
| Exactement, et il en est de même dans d'autres lengages. Tout dépend comment la fonction rnd() est implémentée. Dans certains cas, on utilise l'horloge interne, ou le contenu de certaines adresses mémoire, pour générer un nombre aléatoire. Dans d'autres, on utilises des formules mathématiques pour générer un nombre à partir d'un nombre de base, et RANDOMIZE sert à changer cette base. Dans tous les cas, le nombre est dérivé de quelque chose de déterministe et théoriquement reproductible, et il pourrait être intéressant de mesurer de taux de correlation entre les nombres. Voici un premier essai de mesure ( il faut adapter la ligne 3 pour augmenter le nombre de tirages): - Code:
-
dim compteur%(49), i%, k%, s$, mini%, maxi%, n%
n% = 100000 for i%=1 to n% if frac(i%/100)=0 print_y_locate 0 print i% end_if k% = int(rnd(49)+1) compteur%(k%) = compteur%(k%) + 1 next i%
print i% = 0 repeat s$ = "" for k%=1 to 7 s$ = s$ + str$(compteur%(i%*7+k%)) + " " next k% print s$ i% = i% + 1 until i%=7
mini% = 1 maxi% = 1 for i%=1 to 49 if compteur%(i%)<compteur%(mini%) then mini% = i% if compteur%(i%)>compteur%(maxi%) then maxi% = i% next i%
print print "Mini: nombre "+str$(mini%)+" sorti "+str$(compteur%(mini%))+" fois soit "+str$(compteur%(mini%)*100/n%)+" %" print "Maxi: nombre "+str$(maxi%)+" sorti "+str$(compteur%(maxi%))+" fois soit "+str$(compteur%(maxi%)*100/n%)+" %" print "Le nombre idéal serait "+str$(n%/49)+" soit "+str$(((n%/49)*100)/n%)+" %"
end
| |
| | | sergeauze
Nombre de messages : 391 Age : 72 Localisation : Hautes Alpes France Date d'inscription : 09/01/2010
| Sujet: Re: hazard et classements Lun 21 Juin 2010 - 14:07 | |
| Le plus grand ecart varie de 20/100 environ de la valeur ideale . Apres plusieurs essais il semblerait que ce pourcentage ne baisse pas quand on augmente le nombre des tirages, comme on aurait pu le supposer | |
| | | sergeauze
Nombre de messages : 391 Age : 72 Localisation : Hautes Alpes France Date d'inscription : 09/01/2010
| Sujet: Re: hazard et classements Lun 21 Juin 2010 - 15:05 | |
| et en plus le tirage à pile ou face est pipé - Code:
-
dim x,a,b,c,z for z= 1 to 10 print "......................" b=0 c=0 for x= 1 to 10000 a=int(rnd(2)+1)
if a=1 then b=b+1 if a=2 then c=c+1 next x print "....b=",(b/10000)*100 ,"....pour 100" print "....c=",(c/10000)*100 , "....pour 100"
next z print " la moyenne devrait etre de 50 pour cent " end cela viendrait_il de la formulation de a? a=int(rnd(2)+1) | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: hazard et classements Lun 21 Juin 2010 - 18:47 | |
| C'est bien ce que soupçonnais. J'utilise aussi rnd() et je ne suis qu'à moitié satisfait du résultat. Cela vient sûrement du fait que rnd retourne un flottant ce qui donne beaucoup de décimales. J'ai essayé aussi avec k% = int(rnd(1)*49+1) pour limiter rnd() à l'intervalle de 0 à 1 ce qui est normalement le cas, mais le résultat est le même: même avec de très grands nombres de titrages, cela ne semble pas s'équilibrer. Donc, rnd() doit être biaisé quelque part. | |
| | | Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: hazard et classements Lun 21 Juin 2010 - 18:53 | |
| Justement! s'il n'y a pas d'équilibre c'est que le choix est vraiement aléatoire (sauf erreur). | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: hazard et classements Lun 21 Juin 2010 - 21:15 | |
| - Code:
-
DIM n(30), i, a
FOR i = 1 TO 10000 a = INT(RND(30)) + 1 n(a) = n(a) + 1 NEXT i
FOR i = 1 TO 30 PRINT STR$(i) + ": " + STR$(n(i)) NEXT i END D'une manière générale, après plusieurs essais, il semble que les petits nombres sont favorisés par rapport aux grands. En tout cas, la répartition n'est pas aléatoire, c'est sûr. J'ai essayé avec 100000 tirages (durée une quinzaine de secondes), c'est encore plus net. Et avec 500000 (1'10) encore plus. Grosso modo la fréquence de tirage diminue avec la valeur du nombre tiré.
Dernière édition par JL35 le Lun 21 Juin 2010 - 21:27, édité 2 fois | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: hazard et classements Lun 21 Juin 2010 - 21:24 | |
| Non, Jean-Claude. Un tirage vraiment aléatoire répond à des règles statistiques, et pour un grand nombre de tirages, n'importe quel nombre a les mêmes chances de sortir qu'un autre, et c'est pourquoi cela daoit s'équilibrer.
Bon, sur des nombres comme 100.000 tirages, il peut y avoir une divergence, mais cette divergence doit se réduire avec le nombre de tirages croissant, par exemple 1.000.000 ou 100.000.000 tirages. Or, il semble bien que la divergence, au lieu de s'estomper, s'accentue et c'est bien le sens de mon propos.
Attention: non que ce soit un bug ou un problème fondamental, car sur un petit nombre de tirages, cela ressemble à de l'aléatoire, donc bon pour tester un programme. C'est le principe que je veux pointer, c'est tout. | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: hazard et classements Lun 21 Juin 2010 - 21:40 | |
| Par curiosité, j'ai fait le même programme en QBasic, et là la répartition est parfaitement équilibrée (sans compter que l'exécution est beaucoup plus rapide: 1000000 de tirages en 7 secondes, entre 33100 et 33700 tirages par nombre quel qu'il soit). | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: hazard et classements Lun 21 Juin 2010 - 22:27 | |
| Cela confirme bien ce que je pense: la fonction rnd() n'est pas si "hasardeuse" que cela... Dans un casino, cela serait considéré comme des dés pipés ! | |
| | | Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: hazard et classements Mar 22 Juin 2010 - 8:03 | |
| - Citation :
- Un tirage vraiment aléatoire répond à des règles statistiques, et pour un grand nombre de tirages, n'importe quel nombre a les mêmes chances de sortir qu'un autre, et c'est pourquoi cela daoit s'équilibrer
Vu comme çà, éffectivement..... | |
| | | sergeauze
Nombre de messages : 391 Age : 72 Localisation : Hautes Alpes France Date d'inscription : 09/01/2010
| Sujet: Re: hazard et classements Mar 22 Juin 2010 - 17:33 | |
| Pour mes classements, j'aurais besoin d'un tutoriel ou d’un exemple sur les tableaux à 2 dimensions. J’ai compris comment ça fonctionnait pour la création d'un tableau à une dimension, en écriture et en lecture. Mais pour les tableaux à 2 dimensions ce n’est pas évident Exemple : dim A (6,12) Ca serait pour 1) le remplir d’un tirage de : 6 nombres dans la première colonne : 12 nombres dans la deuxième 2) Relire chaque colonne soit indépendamment, soit les 2 en même temps. Je bute souvent sur des évidences ! Mais je ne désespère pas : je m’améliore en suivant ce qui se passe sur le forum.
| |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: hazard et classements Mar 22 Juin 2010 - 18:28 | |
| dim A(6,12) crée une matrice rectangulaire de 7 lignes (numérotées de 0 à 6) et de 13 colonnes (numérotés de 0 à 12). Chaque colonne comprend évidemment le même nombre de cellules, soit 7 dans ce cas. Voici la représentation graphique: - Code:
-
colonnes ------------------------------------------------------------------------------------- Lignes | 0 1 2 3 4 5 6 7 8 9 10 11 12 ------------------------------------------------------------------------------------- 0 | c b ------------------------------------------------------------------------------------- 1 | ------------------------------------------------------------------------------------- 2 | ------------------------------------------------------------------------------------- 3 | a ------------------------------------------------------------------------------------- 4 | d ------------------------------------------------------------------------------------- 5 | ------------------------------------------------------------------------------------- 6 | -------------------------------------------------------------------------------------
(a) = A(3,0) (b)=A(0,12) (c) = A(0,0) d=A(4,6) Il faut donc que tu revoies un petit peu ton idée de ces tableaux... | |
| | | sergeauze
Nombre de messages : 391 Age : 72 Localisation : Hautes Alpes France Date d'inscription : 09/01/2010
| Sujet: Re: hazard et classements Mar 22 Juin 2010 - 21:33 | |
| Tu as raison je raisonnais conne si c'etait 2 tabeaux a une dimension mis cote à cote .Ici si j'ai bien compris 2 valeurs permettent d'en definir une troisieme ,un peu conmme les coordonnees dans un repere x,y me permettent d'afficher "le point". merci | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: hazard et classements Mar 22 Juin 2010 - 22:40 | |
| C'est tout-à-fait celz: les deux indices servent de "coordonnées" x et y dans un tableau à 2 dimensions, comme les coordonnées dans un plan.
| |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: hazard et classements Sam 26 Juin 2010 - 16:04 | |
| Pour ceux qui s'intéressent aux générateurs de hasard: j'ai mis une nouvelle version de ma DLL en ligne, avec une nouvelle fonction RandomValue qui représente une alternative à rnd(). Voici mon petit programme de mesure adapté à cette fonction: - Code:
-
dim compteur%(49), i%, k%, s$, mini%, maxi%, n%
dll_on "KGF.dll"
n% = 100000 for i%=1 to n% if frac(i%/100)=0 print_y_locate 0 print i% end_if ' k% = int(rnd(49)+1) k% = DLL_call1("RandomValue",49) compteur%(k%) = compteur%(k%) + 1 next i%
print i% = 0 repeat s$ = "" for k%=1 to 7 s$ = s$ + str$(compteur%(i%*7+k%)) + " " next k% print s$ i% = i% + 1 until i%=7
mini% = 1 maxi% = 1 for i%=1 to 49 if compteur%(i%)<compteur%(mini%) then mini% = i% if compteur%(i%)>compteur%(maxi%) then maxi% = i% next i%
print print "Mini: nombre "+str$(mini%)+" sorti "+str$(compteur%(mini%))+" fois soit "+str$(compteur%(mini%)*100/n%)+" %" print "Maxi: nombre "+str$(maxi%)+" sorti "+str$(compteur%(maxi%))+" fois soit "+str$(compteur%(maxi%)*100/n%)+" %" print "Le nombre idéal serait "+str$(n%/49)+" soit "+str$(((n%/49)*100)/n%)+" %"
end
| |
| | | sergeauze
Nombre de messages : 391 Age : 72 Localisation : Hautes Alpes France Date d'inscription : 09/01/2010
| Sujet: Re: hazard et classements Sam 26 Juin 2010 - 18:16 | |
| je passais par hazard... je vois que klaus ne lache pas facilement le morceau et va jusqu'au bout des ses idees. Jai teste ta version et celle dejl 35. Pour ta version et pour un tirage pile/face, la disparite entre pile et face disparait quand on fait 1.000.000 de tirages. et on est a 50/100 pour l'un oul'autre. Dans la version de jl35 pour un petit nombre de tirages effectivement j'ai aussi des trous. ça disparait pour un grand nommbre mais ce qui apparait c'est une disparite ente les mombres pairs et impairs . les pair on systematiquement un tirage plus favorable. | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: hazard et classements Sam 26 Juin 2010 - 21:12 | |
| Je crois avoir une idée de ce qui se passe. J'utilise le chrono interne de windows, dont le prends les chiffres les moins significatifs pour générer le nombre aléatoire. Alors, lorsqu'on fait une boucle sur les mêmes instructions, le temps d'exécution pour chaque boucle ne varie certainement pas beaucoup. Faites exécuter en même temps, un autre programme (du type visualisation de video, téléchagement etc), et cela sera tout à fait différent. Je vais travailler à réduire cet écueuil.
| |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: hazard et classements Sam 26 Juin 2010 - 21:33 | |
| Effectivement il doit y avoir une redondance qui finit par se reproduire régulièrement, en fonction des limites choisies... comme quoi l'aléatoire n'est pas si aléatoire que ça, mais ça on le savait déjà. . Et à part une horloge, je ne vois pas trop ce qu'on peut utiliser pour ça. Et une horloge, par définition, c'est bien régulier. Pas facile tout ça... | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: hazard et classements Sam 26 Juin 2010 - 23:16 | |
| Je pense voir trouvé. J'ai mis une version corrigée de la DLL en ligne, et voici mon programme de test "amélioré" pour pouvoir comparer, pour le même nombre d'itérations et la même valeur limite, le résultat de ma RandomValue) et de rnd(). Je pense que le résultat est sans appel. Bien sûr, plus la valeur limite est grande, plus il faut augmenter le nombre d'itérations pour avoir un résultat vraiment convergeant, mais RandomValue() converge réellement. Essayez le tirage de dés (limite=6, dès 10.000 itérations), ou le loto (limite=49, dès 100.00 itérations, ou mieux 500.000 itérations). - Code:
-
label lancer, lancer_rnd
dim compteur%(1000), i%, k%, s$, mini%, maxi%, limite%, boucles%
height 0,600: width 0,700
alpha 1: top 1,30: left 1,10: caption 1,"Fonction RandomValue()": font_bold 1 alpha 2: top 2,320: left 2,10: caption 2,"Fonction rnd()": font_bold 2 alpha 6: top 6,200: left 6,10: caption 6,"Nombre de tirages:" alpha 7: top 7,230: left 7,10: caption 7,"Valeur maxi:"
edit 11: top 11,200: left 11,120: text 11,"100000" edit 12: top 12,230: left 12,120: text 12,"49"
button 21: top 21,70: left 21,120: caption 21,"Lancer": on_click 21,lancer button 22: top 22,360: left 22,120: caption 22,"Lancer": on_click 22,lancer_rnd
memo 31: top 31,10: left 31,250: width 31,400: height 31,250: bar_vertical 31 memo 32: top 32,300: left 32,250: width 32,400: height 32,250: bar_vertical 32
dll_on "KGF.dll"
end
lancer: inactive 11: inactive 12: inactive 21: inactive 22 clear 31: limite% = val(text$(12)): boucles% = val(text$(11)) for i%=1 to limite%: compteur%(i%) = 0: next i%
for i%=1 to boucles% k% = DLL_call1("RandomValue",limite%) compteur%(k%) = compteur%(k%) + 1 next i%
i% = 0 repeat s$ = "" for k%=1 to 10 s$ = s$ + str$(compteur%(i%*10+k%)) + " " next k% item_add 31,s$ i% = i% + 1 until i%*10>=limite%
mini% = 1 maxi% = 1 for i%=1 to limite% if compteur%(i%)<compteur%(mini%) then mini% = i% if compteur%(i%)>compteur%(maxi%) then maxi% = i% next i%
print item_add 31,"Mini: nombre "+str$(mini%)+" sorti "+str$(compteur%(mini%))+" fois soit "+str$(compteur%(mini%)*100/boucles%)+" %" item_add 31,"Maxi: nombre "+str$(maxi%)+" sorti "+str$(compteur%(maxi%))+" fois soit "+str$(compteur%(maxi%)*100/boucles%)+" %" item_add 31,"Le nombre idéal serait "+str$(boucles%/limite%)+" soit "+str$(((boucles%/limite%)*100)/boucles%)+" %" active 11: active 12: active 21: active 22 return
lancer_rnd: inactive 11: inactive 12: inactive 21: inactive 22 clear 32: limite% = val(text$(12)): boucles% = val(text$(11)) for i%=1 to limite%: compteur%(i%) = 0: next i%
for i%=1 to boucles% k% = int(rnd(limite%)+1) compteur%(k%) = compteur%(k%) + 1 next i%
i% = 0 repeat s$ = "" for k%=1 to 10 s$ = s$ + str$(compteur%(i%*10+k%)) + " " next k% item_add 32,s$ i% = i% + 1 until i%*10>=limite%
mini% = 1 maxi% = 1 for i%=1 to limite% if compteur%(i%)<compteur%(mini%) then mini% = i% if compteur%(i%)>compteur%(maxi%) then maxi% = i% next i%
print item_add 32,"Mini: nombre "+str$(mini%)+" sorti "+str$(compteur%(mini%))+" fois soit "+str$(compteur%(mini%)*100/boucles%)+" %" item_add 32,"Maxi: nombre "+str$(maxi%)+" sorti "+str$(compteur%(maxi%))+" fois soit "+str$(compteur%(maxi%)*100/boucles%)+" %" item_add 32,"Le nombre idéal serait "+str$(boucles%/limite%)+" soit "+str$(((boucles%/limite%)*100)/boucles%)+" %" active 11: active 12 :active 21: active 22 return
end
| |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: hazard et classements Sam 26 Juin 2010 - 23:42 | |
| Bravo Klaus, cette fois-ci c'est tout à fait satisfaisant. Si je mesure l'écart entre le nombre le plus souvent tiré et le nombre le moins souvent tiré: 10000 tirages: écart de 20% 100000 tirages: écart de 6% 1000000 de tirages: écart de 2% c'est logique et conforme à ce qu'on peut en attendre, donc tout à fait utilisable comme ça.
(mais je n'irai pas jusqu'à dire qu'on a plus de chances de gagner au loto si c'est bien aléatoire ou non ! allez, j'irai même jusqu'à dire le contraire) | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: hazard et classements Dim 27 Juin 2010 - 0:14 | |
| Tu as bien sûr raison pour le loto ! S'il y avait un truc, un vrai, ça se saurait...
Mais pour moi, l'intérêt était ailleurs: c'était la pure satisfaction d'avoir une routine dans le domaine mathématique qui fonctionne comme elle devrait. | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: hazard et classements Dim 27 Juin 2010 - 11:16 | |
| Pour faire la promo de mon EDI réalisé entièrement en Panoramic:Voici le fichier "projet" du programme test_RandomValue qui est la reprise du programme publié ci-dessus, mais fait avec l'EDI ! Il faut enregistrer ce fichier sous le nom de test_RandomValue.ppe (Panoramic Projet EDI). On lance l'EDI, on clique sur "Ouvrir" et on choisir ce fichier, puis on clique sur "Générer", et on obtient un fichier test_RandomValue.bas qui est directement utilisable dans l'éditeur (attention tout de même au répertoire de KGF.dll: chez moi, elle est dans le répertoire de l'éditeur Panoramic, et comme ça, je n'ai pas de chemin d'accès à mettre tant que je suis dans l'éditeur). Cette modif peut être faite dans l'EDI, en modifiant la propriété Code de l'objet Code2. - Code:
-
0 0 0 0 0 0 0 0 .Projet Nom Auteur Chemin Créé le Modifié le Version Commentaire ...fin... ... Test_RandomValue Klaus C:\Panedi\ 26/06/2010 26/06/2010 V1.0 Reproduction du programme test_rnd ...fin... 1 0 0 0 240 320 0 0 .Form id .Propriétés Top Left Width Height Hint Color Font_Name Font_Size Font_Color Parent Caption File_Load .Interrupteurs Inactive Hide Hint_Hide Full_Space Font_Bold Font_Italic Font_Underline Font_Strike Cursor_Arrow Cursor_Beam Cursor_Cross Cursor_Default Cursor_Help Cursor_Hide Cursor_Hourglass Cursor_NoParking Cursor_Point Print_Target_Is Border_Hide Border_Normal Border_Small To_Background To_Forground .Evènements On_click On_key_up On_key_down ...fin... ... 0 ... 0 0 700 700 <Rien> 235,235,235 <Rien> 10 0,0,0 0 <Rien> <Rien> ... <Rien> <Rien> <Rien> <Rien> <Rien> <Rien> <Rien> <Rien> <Rien> <Rien> <Rien> <Rien> <Rien> <Rien> <Rien> <Rien> <Rien> <Rien> <Rien> <Rien> <Rien> <Rien> <Rien> ... <Rien> <Rien> <Rien> ...fin... 11 1 30 10 17 150 0 0 .Alpha id .Propriétés Top Left Width Height Hint Color Font_Name Font_Size Font_Color Parent Caption .Interrupteurs Inactive Hide Hint_Hide Full_Space Font_Bold Font_Italic Font_Underline Font_Strike Cursor_Arrow Cursor_Beam Cursor_Cross Cursor_Default Cursor_Help Cursor_Hide Cursor_Hourglass Cursor_NoParking Cursor_Point .Evènements On_click ...fin... ... 1 ... 30 10 150 17 <Rien> 235,235,235 <Rien> 8 0,0,0 0 #Fonction RandomValue() ... <Rien> <Rien> <Rien> <Rien> Oui <Rien> <Rien> <Rien> <Rien> <Rien> <Rien> <Rien> <Rien> <Rien> <Rien> <Rien> <Rien> ... <Rien> ...fin... 11 2 350 10 17 65 0 0 .Alpha id .Propriétés Top Left Width Height Hint Color Font_Name Font_Size Font_Color Parent Caption .Interrupteurs Inactive Hide Hint_Hide Full_Space Font_Bold Font_Italic Font_Underline Font_Strike Cursor_Arrow Cursor_Beam Cursor_Cross Cursor_Default Cursor_Help Cursor_Hide Cursor_Hourglass Cursor_NoParking Cursor_Point .Evènements On_click ...fin... ... 2 ... 350 10 65 17 <Rien> 235,235,235 <Rien> 8 0,0,0 0 #Fonction Rnd() ... <Rien> <Rien> <Rien> <Rien> Oui <Rien> <Rien> <Rien> <Rien> <Rien> <Rien> <Rien> <Rien> <Rien> <Rien> <Rien> <Rien> ... <Rien> ...fin... 15 3 10 250 300 400 0 0 .Memo id .Propriétés Top Left Width Height Hint Color Font_Name Font_Size Font_Color Parent File_Load Item_add .Interrupteurs Inactive Hide Hint_Hide Full_Space Font_Bold Font_Italic Font_Underline Font_Strike Cursor_Arrow Cursor_Beam Cursor_Cross Cursor_Default Cursor_Help Cursor_Hide Cursor_Hourglass Cursor_NoParking Cursor_Point Print_Target_Is Bar_Horizontal Bar_Vertical .Evènements On_click On_change On_key_up On_key_down ...fin... ... 3 ... 10 250 400 300 <Rien> 235,235,235 <Rien> 10 0,0,0 0 <Rien> <Rien> ... <Rien> <Rien> <Rien> <Rien> <Rien> <Rien> <Rien> <Rien> <Rien> <Rien> <Rien> <Rien> <Rien> <Rien> <Rien> <Rien> <Rien> <Rien> <Rien> <Rien> ... <Rien> <Rien> <Rien> <Rien> ...fin... 15 4 320 250 300 400 0 0 .Memo id .Propriétés Top Left Width Height Hint Color Font_Name Font_Size Font_Color Parent File_Load Item_add .Interrupteurs Inactive Hide Hint_Hide Full_Space Font_Bold Font_Italic Font_Underline Font_Strike Cursor_Arrow Cursor_Beam Cursor_Cross Cursor_Default Cursor_Help Cursor_Hide Cursor_Hourglass Cursor_NoParking Cursor_Point Print_Target_Is Bar_Horizontal Bar_Vertical .Evènements On_click On_change On_key_up On_key_down ...fin... ... 4 ... 320 250 400 300 <Rien> 235,235,235 <Rien> 10 0,0,0 0 <Rien> <Rien> ... <Rien> <Rien> <Rien> <Rien> <Rien> <Rien> <Rien> <Rien> <Rien> <Rien> <Rien> <Rien> <Rien> <Rien> <Rien> <Rien> <Rien> <Rien> <Rien> <Rien> ... <Rien> <Rien> <Rien> <Rien> ...fin... 11 5 250 10 17 120 0 0 .Alpha id .Propriétés Top Left Width Height Hint Color Font_Name Font_Size Font_Color Parent Caption .Interrupteurs Inactive Hide Hint_Hide Full_Space Font_Bold Font_Italic Font_Underline Font_Strike Cursor_Arrow Cursor_Beam Cursor_Cross Cursor_Default Cursor_Help Cursor_Hide Cursor_Hourglass Cursor_NoParking Cursor_Point .Evènements On_click ...fin... ... 5 ... 250 10 120 17 <Rien> 235,235,235 <Rien> 10 0,0,0 0 #Nombre d'itérations: ... <Rien> <Rien> <Rien> <Rien> <Rien> <Rien> <Rien> <Rien> <Rien> <Rien> <Rien> <Rien> <Rien> <Rien> <Rien> <Rien> <Rien> ... <Rien> ...fin... 11 6 290 10 17 120 0 0 .Alpha id .Propriétés Top Left Width Height Hint Color Font_Name Font_Size Font_Color Parent Caption .Interrupteurs Inactive Hide Hint_Hide Full_Space Font_Bold Font_Italic Font_Underline Font_Strike Cursor_Arrow Cursor_Beam Cursor_Cross Cursor_Default Cursor_Help Cursor_Hide Cursor_Hourglass Cursor_NoParking Cursor_Point .Evènements On_click ...fin... ... 6 ... 290 10 120 17 <Rien> 235,235,235 <Rien> 10 0,0,0 0 #Valeur maxi: ... <Rien> <Rien> <Rien> <Rien> <Rien> <Rien> <Rien> <Rien> <Rien> <Rien> <Rien> <Rien> <Rien> <Rien> <Rien> <Rien> <Rien> ... <Rien> ...fin... 13 7 250 140 17 65 0 0 .Edit id .Propriétés Top Left Width Height Hint Color Font_Name Font_Size Font_Color Parent Text .Interrupteurs Inactive Hide Hint_Hide Full_Space Font_Bold Font_Italic Font_Underline Font_Strike Cursor_Arrow Cursor_Beam Cursor_Cross Cursor_Default Cursor_Help Cursor_Hide Cursor_Hourglass Cursor_NoParking Cursor_Point Secret_On .Evènements On_click On_change On_key_up On_key_down ...fin... ... 7 ... 250 140 65 17 <Rien> 235,235,235 <Rien> 10 0,0,0 0 100000 ... <Rien> <Rien> <Rien> <Rien> <Rien> <Rien> <Rien> <Rien> <Rien> <Rien> <Rien> <Rien> <Rien> <Rien> <Rien> <Rien> <Rien> <Rien> ... <Rien> <Rien> <Rien> <Rien> ...fin... 13 8 290 140 17 65 0 0 .Edit id .Propriétés Top Left Width Height Hint Color Font_Name Font_Size Font_Color Parent Text .Interrupteurs Inactive Hide Hint_Hide Full_Space Font_Bold Font_Italic Font_Underline Font_Strike Cursor_Arrow Cursor_Beam Cursor_Cross Cursor_Default Cursor_Help Cursor_Hide Cursor_Hourglass Cursor_NoParking Cursor_Point Secret_On .Evènements On_click On_change On_key_up On_key_down ...fin... ... 8 ... 290 140 65 17 <Rien> 235,235,235 <Rien> 10 0,0,0 0 49 ... <Rien> <Rien> <Rien> <Rien> <Rien> <Rien> <Rien> <Rien> <Rien> <Rien> <Rien> <Rien> <Rien> <Rien> <Rien> <Rien> <Rien> <Rien> ... <Rien> <Rien> <Rien> <Rien> ...fin... 12 9 100 90 17 65 0 0 .Button id .Propriétés Top Left Width Height Hint Font_Name Font_Size Font_Color Parent Caption .Interrupteurs Inactive Hide Hint_Hide Full_Space Font_Bold Font_Italic Font_Underline Font_Strike Cursor_Arrow Cursor_Beam Cursor_Cross Cursor_Default Cursor_Help Cursor_Hide Cursor_Hourglass Cursor_NoParking Cursor_Point .Evènements On_click On_key_up On_key_down ...fin... ... 9 ... 100 90 65 17 <Rien> <Rien> 10 0,0,0 0 Lancer ... <Rien> <Rien> <Rien> <Rien> <Rien> <Rien> <Rien> <Rien> <Rien> <Rien> <Rien> <Rien> <Rien> <Rien> <Rien> <Rien> <Rien> ... panedi_temp_prop_On_click_10.pei .code_on panedi_temp_prop_On_click_10.pei inactive 7: inactive 8: inactive 9: inactive 10 clear 3: limite% = val(text$(8)): boucles% = val(text$(7)) for i%=1 to limite%: compteur%(i%) = 0: next i%
for i%=1 to boucles% k% = DLL_call1("RandomValue",limite%) compteur%(k%) = compteur%(k%) + 1 next i%
i% = 0 repeat s$ = "" for k%=1 to 10 s$ = s$ + str$(compteur%(i%*10+k%)) + " " next k% item_add 3,s$ i% = i% + 1 until i%*10>=limite%
mini% = 1 maxi% = 1 for i%=1 to limite% if compteur%(i%)<compteur%(mini%) then mini% = i% if compteur%(i%)>compteur%(maxi%) then maxi% = i% next i%
print item_add 3,"Mini: nombre "+str$(mini%)+" sorti "+str$(compteur%(mini%))+" fois soit "+str$(compteur%(mini%)*100/boucles%)+" %" item_add 3,"Maxi: nombre "+str$(maxi%)+" sorti "+str$(compteur%(maxi%))+" fois soit "+str$(compteur%(maxi%)*100/boucles%)+" %" item_add 3,"Le nombre idéal serait "+str$(boucles%/limite%)+" soit "+str$(((boucles%/limite%)*100)/boucles%)+" %" active 7: active 8: active 9: active 10 .code_off <Rien> <Rien> ...fin... 12 10 440 90 17 65 0 0 .Button id .Propriétés Top Left Width Height Hint Font_Name Font_Size Font_Color Parent Caption .Interrupteurs Inactive Hide Hint_Hide Full_Space Font_Bold Font_Italic Font_Underline Font_Strike Cursor_Arrow Cursor_Beam Cursor_Cross Cursor_Default Cursor_Help Cursor_Hide Cursor_Hourglass Cursor_NoParking Cursor_Point .Evènements On_click On_key_up On_key_down ...fin... ... 10 ... 440 90 65 17 <Rien> <Rien> 10 0,0,0 0 Lancer ... <Rien> <Rien> <Rien> <Rien> <Rien> <Rien> <Rien> <Rien> <Rien> <Rien> <Rien> <Rien> <Rien> <Rien> <Rien> <Rien> <Rien> ... panedi_temp_prop_On_click_11.pei .code_on panedi_temp_prop_On_click_11.pei inactive 7: inactive 8: inactive 9: inactive 10 clear 4: limite% = val(text$(8)): boucles% = val(text$(7)) for i%=1 to limite%: compteur%(i%) = 0: next i%
for i%=1 to boucles% k% = int(rnd(limite%)+1) compteur%(k%) = compteur%(k%) + 1 next i%
i% = 0 repeat s$ = "" for k%=1 to 10 s$ = s$ + str$(compteur%(i%*10+k%)) + " " next k% item_add 4,s$ i% = i% + 1 until i%*10>=limite%
mini% = 1 maxi% = 1 for i%=1 to limite% if compteur%(i%)<compteur%(mini%) then mini% = i% if compteur%(i%)>compteur%(maxi%) then maxi% = i% next i%
print item_add 4,"Mini: nombre "+str$(mini%)+" sorti "+str$(compteur%(mini%))+" fois soit "+str$(compteur%(mini%)*100/boucles%)+" %" item_add 4,"Maxi: nombre "+str$(maxi%)+" sorti "+str$(compteur%(maxi%))+" fois soit "+str$(compteur%(maxi%)*100/boucles%)+" %" item_add 4,"Le nombre idéal serait "+str$(boucles%/limite%)+" soit "+str$(((boucles%/limite%)*100)/boucles%)+" %" active 7: active 8 :active 9: active 10 .code_off <Rien> <Rien> ...fin... 2 0 0 0 0 0 0 0 .Code1 Comment Code ...fin... ... Déclaration des variables panedi_temp_prop_Code_12.pei .code_on panedi_temp_prop_Code_12.pei dim compteur%(1000), i%, k%, s$, mini%, maxi%, limite%, boucles% .code_off ...fin... 3 0 0 0 0 0 0 0 .Code2 Comment Code ...fin... ... Initialisations diverses panedi_temp_prop_Code_13.pei .code_on panedi_temp_prop_Code_13.pei dll_on "KGF.dll" .code_off ...fin...
Dernière édition par Klaus le Dim 27 Juin 2010 - 13:20, édité 1 fois | |
| | | Contenu sponsorisé
| Sujet: Re: hazard et classements | |
| |
| | | | hazard et classements | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |