FORUMS PROFESSIONNELS
WINDEV
,
WEBDEV
et
WINDEV Mobile
Accueil
|
Messages récents
|
Connexion
|
Déconnexion
|
Français
Accueil
→
WINDEV Mobile 2024
→
Valeur moyenne quelle méthode utilisée en programmation
Valeur moyenne quelle méthode utilisée en programmation
Débuté par s.brackez, 19 avr. 2007 12:03 - 4 réponses
Connectez-vous…
s.brackez
#1
Posté le 19 avril 2007 - 12:03
Je demande conseil sur la meilleure méthode d'après vous pour obtenir "la valeur moyenne" d'une série d'entier...
je m'explique, mon application wm recois une série d'entier qui représente une température chaque seconde, pendant une séquence de 8 sec.
1sec 82°
2sec 83°
3sec 82°
4sec 81°
5sec 80°
6sec 82°
7sec 81°
8sec 82°
je dois obtenir le plus rapidement possible la température qui revient le plus dans la série.
dans l'exemple la c'est 82° (4 cas dans la série).
Avez vous une idée sur une astuce de programmation pour un calcul hyper rapide ?
je pense partir sur un tableau dynamique de 8 entier et effectuer un comptage/tri...
Signaler
0
0
f.demilly
#2
Posté le 19 avril 2007 - 13:23
Bonjour,
Tu peux utiliser une liste chainée d'objets qui contiennent la température, et le nombre d'occurrence.
A chaque lecture de la temperature, tu pacrours la liste chainée:
Soit la température est déjà enregistrée => tu incrémentes le bombre d'occurences
Soit elle n'y est pas => tu l'ajoutes.
Pour seulement 8 valeurs, il n'est pas nécessaire de trier la liste chainée.
Au final, il te suffit de chercher dans la liste la valeur qui a le plus grand nombre d'occurrence. Chercher une valeur dans une liste chainée de 8 enregistrements, ce n'est pas la mort...
Dans ton exemple, tu auras seulement 4 enregistrements, dans cet ordre:
82;4
83;1
81;2
80;1
Après, si les valeurs sont dans une base:
select temp,count(*) from LaTable group by valeur order by 2 desc
La première ligne contient la température et le nombre de fois qu'elle apparait.
Frédéric.
Signaler
0
0
s.brackez
#3
Posté le 19 avril 2007 - 13:41
Merci pour cette méthode Frédéric !!!
Signaler
0
0
aze
#4
Posté le 19 avril 2007 - 13:42
A la louche :
SInfoTemperature est structure
dwTemperature est entier // Valeur de la temperature
dwOccurrence est entier // Nombre d'occurrences
Fin
tInfoTemperature est tableau dynamique de 0 SInfoTemperature
dwIndex est entier
dwTemperatureTemp est entier // Contient une de tes valeurs
// Traiter le bloc suivant pour chacune de tes valeurs
dwIndex = tableaucherche(tInfoTemperature,tclineaire,"dwTemperature",
dwTemperatureTemp)
si dwIndex > 0 alors
tInfoTemperature[dwIndex]:dwOccurrence ++
sinon
dwindex = tableauajoute(tInfoTemperature)
tInfoTemperature[dwIndex]:dwTemperature = dwTemperatureTemp
tInfoTemperature[dwIndex]:dwOccurrence = 1
fin
// Résultat final
si Dimension(tInfoTemperature) > 0 alors
tableautrie(tInfoTemperature,ttDecroissant,"dwOccurrence")
trace(tInfoTemperature[1]:dwTemperature + " / " +
tInfoTemperature[1]:dwOccurrence)
tableausupprimetout(tInfoTemperature)
Fin
Enfin voilà à la louche pour le principe (à qqs erreurs de frappe pres
je pense...)
eric l.
> stef a écrit :
Je demande conseil sur la meilleure méthode d'après vous pour obtenir "la valeur moyenne" d'une série d'entier...
je m'explique, mon application wm recois une série d'entier qui représente une température chaque seconde, pendant une séquence de 8 sec.
1sec 82°
2sec 83°
3sec 82°
4sec 81°
5sec 80°
6sec 82°
7sec 81°
8sec 82°
je dois obtenir le plus rapidement possible la température qui revient le plus dans la série.
dans l'exemple la c'est 82° (4 cas dans la série).
Avez vous une idée sur une astuce de programmation pour un calcul hyper rapide ?
je pense partir sur un tableau dynamique de 8 entier et effectuer un comptage/tri...
Signaler
0
0
s.brackez
#5
Posté le 19 avril 2007 - 17:58
Merci Eric et Fred pour leurs experiences... c 'est ok.
Signaler
0
0
→ Revenir à WINDEV Mobile 2024
WINDEV 2024
WINDEV 2024
WEBDEV 2024
WEBDEV 2024
WINDEV Mobile 2024
WINDEV Mobile 2024
WINDEV (précédentes versions)
WINDEV (précédentes versions)
WEBDEV (précédentes versions)
WEBDEV (précédentes versions)
WINDEV Mobile (précédentes versions)
WINDEV Mobile (précédentes versions)
Etats & Requêtes
Etats & Requêtes
Hors-sujet
Hors-sujet
Outils
Outils
WINDEV 26
WINDEV 2024
WINDEV 2024
WINDEV 25
WEBDEV 2024
WEBDEV 2024
WINDEV Mobile 2024
WINDEV (précédentes versions)
Français
English
Español
Portuguesa
Fermer cette fenêtre
Type de recherche
Uniquement les sujets
Tous les messages
Période de recherche
Date indifférente
Moins d'une heure
Moins de 24 heures
Moins d'une semaine
Moins d'un mois
Moins d'un an
Annuler
Aperçu de votre message
Ajouter une image
Importer une image depuis une URL
Envoyer une image depuis un fichier de votre disque
Déposez ici un fichier ou cliquez sur "Parcourir..."
ou
Annuler
0%
WLangage
SQL
XML, HTML
JAVA, Javascript
Texte