Ah oui ! Merci![]()
Arf, je reposte mon code un peu retouché :
Alors là on est sensé récupérer 0 si il n'y a pas de valeur de A qui est répété k fois.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 a = input('Tableau 1*1 : '); k = input('k >0 :'); b = unique(a); i = 1:length(b); c = histc(a,b(i)); r1 = min(b(c == k)); d = [r1]; r = length(d); disp(r);
On récupère la valeur de A qui est répété k fois si il y en a 1 seule.
On récupère la valeur de A la plus petite qui est répété k fois si il y en a plusieurs.
Le code semble bien fonctionné... sauf pour k = 1 !
Par exemple :
J'obtiens comme réponse 1.. A cause du fait que dans ma variable C j'ai forcément des 1 qui apparaissent.. Comment parer à ce problème ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 Tableau 1*1 : [2 2 2 25 6 36 333]; k > 0 : 1
Merci.
Pour voir si tu as au moins une valeur égale à k, tu as la fonction any. Il y a aussi isempty pour voir si un tableau est vide.
Et la valeur minimale apparaissant k fois que tu souhaites récupérer se trouve dans r1 et non dans r.
PS j'ai édité mon message précédent. Pense à suivre mes conseils![]()
Ok pour le nom des variables, je le saurai pour la prochaine fois.
Pour ce qui est r1 et r, je dois forcément faire ça, sinon ça n'affiche pas 0 quand il n'y a aucune valeurs dans A qui est répété k fois, alors que là oui..
Pour le any, je ne vois pas en quoi ça résout le problème que j'ai posé dans mon précédent post avec le 1... ?
Peux-tu donner un exemple de code corrigé selon toi, à partir du mien ?
Merci.
Ah pardon je comprends la remarque pour le r1 et r, en effet il n'y aurai pas le fameux problème avec le k = 1 si il n'y avait que r et pas r1..
Pourrais-tu donc me dire comment afficher 0 si aucune valeur de A n'est répété k fois, car au final c'est pour ça que je suis passé par ce r1, je n'est pas trouvé d'autres solutions pour le moment..
Merci.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 if any(c==k) % il y a au moins un élément égal à k else % il n'y en a aucun end
Nope, pas le droit d'utiliser if ou des boucles, consigne de l'exercice.
C'est presque terminé, juste le problème du cas "afficher 0" n'est toujours pas résolu..
Pour ce dernier point, je te laisse un peu chercher![]()
Ok je vais tenter de résoudre ça !
Merci pour le coup de main, je posterai un autre exo ou je bloque dans pas longtemps je pense. La communauté à l'air vraiment sympa ici.
Je mettrai à jour ce fil si je résouds mon soucis final.
Partager