π
<-
Chat plein-écran
[^]

programe les quartiles

Programmation et implémentation d'algorithmes.

Re: programe les quartiles

Message non lude Bisam » 18 Fév 2015, 14:37

@Hamza : Ce que dit AC, c'est que la définition utilisée par la calculette pour le calcul des quartiles n'est pas la même que celle spécifiée dans le système éducatif français ! Jamais il n'a été dit que les calculatrices ne savaient pas calculer les quartiles...

@kadtexas : Pour le calcul de la médiane, il suffit de vérifier si l'effectif moitié de l'effectif total fait partie de la liste des ECC ou non.
Si ton effectif total est N, tu cherches donc l'indice i tel que ECC[i]<= N/2 et ECC[i+1]>N/2. Si ECC[i] n'est pas égal à N/2, la médiane est la valeur list[i], sinon c'est la valeur (list[i]+list[i+1])/2 (et c'est valable même si N est impair... auquel cas, la deuxième possibilité ne survient jamais).
Avatar de l’utilisateur
BisamAdmin
Niveau 15: CC (Chevalier des Calculatrices)
Niveau 15: CC (Chevalier des Calculatrices)
Prochain niv.: 69.6%
 
Messages: 5666
Inscription: 11 Mar 2008, 00:00
Localisation: Lyon
Genre: Homme
Calculatrice(s):
MyCalcs profile

Re: programe les quartiles

Message non lude kadtexas » 18 Fév 2015, 18:26

Bonjour
Merci pour vos réponses, mais je crois que vous n'avez pas compris mon problème.

Bien sûr si la médiane tombe entre deux valeurs, le plus simple on détermine la moyenne arithmétique des deux valeurs....
Ma calculette TI Voyage 200 calcule la médiane et les quartiles Q1 et Q3 mais avec la méthode américaine.

Mon problème c'est la programmation d'un algorithme de la médiane sur ma calculette.

Voici ce que j'ai expliqué dans mon premier message:
Pour Q1 et Q3 pas de problème.
Le problème est celui de la médiane. Si l’effectif total est impair, aucun problème, mais s’il est pair alors il y a problème.
Exemple :
Valeurs : …………20;20;20 ;30 ;…….............. dans la list1
ECC :……………...46 ;50……………………….92 dans la list2
Ici 92/2=46
Si le dernier 20 est de rang 46 alors médiane=(20+30)/2=25
Si le dernier 20 n’est pas de rang 46 alors médiane=(20+20)/2=20
Mais ça on ne le sait pas avec les ECC
Mais comment faire un algorithme qui résout le problème en utilisant les ECC (effectifs cumulés croissants)
Personnellement je n’ai aucune idée pour l’instant.
Avatar de l’utilisateur
kadtexas
Niveau 9: IC (Compteur Infatigable)
Niveau 9: IC (Compteur Infatigable)
Prochain niv.: 73.8%
 
Messages: 283
Inscription: 29 Jan 2015, 19:32
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile
Classe: etudiant

Re: programe les quartiles

Message non lude Extra44 » 18 Fév 2015, 19:11

Salut
une ébauche d'algorithme:
Si N=nbre d'éléments au total et si N pair ( N /2.0 entier )
alors soit m1=N/2 et m2=m1+1 positions des 2 items milieu de population, et mediane =(valeur m1 + valeur m2)/2.0

Comment retrouver les valeurs en position m1 et m2 ? -> une petite boucle qui parcourt les effectifs, et si on atteint m1 (m2 ? ) on a la 1ere (et 2e valeur) puis idem (en même temps) pour m2 ...

Ca le fait, non ? ( Je n'ai pas de ti89.. )
Avatar de l’utilisateur
Extra44Premium
Niveau 11: LV (Légende Vivante)
Niveau 11: LV (Légende Vivante)
Prochain niv.: 58.4%
 
Messages: 591
Images: 1
Inscription: 20 Jan 2011, 00:00
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: S.I.

Re: programe les quartiles

Message non lude kadtexas » 18 Fév 2015, 19:47

salut

Pas encore bien compris!

J'ai bien préciser: en utilisant la liste des Effectifs Cumulés Croissants.

Sinon pour une liste des valeurs ou' chaque valeur est répétée autant de fois que son effectif ne pose aucun problème.

Il y a une fonction de la calculette qui calcule la médiane juste pour une seule liste mais pas pour deux, l'une des valeurs et l'autre des éffectifs associés.

Donc moi j'ai voulu faire un programme pour calculer la médiane avec la liste des valeurs et la liste des effectifs cumulée croissants.
Avatar de l’utilisateur
kadtexas
Niveau 9: IC (Compteur Infatigable)
Niveau 9: IC (Compteur Infatigable)
Prochain niv.: 73.8%
 
Messages: 283
Inscription: 29 Jan 2015, 19:32
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile
Classe: etudiant

Re: programe les quartiles

Message non lude Extra44 » 18 Fév 2015, 20:06

En espérant ne pas faire trop de fautes, et en reprenant ton code : voici ce que ça donne :
--EDIT : pour nombre effectiftotal pair ici ! :
Code: Tout sélectionner
   
effectiftotal/2 -> m1
m1+1 -> m2
1 -> drapeauM1
1 -> drapeauM2
Loop
    i=i+1
    If list3[i]>=effectiftotal/4 and drapeau=1 then
       If mod(effectiftotal,4)=0 then
         drapeau=0
         list1[i] -> Q1
       Else
         list1[i+1] -> Q1
         drapeau=0
       Endif
    Endif
    if list3[i]>=m1 and drapeauM1=1 then
         0->drapeauM1
         list1[i] -> valM1
    endif
    if list3[i]>=m2 and drapeauM2=1 then
         0->drapeauM2
         list1[i] -> valM2
    endif
    (valM1+valM2)/2 -> mediane
    .
    .
    Q3=…

    Exit
    Endloop


Est ce compréhensible ... ?
Avatar de l’utilisateur
Extra44Premium
Niveau 11: LV (Légende Vivante)
Niveau 11: LV (Légende Vivante)
Prochain niv.: 58.4%
 
Messages: 591
Images: 1
Inscription: 20 Jan 2011, 00:00
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: S.I.

Re: programe les quartiles

Message non lude AC » 18 Fév 2015, 20:51

Le lien du programme du site faisant les calculs en utilisant la définition choisie pour les programmes du secondaire:
archives_voir.php?id=1935

Ce programme calcule aussi les déciles et s'occupe des calculs dans le cas des caractères continus.
Il y a une version TI 89 et une version Voyage 200.
Avatar de l’utilisateur
ACPremium
Niveau 10: GR (Guide de Référence)
Niveau 10: GR (Guide de Référence)
Prochain niv.: 46.2%
 
Messages: 162
Inscription: 26 Fév 2009, 00:00
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: Prof retraité

Re: programe les quartiles

Message non lude Bisam » 18 Fév 2015, 21:52

@Kadtexas : Ma réponse convenait parfaitement à ta question... mais visiblement tu n'as pas compris.
Et Extra44 a fait à peu près la même réponse.

Si tu ne comprends pas, dis-le... mais ne dis pas qu'on répond à côté.
Avatar de l’utilisateur
BisamAdmin
Niveau 15: CC (Chevalier des Calculatrices)
Niveau 15: CC (Chevalier des Calculatrices)
Prochain niv.: 69.6%
 
Messages: 5666
Inscription: 11 Mar 2008, 00:00
Localisation: Lyon
Genre: Homme
Calculatrice(s):
MyCalcs profile

Re: programe les quartiles

Message non lude kadtexas » 20 Fév 2015, 18:23

Bonjour Bisam

@kadtexas : Pour le calcul de la médiane, il suffit de vérifier si l'effectif moitié de l'effectif total fait partie de la liste des ECC ou non.
Si ton effectif total est N, tu cherches donc l'indice i tel que ECC[i]<= N/2 et ECC[i+1]>N/2. Si ECC[i] n'est pas égal à N/2, la médiane est la valeur list[i], sinon c'est la valeur (list[i]+list[i+1])/2 (et c'est valable même si N est impair... auquel cas, la deuxième possibilité ne survient jamais).


Ton programme marche un coup sur deux

Exemple
Valeurs :15 ;15 ;17 ; 20 ; 20 ;20 ;30 ;30 ;35 ;40 : ici la médiane est 20
Voici le tableau classique:
Valeurs 15 ;17 ;20 ;30 ;35 ;40 :dans list1
Effectifs 2 ;1 ;3 ;2 ;1 ;1 : dans list2
ECC 2 ;3 ;6 ;8 ;9 ;10 : dans list3

effectif total/2=10/2=5
Pour i = 2 on a :ECC[2]<=5 et ECC[3]>5, ta condition est valide
Donc (list1[2]+list1[3])/2=(17+20)/2=18,5
Donc ça ne marche pas

C'est ce cas qui pose problème, lorsque la médiane tombe entre deux valeurs confondues, ici 20
(20+20)/2=20
Avatar de l’utilisateur
kadtexas
Niveau 9: IC (Compteur Infatigable)
Niveau 9: IC (Compteur Infatigable)
Prochain niv.: 73.8%
 
Messages: 283
Inscription: 29 Jan 2015, 19:32
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile
Classe: etudiant

Re: programe les quartiles

Message non lude Extra44 » 20 Fév 2015, 21:55

Bonsoir
Dans ton exemple, ce que je fais (si pas d'erreur) (dans mon algo) :
on est bien dans le cas N pair : on trouve donc :
m1=10/2=5
m2=6
pour chaque iteration :
Iteration i= 1 : ECC[1] (vaut 2 donc ) non >= m1 donc rien et ECC[1] non >= m2 donc rien
Iteration i= 2 : ECC[2] (vaut 3 donc ) non >= m1 donc rien et ECC[2] non >= m2 donc rien
Iteration i= 3 : ECC[3] (vaut 6 donc ) >= m1 donc drapeauM1 mis à 0 et valM1=val[3]=20 et ECC[3] >= m2 donc drapeauM2 mis à 0 et valM2= val[3]=20
(oubli de ma part dans l'algo du message precedent, calculer la mediane que si valM1 et valM2 déterminé (et qu'une seule fois) : )
Code: Tout sélectionner
if drapeauM1=0 and drapeauM2=0 and drapeauM=1 then
         (valM1+valM2)/2 -> mediane
         drapeauM=0
endif

-> donc ici : (valM1 + valM2)/2 = (20+20)/2=20
iterations suivantes : drapeauM drapeauM1 et drapeauM2 deja a 0 donc on ne fait rien de plus par rapport a la mediane ...

AHH : je crois avoir compris où tu n'as pas compris : ce n'est pas (list1[2]+list1[3] ) /2 qu'on trouve mais (list1[2]+list1[2] ) /2
C'est l'élément "suivant", mais pas dans la liste des effectifs cumulés croissant !

Non ?
Avatar de l’utilisateur
Extra44Premium
Niveau 11: LV (Légende Vivante)
Niveau 11: LV (Légende Vivante)
Prochain niv.: 58.4%
 
Messages: 591
Images: 1
Inscription: 20 Jan 2011, 00:00
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: S.I.

Re: programe les quartiles

Message non lude Bisam » 21 Fév 2015, 15:09

@Kadtexas : effectivement, j'ai répondu un peu vite et mon algorithme ne fonctionne pas, car j'ai fait une petite erreur expliquée plus bas... mais toi aussi tu t'es trompé en appliquant l'algorithme !

Voici l'algorithme corrigé avec l'explication permettant de prouver qu'il fonctionne :
On détermine i tel que ECC[i]<=N/2 et ECC[i+1]>N/2.
1er cas : Si ECC[i]=N/2 (ce qui impose que N soit pair, mais ce n'est pas utile de le tester), cela signifie que la moitié des éléments sont inférieurs ou égaux à list[i] et l'autre moitié supérieurs ou égaux à list[i+1]. Donc on renvoie la valeur (list[i]+list[i+1])/2 comme médiane.
2ème cas : Si ECC[i]<N/2, cela signifie que la médiane est atteinte au milieu du paquet d'éléments égaux à list[i+1] et on renvoie alors list[i+1] comme médiane (et non list[i] comme je l'avais écrit par erreur plus haut).
Avatar de l’utilisateur
BisamAdmin
Niveau 15: CC (Chevalier des Calculatrices)
Niveau 15: CC (Chevalier des Calculatrices)
Prochain niv.: 69.6%
 
Messages: 5666
Inscription: 11 Mar 2008, 00:00
Localisation: Lyon
Genre: Homme
Calculatrice(s):
MyCalcs profile

PrécédenteSuivante

Retourner vers Programmation

Qui est en ligne

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

-
Rechercher
-
Social TI-Planet
-
Sujets à la une
Comparaisons des meilleurs prix pour acheter sa calculatrice !
Aidez la communauté à documenter les révisions matérielles en listant vos calculatrices graphiques !
Phi NumWorks jailbreak
123
-
Faire un don / Premium
Pour plus de concours, de lots, de tests, nous aider à payer le serveur et les domaines...
Faire un don
Découvrez les avantages d'un compte donateur !
JoinRejoignez the donors and/or premium!les donateurs et/ou premium !


Partenaires et pub
Notre partenaire Jarrety Calculatrices à acheter chez Calcuso
-
Stats.
1288 utilisateurs:
>1270 invités
>12 membres
>6 robots
Record simultané (sur 6 mois):
6892 utilisateurs (le 07/06/2017)
-
Autres sites intéressants
Texas Instruments Education
Global | France
 (English / Français)
Banque de programmes TI
ticalc.org
 (English)
La communauté TI-82
tout82.free.fr
 (Français)