La Pause Café du Forum Programmation

je sais pas encore, j’y reflechi encore(approche du median par les 2 cotés ?)

Bon c’est bon j’ai résolu mon problème passant simplement mes variables en utf8_encode, et j’ai laissé mon xml en ISO-1 :confused: !
C’est pas le mieux, mais ça marche :wink: !
Mci

Les blagues moisies :smiley:

Si j’avais a faire un truc comme ca je ferais ca :



function int meridian(int n)
{
    if(n==0) return tableau.min();

    int max = tableau.max();
    int posMin = tableau.position(tableau.min());
    tableau[posMin] += max;
    meridian(n-1);
    tableau[posMin] -= max;
}

C’est surement pas ca en meme temps :ane:

C’est une bonne piste mais… pourquoi s’arrêter au bout de n itérations ? comment tu sais que le median, ce sera le nième ?

Edit : par contre on peut adapter… on cherche le min et le max à chaque itération… on remplace les valeurs par une constante à définir. On refait une itération parmi les valeurs différentes de cette constante, on élimine les min et max de nouveau… jusqu’à n’avoir plus qu’une ou deux valeurs.

Par contre c’est en O(n²), donc pas super optimisé… :pt1cable:

pourquoi je m’arrette au bout de n ben en gros la ca va te sortir la n-ieme valeur du tableau ordonné.

Donc si tu veux le median tu fait n = longueur/2.

Ah ok !
Par contre ça reste en O(n²). On peut déjà optimiser un peu en stockant le max quelque part, pour ne pas avoir à le recalculer à chaque fois (on est pas obligé d’avoir le “nouveau” maximum à chaque itération, du moment que l’écart est fixe).

Edit : en fait, je sais pas si il faut vraiment chercher à faire mieux que le tri rapide… en une demi heure ça m’étonnerait qu’ils en veuillent autant.

Bon parcontre on change les valeur dans le tableau. Je sais pas si on a le droit au vu de l’énoncé enfait :confused:

Tu restaures pas les valeurs avec la soustraction après ?
Remarque ouais, je sais pas si on a le droit… le tableau peut très bien être transmis en paramètre en entrée seulement.

BN le monde :slight_smile: !

:sleep: :hello:

Le monde ne dort jamais totalement : c’est seulement ⅓ du monde qui le fait à un instant donné (bon d’accord, quand la nuit se trouve au dessus de l’océan Pacifique, ça fait beaucoup moins d’⅓, remarque similaire possible lorsqu’elle arrive sur l’Asie ^^).

Mais BN à toi DarKChAm :sleep:

Bon ben bonjour aux 2/3 de levés :smiley:

:hello:

Recherhce de médian

int min, max,median, pos_median_basse = 0,pos_median_haute = 0

min = getMin(tableau)
max = getMax(tableau)
median = faire Moyenne(tableau)

Pour toutes les valeurs du tableau;avec i pour la position dans le tableau
si tableau(i) < median && tableau(i) > min
alors min = tableau(i)
pos_median_basse = i
fin si
si tableau(i) > median && tableau(i) < max
alors max = tableau(i)
pos_median_haute = i
fin si
fin pour

//en théorie les 2 variables pos_median_haute et pos_median_basse ‘pointe’ sur la même case du tableau

:hello:

:hello:

:hello:

Je suis en mode "head in the ass" ! :paf:

Lapincompris…
Comment la moyenne peut t’aider à trouver le median ?
Merci encore pour votre patience ! :jap:

remarque, si tu fait la question 3 d’abord, tu as un arbre binaire de recherche pour trouver l’élement médian. :smiley:
mais effectivement, le but c’est plutôt une méthode simple…

>jmgchouchou: ton algo recherche la position de l’élément égal à la moyenne, alors que selon l’énoncé, il faut l’élément situé à la moitié du tableau s’il était trié. (d’ou mon idée de compter les inférieurs et les supérieurs et d’arrêter lorsque les 2 valeurs sont égales(ou presque)
énoncé:
http://www.intmanagement.eu/admissions/ann…NFORMATIQUE.pdf
:wink:

exact, j’avais mal interprété :jap: