FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  MembresMembres  Connexion  
Derniers sujets
» Logiciel de planétarium.
hazard - hazard et classements Emptypar Pedro Aujourd'hui à 8:08

» Un autre pense-bête...
hazard - hazard et classements Emptypar Froggy One Jeu 21 Nov 2024 - 15:54

» Récupération du contenu d'une page html.
hazard - hazard et classements Emptypar Pedro Sam 16 Nov 2024 - 14:04

» Décompilation
hazard - hazard et classements Emptypar JL35 Mar 12 Nov 2024 - 19:57

» Un album photos comme du temps des grands-mères
hazard - hazard et classements Emptypar jjn4 Mar 12 Nov 2024 - 17:23

» traitement d'une feuille excel
hazard - hazard et classements Emptypar jjn4 Jeu 7 Nov 2024 - 3:52

» Aide-mémoire mensuel
hazard - hazard et classements Emptypar jjn4 Lun 4 Nov 2024 - 18:56

» Des incomprèhension avec Timer
hazard - hazard et classements Emptypar Klaus Mer 30 Oct 2024 - 18:26

» KGF_dll - nouvelles versions
hazard - hazard et classements Emptypar Klaus Mar 29 Oct 2024 - 17:58

» instructions panoramic
hazard - hazard et classements Emptypar maelilou Lun 28 Oct 2024 - 19:51

» Figures fractales
hazard - hazard et classements Emptypar Marc Ven 25 Oct 2024 - 12:18

» Panoramic et Scanette
hazard - hazard et classements Emptypar Yannick Mer 25 Sep 2024 - 22:16

» Editeur d étiquette avec QR évolutif
hazard - hazard et classements Emptypar JL35 Lun 23 Sep 2024 - 22:40

» BUG QR Code DelphiZXingQRCode
hazard - hazard et classements Emptypar Yannick Dim 22 Sep 2024 - 11:40

» fichier.exe
hazard - hazard et classements Emptypar leclode Ven 20 Sep 2024 - 19:02

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Novembre 2024
LunMarMerJeuVenSamDim
    123
45678910
11121314151617
18192021222324
252627282930 
CalendrierCalendrier
Le deal à ne pas rater :
Boutique Nike : -25% dès 50€ sur TOUT le site Nike avec le code ...
Voir le deal

 

 hazard et classements

Aller en bas 
4 participants
Aller à la page : 1, 2  Suivant
AuteurMessage
sergeauze

sergeauze


Nombre de messages : 391
Age : 72
Localisation : Hautes Alpes France
Date d'inscription : 09/01/2010

hazard - hazard et classements Empty
MessageSujet: hazard et classements   hazard - hazard et classements EmptyDim 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!!
Revenir en haut Aller en bas
http://sergeauze.blog-video.tv/
Klaus

Klaus


Nombre de messages : 12331
Age : 75
Localisation : Ile de France
Date d'inscription : 29/12/2009

hazard - hazard et classements Empty
MessageSujet: Re: hazard et classements   hazard - hazard et classements EmptyLun 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...
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Jean Claude

Jean Claude


Nombre de messages : 5950
Age : 70
Localisation : 83 Var
Date d'inscription : 07/05/2009

hazard - hazard et classements Empty
MessageSujet: Re: hazard et classements   hazard - hazard et classements EmptyLun 21 Juin 2010 - 7:43

En QB la fonction RND avait une fonction supplémentaire RANDOMIZE
Revenir en haut Aller en bas
Klaus

Klaus


Nombre de messages : 12331
Age : 75
Localisation : Ile de France
Date d'inscription : 29/12/2009

hazard - hazard et classements Empty
MessageSujet: Re: hazard et classements   hazard - hazard et classements EmptyLun 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
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
sergeauze

sergeauze


Nombre de messages : 391
Age : 72
Localisation : Hautes Alpes France
Date d'inscription : 09/01/2010

hazard - hazard et classements Empty
MessageSujet: Re: hazard et classements   hazard - hazard et classements EmptyLun 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
Revenir en haut Aller en bas
http://sergeauze.blog-video.tv/
sergeauze

sergeauze


Nombre de messages : 391
Age : 72
Localisation : Hautes Alpes France
Date d'inscription : 09/01/2010

hazard - hazard et classements Empty
MessageSujet: Re: hazard et classements   hazard - hazard et classements EmptyLun 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)
Revenir en haut Aller en bas
http://sergeauze.blog-video.tv/
Klaus

Klaus


Nombre de messages : 12331
Age : 75
Localisation : Ile de France
Date d'inscription : 29/12/2009

hazard - hazard et classements Empty
MessageSujet: Re: hazard et classements   hazard - hazard et classements EmptyLun 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.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Jean Claude

Jean Claude


Nombre de messages : 5950
Age : 70
Localisation : 83 Var
Date d'inscription : 07/05/2009

hazard - hazard et classements Empty
MessageSujet: Re: hazard et classements   hazard - hazard et classements EmptyLun 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).
Revenir en haut Aller en bas
JL35




Nombre de messages : 7112
Localisation : 77
Date d'inscription : 29/11/2007

hazard - hazard et classements Empty
MessageSujet: Re: hazard et classements   hazard - hazard et classements EmptyLun 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
Revenir en haut Aller en bas
Klaus

Klaus


Nombre de messages : 12331
Age : 75
Localisation : Ile de France
Date d'inscription : 29/12/2009

hazard - hazard et classements Empty
MessageSujet: Re: hazard et classements   hazard - hazard et classements EmptyLun 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.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
JL35




Nombre de messages : 7112
Localisation : 77
Date d'inscription : 29/11/2007

hazard - hazard et classements Empty
MessageSujet: Re: hazard et classements   hazard - hazard et classements EmptyLun 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).
Revenir en haut Aller en bas
Klaus

Klaus


Nombre de messages : 12331
Age : 75
Localisation : Ile de France
Date d'inscription : 29/12/2009

hazard - hazard et classements Empty
MessageSujet: Re: hazard et classements   hazard - hazard et classements EmptyLun 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 !
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Jean Claude

Jean Claude


Nombre de messages : 5950
Age : 70
Localisation : 83 Var
Date d'inscription : 07/05/2009

hazard - hazard et classements Empty
MessageSujet: Re: hazard et classements   hazard - hazard et classements EmptyMar 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.....
Revenir en haut Aller en bas
sergeauze

sergeauze


Nombre de messages : 391
Age : 72
Localisation : Hautes Alpes France
Date d'inscription : 09/01/2010

hazard - hazard et classements Empty
MessageSujet: Re: hazard et classements   hazard - hazard et classements EmptyMar 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.
Revenir en haut Aller en bas
http://sergeauze.blog-video.tv/
Klaus

Klaus


Nombre de messages : 12331
Age : 75
Localisation : Ile de France
Date d'inscription : 29/12/2009

hazard - hazard et classements Empty
MessageSujet: Re: hazard et classements   hazard - hazard et classements EmptyMar 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...
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
sergeauze

sergeauze


Nombre de messages : 391
Age : 72
Localisation : Hautes Alpes France
Date d'inscription : 09/01/2010

hazard - hazard et classements Empty
MessageSujet: Re: hazard et classements   hazard - hazard et classements EmptyMar 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
Revenir en haut Aller en bas
http://sergeauze.blog-video.tv/
Klaus

Klaus


Nombre de messages : 12331
Age : 75
Localisation : Ile de France
Date d'inscription : 29/12/2009

hazard - hazard et classements Empty
MessageSujet: Re: hazard et classements   hazard - hazard et classements EmptyMar 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.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Klaus

Klaus


Nombre de messages : 12331
Age : 75
Localisation : Ile de France
Date d'inscription : 29/12/2009

hazard - hazard et classements Empty
MessageSujet: Re: hazard et classements   hazard - hazard et classements EmptySam 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
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
sergeauze

sergeauze


Nombre de messages : 391
Age : 72
Localisation : Hautes Alpes France
Date d'inscription : 09/01/2010

hazard - hazard et classements Empty
MessageSujet: Re: hazard et classements   hazard - hazard et classements EmptySam 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.
Revenir en haut Aller en bas
http://sergeauze.blog-video.tv/
Klaus

Klaus


Nombre de messages : 12331
Age : 75
Localisation : Ile de France
Date d'inscription : 29/12/2009

hazard - hazard et classements Empty
MessageSujet: Re: hazard et classements   hazard - hazard et classements EmptySam 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.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
JL35




Nombre de messages : 7112
Localisation : 77
Date d'inscription : 29/11/2007

hazard - hazard et classements Empty
MessageSujet: Re: hazard et classements   hazard - hazard et classements EmptySam 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...
Revenir en haut Aller en bas
Klaus

Klaus


Nombre de messages : 12331
Age : 75
Localisation : Ile de France
Date d'inscription : 29/12/2009

hazard - hazard et classements Empty
MessageSujet: Re: hazard et classements   hazard - hazard et classements EmptySam 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
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
JL35




Nombre de messages : 7112
Localisation : 77
Date d'inscription : 29/11/2007

hazard - hazard et classements Empty
MessageSujet: Re: hazard et classements   hazard - hazard et classements EmptySam 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)
Revenir en haut Aller en bas
Klaus

Klaus


Nombre de messages : 12331
Age : 75
Localisation : Ile de France
Date d'inscription : 29/12/2009

hazard - hazard et classements Empty
MessageSujet: Re: hazard et classements   hazard - hazard et classements EmptyDim 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.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Klaus

Klaus


Nombre de messages : 12331
Age : 75
Localisation : Ile de France
Date d'inscription : 29/12/2009

hazard - hazard et classements Empty
MessageSujet: Re: hazard et classements   hazard - hazard et classements EmptyDim 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
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Contenu sponsorisé





hazard - hazard et classements Empty
MessageSujet: Re: hazard et classements   hazard - hazard et classements Empty

Revenir en haut Aller en bas
 
hazard et classements
Revenir en haut 
Page 1 sur 2Aller à la page : 1, 2  Suivant

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC :: Présentation et bavardage-
Sauter vers: