π
<-

programe les quartiles

Programmation et implémentation d'algorithmes.

Re: programe les quartiles

Unread postby Bisam » 18 Feb 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).
User avatar
BisamAdmin
Niveau 15: CC (Chevalier des Calculatrices)
Niveau 15: CC (Chevalier des Calculatrices)
Level up: 69.6%
 
Posts: 5670
Joined: 11 Mar 2008, 00:00
Location: Lyon
Gender: Male
Calculator(s):
MyCalcs profile

Re: programe les quartiles

Unread postby kadtexas » 18 Feb 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.
User avatar
kadtexas
Niveau 9: IC (Compteur Infatigable)
Niveau 9: IC (Compteur Infatigable)
Level up: 77.7%
 
Posts: 291
Joined: 29 Jan 2015, 19:32
Gender: Not specified
Calculator(s):
MyCalcs profile
Class: etudiant

Re: programe les quartiles

Unread postby Extra44 » 18 Feb 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.. )
User avatar
Extra44Premium
Niveau 11: LV (Légende Vivante)
Niveau 11: LV (Légende Vivante)
Level up: 58.4%
 
Posts: 591
Images: 1
Joined: 20 Jan 2011, 00:00
Gender: Male
Calculator(s):
MyCalcs profile
Class: S.I.

Re: programe les quartiles

Unread postby kadtexas » 18 Feb 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.
User avatar
kadtexas
Niveau 9: IC (Compteur Infatigable)
Niveau 9: IC (Compteur Infatigable)
Level up: 77.7%
 
Posts: 291
Joined: 29 Jan 2015, 19:32
Gender: Not specified
Calculator(s):
MyCalcs profile
Class: etudiant

Re: programe les quartiles

Unread postby Extra44 » 18 Feb 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: Select all
   
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 ... ?
User avatar
Extra44Premium
Niveau 11: LV (Légende Vivante)
Niveau 11: LV (Légende Vivante)
Level up: 58.4%
 
Posts: 591
Images: 1
Joined: 20 Jan 2011, 00:00
Gender: Male
Calculator(s):
MyCalcs profile
Class: S.I.

Re: programe les quartiles

Unread postby AC » 18 Feb 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.
User avatar
ACPremium
Niveau 10: GR (Guide de Référence)
Niveau 10: GR (Guide de Référence)
Level up: 46.2%
 
Posts: 162
Joined: 26 Feb 2009, 00:00
Gender: Male
Calculator(s):
MyCalcs profile
Class: Prof retraité

Re: programe les quartiles

Unread postby Bisam » 18 Feb 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é.
User avatar
BisamAdmin
Niveau 15: CC (Chevalier des Calculatrices)
Niveau 15: CC (Chevalier des Calculatrices)
Level up: 69.6%
 
Posts: 5670
Joined: 11 Mar 2008, 00:00
Location: Lyon
Gender: Male
Calculator(s):
MyCalcs profile

Re: programe les quartiles

Unread postby kadtexas » 20 Feb 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
User avatar
kadtexas
Niveau 9: IC (Compteur Infatigable)
Niveau 9: IC (Compteur Infatigable)
Level up: 77.7%
 
Posts: 291
Joined: 29 Jan 2015, 19:32
Gender: Not specified
Calculator(s):
MyCalcs profile
Class: etudiant

Re: programe les quartiles

Unread postby Extra44 » 20 Feb 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: Select all
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 ?
User avatar
Extra44Premium
Niveau 11: LV (Légende Vivante)
Niveau 11: LV (Légende Vivante)
Level up: 58.4%
 
Posts: 591
Images: 1
Joined: 20 Jan 2011, 00:00
Gender: Male
Calculator(s):
MyCalcs profile
Class: S.I.

Re: programe les quartiles

Unread postby Bisam » 21 Feb 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).
User avatar
BisamAdmin
Niveau 15: CC (Chevalier des Calculatrices)
Niveau 15: CC (Chevalier des Calculatrices)
Level up: 69.6%
 
Posts: 5670
Joined: 11 Mar 2008, 00:00
Location: Lyon
Gender: Male
Calculator(s):
MyCalcs profile

PreviousNext

Return to Programmation

Who is online

Users browsing this forum: ClaudeBot [spider] and 5 guests

-
Search
-
Social TI-Planet
-
Featured topics
Comparaisons des meilleurs prix pour acheter sa calculatrice !
"1 calculatrice pour tous", le programme solidaire de Texas Instruments. Reçois gratuitement et sans aucune obligation d'achat, 5 calculatrices couleur programmables en Python à donner aux élèves les plus nécessiteux de ton lycée. Tu peux recevoir au choix 5 TI-82 Advanced Edition Python ou bien 5 TI-83 Premium CE Edition Python.
Enseignant(e), reçois gratuitement 1 exemplaire de test de la TI-82 Advanced Edition Python. À demander d'ici le 31 décembre 2024.
Aidez la communauté à documenter les révisions matérielles en listant vos calculatrices graphiques !
1234
-
Donations / Premium
For more contests, prizes, reviews, helping us pay the server and domains...
Donate
Discover the the advantages of a donor account !
JoinRejoignez the donors and/or premium!les donateurs et/ou premium !


Partner and ad
Notre partenaire Jarrety Calculatrices à acheter chez Calcuso
-
Stats.
1156 utilisateurs:
>1110 invités
>40 membres
>6 robots
Record simultané (sur 6 mois):
6892 utilisateurs (le 07/06/2017)
-
Other interesting websites
Texas Instruments Education
Global | France
 (English / Français)
Banque de programmes TI
ticalc.org
 (English)
La communauté TI-82
tout82.free.fr
 (Français)