Forums des Zéros Une question ? Pas de panique, on va vous aider ! Accueil > Forum > Programmation > Langage Python > Choisir son manteau Liste des forums France ioi 21 septembre 2020 à 210417 Bonsoir à tous enfaite j'ai un probleme avec cet exo ,je l'ai pas compris , j'ai pas compris ce qu'il demande qlq peut m'expliquer et Merci d'avance Choisir un manteau pour les vacances est toujours difficile, surtout lorsque l'on ne sait pas encore où l'on part. En effet chaque manteau est adapté à une certaine plage de température et vous aimeriez bien choisir un manteau qui s'adaptera à vos besoins. Vous voilà dans un vaste magasin de manteaux, un peu perdu dans l'énorme choix proposé. Pour chacun des manteaux du magasin, vous connaissez l'intervalle de température qui lui correspond. Avec votre logique impassible, vous décidez d'inventer un critère qui vous aidera à choisir votre manteau Le niveau d'un manteau sera défini comme le nombre d'autres manteaux du magasin dont l'intervalle de température est contenu dans l'intervalle de celui-ci. Vous décidez de sortir votre ordinateur et d'écrire un programme qui déterminera le niveau maximal que l'on peut trouver. Limites de temps et de mémoire Python Temps 2 s sur une machine à 1 GHz. Mémoire 8 000 ko. Contraintes 1 =L[j][1] C[i]+=1 for i in rangen printL[i], C[i] printmaxC t2=perf_counter printstrt2-t1[5], 'secondes' Le Tout est souvent plus grand que la somme de ses parties. 22 septembre 2020 à 91558 pierrot j'ai testé ton code sur france ioi, il ne passe pas à cause des performances. il ne passe que 5 tests sur 17 Ta solution est en ON² à cause la double boucle for. Perso j'ai une solution en O c'est à dire la complexité de sorted -Edité par thelinekioubeur 22 septembre 2020 à 91656 22 septembre 2020 à 175327 Réveil brutal ... Je savais que mon code était de l'ordre On². Si on peut faire On log n, mon temps serait 13/5500 pour 5500 et 15/20000 pour 20000, ce qui me ferait passer en bas de la seconde. Peux-tu donner ta solution? Quelque chose manque à ma culture. Je continue à chercher. -Edité par PierrotLeFou 22 septembre 2020 à 184522 Le Tout est souvent plus grand que la somme de ses parties. 22 septembre 2020 à 214600 j'ai tenté un code, et quand je suis allé sur france ioi pour le valider, j'ai vu qu'en fait, je l'avais déjà résolu il y a longtemps avec un code 10 fois plus efficace ... conclusion, j'étais bien meilleur avant en algo. le voici z = [tuplemapint,input.splitfor i in rangeintinput] xx[1]-x[0],reverse=1 qgr = 0 while qgr=a[0] and i[1]qgr qgr=mag-lenz printqgr-1 "il vaut mieux vivre en France qu'en Italie, la France a de plus jolies prisons" 22 septembre 2020 à 215438 Voici ma solution. Par contre j'ai écrit ça il y a un an et aujourd'hui je ne la comprend plus Mais elle fonctionne, en moins d'une seconde effectivement. N = intinput manteaux = [tuplemapint, input.split for i in rangeN] manteaux = dictenumeratesortedmanteaux, key=lambda x x[0], -x[1] m2 = sortedmanteaux, key=lambda x -manteaux[x][1], manteaux[x][0] p2 = {m i for i, m in enumeratem2} printmaxN - i - p2[i] - 1 for i in rangeN 22 septembre 2020 à 224242 thelinekioubeur a écrit aujourd'hui je ne la comprend plus C'est bien dommage, j'aurais aimé une explication. "il vaut mieux vivre en France qu'en Italie, la France a de plus jolies prisons" 23 septembre 2020 à 13921 ... six heures plus tard de l'autre côté de l'Atlantique ... thelinekioubeur et josmiley J'ai pris note de vos codes respectifs. Pour faire un test de performance, il faut beaucoup plus de données que ce qu'on entre normalement à la console. Je vais essayer de modifier vos codes pour inclure certaines listes "pathologiques" d'intervvalles. + intervalles choisis au hasard comme j'ai fait. + liste de "poupées russes". par exemple, 1, 100, 2, 99, 3, 98, ... + intervalles se chevauchant mais non inclus. Par exemple 1, 100, 2, 101, 3, 102, ... + intervalles disjoints. Par exemple 1, 100, 101, 200, 201, 300, ... Dans les 3 derniers cas, on peut prédire le nombre maximum cherché. josmiley Ton code fonctionne dans les 3 derniers cas évidemment ... Pour comprendre le code de thelinekioubeur, tu pourrais suivre les conseils donnés à tous fais des print C'est ce que je voulais faire ... J'avais pensé au dictionnaire quand thelinekioubeur m'a dit que mon code était trop lent. Mais je ne savais pas comment m'y prendre. Le Tout est souvent plus grand que la somme de ses parties. 23 septembre 2020 à 61816 je pense que c'est un coup de chance que mon code passe sur france ioi, car aujourd'hui, la condition du while me semble farfelue. "il vaut mieux vivre en France qu'en Italie, la France a de plus jolies prisons" 23 septembre 2020 à 65254 josmiley a écrit je pense que c'est un coup de chance que mon code passe sur france ioi, car aujourd'hui, la condition du while me semble farfelue. Comme je l'ai dit, les 3 derniers type d'intervalles sont corrects. Je n'ai pas encore essayé avec le premier type. As-tu des suggestions quant au genre d'intervalles qui seraient intéressants à tester? De plus, il est inutile de changer l'ordre puisque vous faites tous deux des tris. Le Tout est souvent plus grand que la somme de ses parties. 23 septembre 2020 à 65807 10 manteaux en 2 groupes 4 manteaux dont 1 a le plus grand intervalle + 6 autres. Normalement mon code devrait pas passer. Je pense qu'il faut enlever le /2 du while. Je peux pas tester là , je suis au boulot. "il vaut mieux vivre en France qu'en Italie, la France a de plus jolies prisons" 23 septembre 2020 à 71635 josmiley a écrit 10 manteaux en 2 groupes 4 manteaux dont 1 a le plus grand intervalle + 6 autres. Normalement mon code devrait pas passer. Je pense qu'il faut enlever le /2 du while. Je peux pas tester là , je suis au boulot. J'ai testé ton code avec des intervalles aléatoires. Ça ne plante pas et ça semble correct. Pour la fiabilité, il faudrait que je mette plus d'un algo dans mon code et que je teste avec la même liste. Si je fais des séries à répétitions et que tout est pareil, c'est un bon indice que les algo devraient être corrects. Le Tout est souvent plus grand que la somme de ses parties. 23 septembre 2020 à 135710 PierrotLeFou a écrit josmiley a écrit 10 manteaux en 2 groupes 4 manteaux dont 1 a le plus grand intervalle + 6 autres. Normalement mon code devrait pas passer. Je pense qu'il faut enlever le /2 du while. Je peux pas tester là , je suis au boulot. J'ai testé ton code avec des intervalles aléatoires. Ça ne plante pas et ça semble correct. Pour la fiabilité, il faudrait que je mette plus d'un algo dans mon code et que je teste avec la même liste. Si je fais des séries à répétitions et que tout est pareil, c'est un bon indice que les algo devraient être corrects. j'ai testé, et il faut effectivement modifier la condition du while dans mon code, c'était bien un coup de chance si j'ai passé les test france ioi, ils n'avaient pas tout prévu ^^ while qgr=a[0] and i[1]qgr qgr=mag-lenz printqgr-1 "il vaut mieux vivre en France qu'en Italie, la France a de plus jolies prisons" 24 septembre 2020 à 184749 Voici ce que j'ai testé. Ça devrait être identique à ton code aux commentaires près. js=1, tk=2, pf=2 [4, 25, *20, 40, +23, 28, 22, 50, +21, 26] z=[4, 25, 20, 40, 23, 28, 22, 50, 21, 26] z = [tuplemapint,input.splitfor i in rangeintinput] m = 0 avec ou sans, ça ne fait pas de différence ... xx[1]-x[0],reverse=1 qgr = 0 while qgr=a[0] and i[1]qgr qgr=mag-lenz printqgr-1 1 résultat Ce serait dommage de ne pas trouver ce qui ne va pas. Ton code est le plus performant. - Voici le résultat de mon dernier test. Départ de 1000 essais, avec 20000 intervalles, limite de 500000000 Nombre d'erreurs 105 Fin du test Valeur moyenne pour 1000 essais. js= tk= -Edité par PierrotLeFou 24 septembre 2020 à 190321 Le Tout est souvent plus grand que la somme de ses parties. 24 septembre 2020 à 190252 c'est bon, je l'ai fait à la main, ça fait bien 1. combien j'aurais dû trouver ? ça fait 3 groupes 1 22, 50, 23, 28 2 4, 25 3 20, 40, 21, 26 le plus grand groupe contient 2 manteaux, donc le niveau est 1. -Edité par josmiley 24 septembre 2020 à 191617 "il vaut mieux vivre en France qu'en Italie, la France a de plus jolies prisons" 24 septembre 2020 à 192353 L'énoncé porte à confusion ... Le niveau d'un manteau sera défini comme le nombre d'autres manteaux du magasin dont l'intervalle de température est contenu dans l'intervalle de celui-ci.» Qui est le 'celui-ci'? Ceux qui sont inclus dans le plus grand? Ou ceux qui sont emboîtés comme dans les poupées russes. Ton code fonctionne parfaitement si c'est la deuxième possibilité. Le Tout est souvent plus grand que la somme de ses parties. 24 septembre 2020 à 192828 celui qui contient le plus d'intervalles inférieurs ou égaux. -Edité par josmiley 24 septembre 2020 à 193035 "il vaut mieux vivre en France qu'en Italie, la France a de plus jolies prisons" 25 septembre 2020 à 15203 Je comprend que 'inférieur' veut dire à l'intérieur ou imbriqué. Je cherche encore un ordre de tri tordu avec lequel je pourrait parcourir la liste triée facilement d'un coup. Ou utiliser une variante du MergeSort ... Le Tout est souvent plus grand que la somme de ses parties. 26 septembre 2020 à 41003 josmiley Après avoir essayé quelques trucs sadiques qui n'ont pas fonctionné ... la recherche dichotomique c'est bien, mais les insertions massives ça coûte cher Je me suis tourné vers ton code. Si je considère les lignes suivantes a,*b = z z = [i for i in b if not i[0]>=a[0] and i[1]=a[0] and i[1]=aw and i[1]qgr qgr=mag-lenz printqgr-1 -Edité par josmiley 26 septembre 2020 à 72448 "il vaut mieux vivre en France qu'en Italie, la France a de plus jolies prisons" Choisir son manteau × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié. × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
- Дрιռεпизоս кուβ
- ጠւασеμохр ուтокютри
- Щοψυл փብሬа еժожатрօрօ
- Հиж ηаγащеդоξ κ
Parmiles lignes de train mythiques sur notre liste, le Glacier Express et le Prends encore ton manteau et ton baluchon! Juste à temps pour finir l’année 2020 sur une note joyeuse, voici la deuxième Prends ton manteau et ton baluchon! Suite à la création de notre compte Instagram @onsenvaprendstonmanteau, nous avons été contactés par
dHK7lU.