PureBasic

Forums PureBasic
Nous sommes le Dim 21/Juil/2019 1:18

Heures au format UTC + 1 heure




Poster un nouveau sujet Répondre au sujet  [ 6 messages ] 
Auteur Message
 Sujet du message: Pourcentage "non lineaire"
MessagePosté: Mer 15/Mai/2019 11:49 
Hors ligne
Avatar de l’utilisateur

Inscription: Mer 09/Nov/2005 9:53
Messages: 3981
Salut, :wink:

je poste ici un truc et astuce.

Citation:
Distribution de 20000 nombres :

Nombre 0 : 5582 (28%)
Nombre 1 : 3649 (18%)
Nombre 2 : 2776 (14%)
Nombre 3 : 2153 (11%)
Nombre 4 : 1639 (8%)
Nombre 5 : 1378 (7%)
Nombre 6 : 955 (5%)
Nombre 7 : 785 (4%)
Nombre 8 : 559 (3%)
Nombre 9 : 364 (2%)
Nombre 10 : 160 (1%)


Code:
;;;;;;;;;;;


cmb=20000
absis=10

;;;;;;;;;;;

Dim nb(absis)

For i=1 To cmb
  a=(Random(Random(absis)))
  nb(a)+1
Next

;;;;;;;;;;;

Dim pourcentage.f(absis)

Debug "Distribution de "+Str(cmb)+" nombres :"
Debug ""

For i=0 To absis
  pourcentage(i)=(nb(i)*100)/cmb
  Debug "Nombre "+Str(i)+" : "+Str(nb(i))+" ("+StrF(pourcentage(i))+"%)"
Next

;;;;;;;;;;;;;;;;;;;;;;;


Ca sert a quoi me direz vous ?
Imaginez que vous faisiez un jeu où il faut tuer des monstres qui droppent des items. Parmi ces items, un item tres rare. Et bien, il correspondrait au chiffre 10 qui sort a 1% du temps (grace a la ligne : (Random(Random(absis))) )

_________________
http://HexaScrabble.com/
!i!i!i!i!i!i!i!i!i!
!i!i!i!i!i!i!
!i!i!i!
//// Informations ////
Portable LENOVO ideapad 110-17ACL 64 bits
Version de PB : 5.70LTS - 32 bits


Dernière édition par SPH le Mer 15/Mai/2019 11:54, édité 1 fois.

Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Pourcentage "non lineaire"
MessagePosté: Mer 15/Mai/2019 11:51 
Hors ligne
Avatar de l’utilisateur

Inscription: Mer 09/Nov/2005 9:53
Messages: 3981
Alors que l'on obtient un pourcentage lineaire avec ce code :

Citation:
Distribution de 20000 nombres :

Nombre 0 : 1846 (9.2299995422%)
Nombre 1 : 1838 (9.1899995804%)
Nombre 2 : 1874 (9.3699998856%)
Nombre 3 : 1830 (9.1499996185%)
Nombre 4 : 1770 (8.8500003815%)
Nombre 5 : 1756 (8.779999733%)
Nombre 6 : 1847 (9.2349996567%)
Nombre 7 : 1833 (9.1649999619%)
Nombre 8 : 1842 (9.2100000381%)
Nombre 9 : 1812 (9.0600004196%)
Nombre 10 : 1752 (8.7600002289%)



Code:
cmb=20000
absis=10

;;;;;;;;;;;

Dim nb(absis)

For i=1 To cmb
  a=(Random(absis)) ;;;;;;;;;;;;;;;; 1 seul random
  nb(a)+1
Next

;;;;;;;;;;;

Dim pourcentage.f(absis)

Debug "Distribution de "+Str(cmb)+" nombres :"
Debug ""

For i=0 To absis
  pourcentage(i)=(nb(i)*100)/cmb
  Debug "Nombre "+Str(i)+" : "+Str(nb(i))+" ("+StrF(pourcentage(i))+"%)"
Next


