entre un nombres : 55
entre les nombres à utiliser : 6 3 7
entre les opérateurs à utiliser : *
il n' y pas de solution avec les chiffres ou nombre:6 3 7 et avec le(s) opérateur(s) : *
entre un nombre: 58
entre les nombres à utiliser : 7 7 9
entre les opérateurs à utiliser : + *
la solution est: (7*7) + 9
je l'ai repris de l'exercice c++ d'openclasseromme (des chiffres)
pour ce qui ne connaissent pas:
cela consiste à trouver le résultats(nombre donnes) avec les opérateurs normaux et des chiffres donnée (ici c'est le joueur qui choisit les opérateurs )
bien sur prenne votre temps
- Edité par Le programmeur solitaire 9 mai 2020 à 16:50:33
je pense que les autres lecteurs y compris moi ne comprend pas ce code: vous pouvez expliquer le code s'il vous plait
Détecte déjà les points virgules, c'est la terminaison d'une instruction, par exemple...
if len(_)>1:a,b,c=[],[],[];
est équivalent à
if len(_) > 1:
a, b, c = [], [], []
qu'il aurait pu écrire
if _:
a, b, c = [], [], []
et tu suis comme ça les lignes jusqu'au prochain point virgule, où tu remarqueras une "comprehension list"
Le plus dur c'est pas la lecture ici, c'est la notion de récursivité qu'on comprend plus ou moins bien, car ça demande de l'entraînement.
Des petites astuces comme True qui vaut 1, _ pour remplacer une variable nommée qui reste une variable,
Bref c'est amusant, ça te fera travailler les méninges.
Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard) La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)
Ravie de voir que tout le monde est d'accord ; c'est un code vraiment ... limpide. xD
Toutes les instructions ont leur importance, le dernier return sert autant que la condition if len(_) > 1: qui elle-même ne peut être remplacée par if _:
Toutes les instructions ont leur importance, le dernier return sert autant que la condition if len(_) > 1: qui elle-même ne peut être remplacée par if _:
Je veux bien mais dans quel cas serait il utile ? Le code semble très bien marcher sans...
édit: Et puis, est il même exécuté ? Par ce que normalement après un return on quitte la fonction.
- Edité par __fabien 8 mai 2020 à 20:20:06
J'aime les bananes, le python, le gnu, le pingouin.
Toutes les instructions ont leur importance, le dernier return sert autant que la condition if len(_) > 1: qui elle-même ne peut être remplacée par if _:
Je veux bien mais dans quel cas serait il utile ?
Trier une liste avec un entier n'a pas de sens.
Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard) La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)
J'arrête la torture ici, voici le code dé-offusqué en 2 étapes :
def qs(_):
if len(_)>1:a,b,c=[],[],[];[[{d<e:a,d>e:b,d==e:c}[True].append(d)for d in _
]for e in _[:1]];return qs(a)+c+qs(b)
return _
def qs(_):
if len(_) > 1:
a, b, c = [], [], []
[
[
{
d < e: a,
d > e: b,
d == e: c
}[True].append(d)
for d in _
]
for e in _[:1]
]
return qs(a) + c + qs(b)
return _
def quicksort(array):
if len(array) > 1:
less, greater, equal = [], [], []
pivot = array[0]
for value in array:
if value < pivot:
less.append(value)
elif value > pivot:
great.append(value)
else:
equal.append(value)
return quicksort(less) + equal + quicksort(greater)
return array
- Edité par Readability counts. 8 mai 2020 à 20:51:28
Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard) La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)
C'est un module Python qui permet l'emploi des types C et non C++
Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard) La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)
Il me semble bien que rien n'empêche que la lib ait été écrite en C++, cf. ICI par exemple.
Sinon, concernant l'usage de qsort, outre que cmp peut engendrer un overflow, les performances sont très mauvaises, je viens d'essayer sur une liste de 100000 entiers et qsort met 0.700s tandis que la méthode sort met 0.025s.
Readability counts. a écrit:
J'arrête la torture ici, voici le code dé-offusqué en 2 étapes :
Mes explications ici : la récursivité illustrée par le tri rapide. Bien noter que ça n'a guère de sens de coder un quicksort en Python, sauf à des fins d'apprentissage et d'illustration (ou de challenge), car ce qu'on attend d'un tri rapide c'est qu'il le soit. Toutes les expressions telles que quicksort(less) + equal + quicksort(greater) seront très lentes.
Le dernier return sert quand la liste _ contient moins de 2 éléments. Les instructions précédentes dépendent de la condition if len(_) > 1.
Et le code doit être indenté en accord.
Ce sont des exercices intéressants même s'ils ne sont pas aussi efficace que le sort de Python.
En tout cas, moi qui suis novice, je me suis amusé.
@__fabien:
Dans un de tes tris, tu utilises 'set'. Je ne l'ai pas encore étudié, mais il me semble que dans un 'set', chaque élément ne peut se trouver qu'une fois?
Ce qui est contradictoire avec l'idée que dans une liste, on peut avoir la même valeur plus d'une fois.
Et dans ta fonction 'qs1', il y avait quelques 'qs' qui trainaient encore.
Dans un de tes tris, tu utilises 'set'. Je ne l'ai pas encore étudié, mais il me semble que dans un 'set', chaque élément ne peut se trouver qu'une fois?
Ce qui est contradictoire avec l'idée que dans une liste, on peut avoir la même valeur plus d'une fois.
Oui Bien vu ! ma proposition ne traitait pas les situations d'égualités.
- Edité par __fabien 9 mai 2020 à 12:33:39
J'aime les bananes, le python, le gnu, le pingouin.
Il me semble bien que rien n'empêche que la lib ait été écrite en C++, cf. ICI par exemple.
On joue avec les mots, on sait tous les deux ce que fait extern C
PascalOrtiz a écrit:
Il me semble bien que rien n'empêche que la lib ait été écrite en C++, cf. ICI par exemple.
Sinon, concernant l'usage de qsort, outre que cmp peut engendrer un overflow, les performances sont très mauvaises, je viens d'essayer sur une liste de 100000 entiers et qsort met 0.700s tandis que la méthode sort met 0.025s.
Merci pour les tests, je n'avais pas trop fait gaffe aux performances, juste le rendre déjà fonctionnel.
J'avais déjà bien compris que ce n'est pas grâce à ce module que j'aurai des performances, d'où ma préférence pour cython. Ça se confirme une nouvelle fois...
Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard) La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)
Il me semble bien que rien n'empêche que la lib ait été écrite en C++, cf. ICI par exemple.
Sinon, concernant l'usage de qsort, outre que cmp peut engendrer un overflow, les performances sont très mauvaises, je viens d'essayer sur une liste de 100000 entiers et qsort met 0.700s tandis que la méthode sort met 0.025s.
le but ce n'est pas d'aller le plus vite que la méthode sort. Mais de la remplacer
- Edité par Le programmeur solitaire 9 mai 2020 à 9:39:46
× 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.
le code FAIT le bonheur (pour moi en tous cas)
le code FAIT le bonheur (pour moi en tous cas)
Python c'est bon, mangez-en.
le code FAIT le bonheur (pour moi en tous cas)
Python c'est bon, mangez-en.
le code FAIT le bonheur (pour moi en tous cas)
le code FAIT le bonheur (pour moi en tous cas)
Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard)
La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)
Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard)
La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)
Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard)
La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)
le code FAIT le bonheur (pour moi en tous cas)
Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard)
La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)
Découverte Python Doc Tkinter Les chaînes de caractères
Le Tout est souvent plus grand que la somme de ses parties.
Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard)
La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)
le code FAIT le bonheur (pour moi en tous cas)
Découverte Python Doc Tkinter Les chaînes de caractères
le code FAIT le bonheur (pour moi en tous cas)