_________________
http://HexaScrabble.com/
!i!i!i!i!i!i!i!i!i!
!i!i!i!i!i!i!
!i!i!i!
//// Informations ////
Portable LENOVO ideapad 110-17ACL 64 bits
Version de PB : 5.70LTS - 32 bits


Dernière édition par SPH le Mer 15/Mai/2019 18:43, édité 1 fois.

Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Pourcentage "non lineaire"
MessagePosté: Mer 15/Mai/2019 12:41 
Hors ligne
Avatar de l’utilisateur

Inscription: Mer 09/Nov/2005 9:53
Messages: 3981
Avec 3 random :
Citation:
Distribution de 20000 nombres :

Nombre 0 : 9759 (48.7949981689%)
Nombre 1 : 4246 (21.2299995422%)
Nombre 2 : 2346 (11.7299995422%)
Nombre 3 : 1459 (7.2950000763%)
Nombre 4 : 865 (4.3249998093%)
Nombre 5 : 567 (2.8350000381%)
Nombre 6 : 377 (1.8849999905%)
Nombre 7 : 218 (1.0900000334%)
Nombre 8 : 103 (0.5149999857%)
Nombre 9 : 48 (0.2399999946%)
Nombre 10 : 12 (0.0599999987%)

_________________
http://HexaScrabble.com/
!i!i!i!i!i!i!i!i!i!
!i!i!i!i!i!i!
!i!i!i!
//// Informations ////
Portable LENOVO ideapad 110-17ACL 64 bits
Version de PB : 5.70LTS - 32 bits


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Pourcentage "non lineaire"
MessagePosté: Mer 15/Mai/2019 14:39 
Hors ligne
Avatar de l’utilisateur

Inscription: Dim 09/Oct/2005 16:51
Messages: 8705
ça marche bien.
On a plus qu'à faire un jeu avec des lootbox payantes :mrgreen:

_________________
~~~~Règles du forum ~~~~
.: Ar-S :. Tour + portable W10 x64 PB 5.4x / 5.6x
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
RESIZER GOLD : Mon logiciel de redimensionnement par lot 100% PB


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Pourcentage "non lineaire"
MessagePosté: Mer 15/Mai/2019 15:10 
Hors ligne
Avatar de l’utilisateur

Inscription: Mer 09/Nov/2005 9:53
Messages: 3981
Figure toi que j'ai utilisé cette technique pour mon jeu de scrabble (pour faire la "rareté" des pieces d'argent, d'or et de diamant) 8)

_________________
http://HexaScrabble.com/
!i!i!i!i!i!i!i!i!i!
!i!i!i!i!i!i!
!i!i!i!
//// Informations ////
Portable LENOVO ideapad 110-17ACL 64 bits
Version de PB : 5.70LTS - 32 bits


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Pourcentage "non lineaire"
MessagePosté: Mer 15/Mai/2019 18:43 
Hors ligne

Inscription: Ven 29/Juin/2007 17:50
Messages: 3462
Je ne connaissais pas cette méthode. C'est bien de voir les stats qui vont avec.
Je serais plus resté sur celle-ci :
Code:
Define Max.I ; racine du maximum (ou écart-type ? ou précision ?)
Define Scale.D ; échelle
X.D = Pow(Random(Max), 2.0) * Scale

Ce n'est pas forcément mieux. Merci pour l'astuce.

_________________
Juste la 4G pour Smartphone


Haut
 Profil  
Répondre en citant le message  
Afficher les messages postés depuis:  Trier par  
Poster un nouveau sujet Répondre au sujet  [ 6 messages ] 

Heures au format UTC + 1 heure


Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités


Vous ne pouvez pas poster de nouveaux sujets
Vous ne pouvez pas répondre aux sujets
Vous ne pouvez pas éditer vos messages
Vous ne pouvez pas supprimer vos messages

Rechercher:
Aller à:  

 


Powered by phpBB © 2008 phpBB Group | Traduction par: phpBB-fr.com
subSilver+ theme by Canver Software, sponsor Sanal Modifiye