J'ai joué un peu puis me suis dis "c'est un boulot pour une machine".
Ou pas… Ce genre de jeux (le compte est bon) est une façon d'évaluer l'aptitude de calculs mentaux et l'intuition (plutôt la capacité d'estimation) face aux combinaisons de nombres. Évaluer une machine, ou tricher, a peu d'intérêt ici.
Ceci dit, l'informatique y est utile pour évaluer des conjectures mathématiques ou explorer certains aspects algorithmiquement (notamment tout ce qui touche aux arbres de décision, dont il n'est pas question ici puisqu'on emploie la force brute.) Il me semble d'ailleurs avoir vu passer deux articles sur le sujet, dont un dans Tangente si j'ai bonne mémoire.
À noter que le programme donne des solutions invalides qui n'utilisent pas tous les nombres, il faut filtrer. Je n'ai pas non plus implémenté la division qui me paraissait plus compliquée qu'utile à l'époque pour le compte est bon.
Du coup, je vais relever le défi, histoire de me changer les idées après une journée harassante de travail. Et pour épicer un peu la chose, l'implémentation sera en shell POSIX…
Bien, je passe sur l'étape de la saisie des nombres et du contrôle des entrées (toujours.)
Je ne vais pas non plus stocker les solutions, mais plutôt les sortir au fil de l'eau.
Comme on n'a pas de structure de tableau (en KSh, BASh et probablement ZSh, oui) je vais utiliser une variable par nombre (mais il n'y en a heureusement que quatre) !
Mon idée est qu'on va faire une boucle sur la liste de nombres.
Dans un langage comme RPL, on va juste faire quatre tours en décalant…
\<<
1 4 FOR i
4 ROLL
@process
NEXT
\>>
Pour la plupart des autres langages, non Forth-like on va utilier un tableau et décaler le curseur dans la boucle (tout en prenant tous les éléments, c'est juste pour changer l'ordre à chaque itération.)
Bon, on ne gère pas de tableau et heureusement il n'y a que quatre nombres.
Ces quatre lignes sont trompeuses (ça m'a servi à valider le fonctionnement, mais) il y a en fait vingt-quatre permutations (prises en compte dans la version finale.)
Le processus va consister à appliquer les quatre opérateurs… de sorte à couvrir tous les cas…
On peut les énumérer, mais par peur d'oublier, je boucle pareillement pour les quatre opérations… (l'optimisation serait de déboucler …parce que sinon on aura des doublons du fait la commutativité, mais cet exercice se fera plus tard.)
process0(){for o1 in '+''-''*''/'dofor o2 in '+''-''*''/'do
process1 "$o1""$o2""$@"donedone}
process1(){localo1="$1"localo2="$2"localn1="$3"localn2="$4"localn3="$5"localn4="$6"for o3 in '+''-''*''/'dotest$(((n1 $o1 n2)$o3(n3 $o2 n4))) -eq 24&&
solution1 "$n1""$o1""$n2""$n3""$o2""$n4""$o3"done}
solution1(){localr1=$(($1$2$3))localr2=$(($4$5$6))echo"$1$2$3=$r1; $4$5$6=$r2; $r1$7$r2=24"}
Bon, c'est pas tout ça. Dans ce truc brutalement automatique, il ne faut pas oublier de gérer la division par zéro…
En plus du second processus, on va appeler un troisième dans la même boucle (c'est du « quick and dirty » et il doit être possible de fusionner les deux…)
Comme c'est bête/brute et méchant/truand, il m'annonce vingt réponses qui pourraient se ramener à 10 du fait des symétries et on a exploré deux mille huit cents combinaisons dont on aurait pu se passer du quart je pense.
J'ai exploré ici les formes (c'est (8-5)*(7+1) ou (1+3)*(2-8) par exemple) et (c'est 3*(2-1)*8 par exemple) ; mais pas et ! Il s'agit d'une part d'un jet rapide, et d'autre part ce ne serait pas pertinent en shell car je soupçonne qu'il y aura des doublons et/ou même des triplons. Cependant, avec ces ajouts, on devrait arriver aux trois mille septante douze…
Petit bémol cependant : les calcul ici sont fait sur des entiers et c'est problématique pour les divisions car le hollandais volant l'entend flottant… (si j'en crois la fonction randomizeNumbers() qui pourtant fait un Math.floor(), à moins que ce ne soit à cause du evalMath(cell1, operator, cell2) dans la fonction evalResultat() ?) Je pense pouvoir corriger cela facilement, ce qui réduira le nombre de solutions proposées.
“It is seldom that liberty of any kind is lost all at once.” ― David Hume
La suite est presque prête. Ce sera une dépêche si plus de gens le signifient en plussant ton commentaire. La valeur à atteindre est 16 (parce-que 0xF simplement)
“It is seldom that liberty of any kind is lost all at once.” ― David Hume
Petite confusion de ma part : ce sont les parenthèses et non les crochets pour ce que j'avais à l'esprit, et il faut rajouter le croisillon et le pourcentage…
Est-ce une façon de parler de son monarc ? Honnêtement, que veux-tu que les gens votent d'autres quand ce n'est « ni ceci ni cela et en même temps tout et son contraire » ?
“It is seldom that liberty of any kind is lost all at once.” ― David Hume
Il n'y a pas que le point-virgule que tu n'as pas compté ; j'ajouterai bien à la liste : le signe d'égalité (=), les guillemets droit double (") et simple ('), la barre oblique (/), le point d'exclamation (!), le double tiret (--) et les crochets droits ([]) je crois. Mais bon, ces symboles ne sont spéciaux qu'au second niveau…
Non, l'espace n'est pas féminin en typographie ; c'est plutôt que l'espace de genre féminin est un terme (et le concept) typographique tandis qu'au masculin c'est un terme mathématique et astrophysique.
Il est bon de chipoter parfois.
“It is seldom that liberty of any kind is lost all at once.” ― David Hume
C'est bien un exercice (ou alors la personne se fait plaisir dans son apprentissage de C++) …et il semble que ça fait appel à iconv qui bien aussi (et parfois mieux.)
“It is seldom that liberty of any kind is lost all at once.” ― David Hume
Je suis bien d'accord que « Si on ne fait qu’écouter le client » (sic) ça ne va pas aller, et c'est pourquoi j'ai écrit (un peu comme toi) que « le client n'écrit pas les spécifications technique » (désolé pour le S qui a pris la clé des champs.)
Pour faire ce dont le client a besoin, il faut en effet écouter son besoin. Comme dit plus tôt par CrEv, il s'agit de faire « ensemble » ; d'où mon parallèle avec la médecine…
(il semble que dans ma formulation non-et-oui on ne retient que le premier)
“It is seldom that liberty of any kind is lost all at once.” ― David Hume
Je sais que vous êtes tous pleins à me moinsser quand je parle de mon émission de radio CPU
Ah ? Je n'étais pas au courant de cette mode ; et moi qui te plusse (pour celles que j'ai écouter ensuite.)
Quand j'avais enregistré la chronique originale en 2015, la longueur de ces pavés indigestes frisaient littéralement la logorrhée d'œuvres shakespeariennes. Ce qui m'a motivé de la rediffuser fut un autre banc-test de concours de longueur de pavé juridique effectué par la revue UFC Que Choisir dans leur numéro de Février.
Il se trouve que la chose préoccupe un certain nombre de personnes ici, en tout cas les gens qui essaient de lire avant d'accepter. Cela a donné quelques journaux et liens comme :
Corolaire : comment voir ce qui change et l'impact quand les CGU d'un service auquel on a souscrit évoluent ?
Ce qui m'attriste, outre qu'il est plus rapide de lire lesdites CGU de SNCF Connect en 6 h 52 que de réserver son billet de train, c'est que l'éditeur de cette revue dit que pour lire leurs propres CGU « 23 mn 51 s suffisent ».
Cordonniers (dénonciateurs) mal chaussés ou fainéants qui en ont pas fait assez ?
En tout cas je suis d'accord qu'il y a comme « un méchant antiuser-pattern » à être fier de faire pire que d'autres.
“It is seldom that liberty of any kind is lost all at once.” ― David Hume
Héhé, j'ai exprès associé balance et équilibre (comme dans le symbole de justice et les analogies en informatique/politique/acoustique/photographie/économie/etc.) et parlé plus tôt de Roberval : dans l'extrait (image), il est dit que c'est normalement ça l'exercice de pesée…
L'autre exercice est une mesure… et ce qu'on appelle dans le langage courant (et source de confusion) pèse-personne ou balance est en fait un dynamomètre (moins confus mais semble pédant)
“It is seldom that liberty of any kind is lost all at once.” ― David Hume
Justement non… À masse égale les masses sont égales sinon ta balance n'est pas en équilibre… Puis proportionnellement les poids sont égaux sauf si la gravitation est différente de part et d'autre de la balance…
“It is seldom that liberty of any kind is lost all at once.” ― David Hume
# un petit peu plus (de divisions)
Posté par Gil Cot ✔ (site web personnel, Mastodon) . En réponse au journal résoudre "trouve 24". Évalué à 4. Dernière modification le 24 février 2022 à 03:44.
C'est ballot …parce que, justement dans un lien posté récemment, que l'absence de pisteurs est un des ingrédients du succès.
https://linuxfr.org/users/gilcot/liens/wordle-is-pretty-damn-smart-in-many-subtle-ways
Ou pas… Ce genre de jeux (le compte est bon) est une façon d'évaluer l'aptitude de calculs mentaux et l'intuition (plutôt la capacité d'estimation) face aux combinaisons de nombres. Évaluer une machine, ou tricher, a peu d'intérêt ici.
Ceci dit, l'informatique y est utile pour évaluer des conjectures mathématiques ou explorer certains aspects algorithmiquement (notamment tout ce qui touche aux arbres de décision, dont il n'est pas question ici puisqu'on emploie la force brute.) Il me semble d'ailleurs avoir vu passer deux articles sur le sujet, dont un dans Tangente si j'ai bonne mémoire.
Du coup, je vais relever le défi, histoire de me changer les idées après une journée harassante de travail. Et pour épicer un peu la chose, l'implémentation sera en shell POSIX…
Bien, je passe sur l'étape de la saisie des nombres et du contrôle des entrées (toujours.)
Je ne vais pas non plus stocker les solutions, mais plutôt les sortir au fil de l'eau.
Comme on n'a pas de structure de tableau (en KSh, BASh et probablement ZSh, oui) je vais utiliser une variable par nombre (mais il n'y en a heureusement que quatre) !
Mon idée est qu'on va faire une boucle sur la liste de nombres.
Dans un langage comme RPL, on va juste faire quatre tours en décalant…
Pour la plupart des autres langages, non Forth-like on va utilier un tableau et décaler le curseur dans la boucle (tout en prenant tous les éléments, c'est juste pour changer l'ordre à chaque itération.)
Bon, on ne gère pas de tableau et heureusement il n'y a que quatre nombres.
Ces quatre lignes sont trompeuses (ça m'a servi à valider le fonctionnement, mais) il y a en fait vingt-quatre permutations (prises en compte dans la version finale.)
Le processus va consister à appliquer les quatre opérateurs… de sorte à couvrir tous les cas…
On peut les énumérer, mais par peur d'oublier, je boucle pareillement pour les quatre opérations… (l'optimisation serait de déboucler …parce que sinon on aura des doublons du fait la commutativité, mais cet exercice se fera plus tard.)
Bon, c'est pas tout ça. Dans ce truc brutalement automatique, il ne faut pas oublier de gérer la division par zéro…
En plus du second processus, on va appeler un troisième dans la même boucle (c'est du « quick and dirty » et il doit être possible de fusionner les deux…)
Enfin, on pense à ajouter les compteurs.
Comme c'est bête/brute et méchant/truand, il m'annonce vingt réponses qui pourraient se ramener à 10 du fait des symétries et on a exploré deux mille huit cents combinaisons dont on aurait pu se passer du quart je pense.
(c'est
(c'est
et
! Il s'agit d'une part d'un jet rapide, et d'autre part ce ne serait pas pertinent en shell car je soupçonne qu'il y aura des doublons et/ou même des triplons. Cependant, avec ces ajouts, on devrait arriver aux trois mille septante douze…
J'ai exploré ici les formes
(8-5)*(7+1)
ou(1+3)*(2-8)
par exemple) et3*(2-1)*8
par exemple) ; mais pasPetit bémol cependant : les calcul ici sont fait sur des entiers et c'est problématique pour les divisions car le hollandais volant l'entend flottant… (si j'en crois la fonction
randomizeNumbers()
qui pourtant fait unMath.floor()
, à moins que ce ne soit à cause duevalMath(cell1, operator, cell2)
dans la fonctionevalResultat()
?) Je pense pouvoir corriger cela facilement, ce qui réduira le nombre de solutions proposées.“It is seldom that liberty of any kind is lost all at once.” ― David Hume
[^] # Re: Retour d'erreur ?
Posté par Gil Cot ✔ (site web personnel, Mastodon) . En réponse au message renommage de fichiers en masse. Évalué à 3.
Il y la structure et les checks nécessaires qui sont indiqué dans l'exemple que j'avais pointé (on est un peu loin de ce qui a été fait.
“It is seldom that liberty of any kind is lost all at once.” ― David Hume
[^] # Re: Quai d'Orsay
Posté par Gil Cot ✔ (site web personnel, Mastodon) . En réponse au journal Évolution des Conditions Générales. Évalué à 3.
Excellent ! Merci tout plein.
“It is seldom that liberty of any kind is lost all at once.” ― David Hume
# palme de la boule de cristal
Posté par Gil Cot ✔ (site web personnel, Mastodon) . En réponse au lien « La France va-t-elle interdire la vente de PC sans OS ? ». Évalué à 2.
En même temps, ce n'était qu'une question de délai…
https://linuxfr.org/users/mcdoil74/journaux/ordi-baby-microsoft-windows#comment-1021358
“It is seldom that liberty of any kind is lost all at once.” ― David Hume
[^] # Re: Ça ferait une bonne dépêche je trouve
Posté par Gil Cot ✔ (site web personnel, Mastodon) . En réponse au journal rétrospective sur la mise en page en console. Évalué à 2.
La suite est presque prête. Ce sera une dépêche si plus de gens le signifient en plussant ton commentaire. La valeur à atteindre est 16 (parce-que
0xF
simplement)“It is seldom that liberty of any kind is lost all at once.” ― David Hume
[^] # Re: Autres corrections
Posté par Gil Cot ✔ (site web personnel, Mastodon) . En réponse au journal rétrospective sur la mise en page en console. Évalué à 2.
Je me suis fait un
diff
de toutes les corrections et c'est monstrueux…https://paste.chapril.org/?ad03e7cef7a32484#nVrrtCqfPzhHxtsyRHpHucPm6G5m67zJtaF85nSasxN
(352 lignes de diff pour 1380 dans le source, soit le quart mais il y a dedans les trois lignes de contexte par défaut…)
“It is seldom that liberty of any kind is lost all at once.” ― David Hume
[^] # Re: Un sacré jeu de piste
Posté par Gil Cot ✔ (site web personnel, Mastodon) . En réponse à la dépêche RFC Fast Kernel Headers très prometteur pour le noyau Linux. Évalué à 4.
Il y a certainement une …mono piste…
“It is seldom that liberty of any kind is lost all at once.” ― David Hume
[^] # Re: Attendre un caractère après les deux points
Posté par Gil Cot ✔ (site web personnel, Mastodon) . En réponse au journal Voter pour virer les emojis de Gitlab. Évalué à 2.
Petite confusion de ma part : ce sont les parenthèses et non les crochets pour ce que j'avais à l'esprit, et il faut rajouter le croisillon et le pourcentage…
Pour le reste, c'est plus classique et on retrouve bien l'idée de second niveau
“It is seldom that liberty of any kind is lost all at once.” ― David Hume
[^] # Re: other links in english
Posté par Gil Cot ✔ (site web personnel, Mastodon) . En réponse au lien Sven Guckes verstorben. Évalué à 2.
“It is seldom that liberty of any kind is lost all at once.” ― David Hume
[^] # Re: Bravo
Posté par Gil Cot ✔ (site web personnel, Mastodon) . En réponse au lien De gauche, ils revoteront Macron. Évalué à -5.
Est-ce une façon de parler de son monarc ? Honnêtement, que veux-tu que les gens votent d'autres quand ce n'est « ni ceci ni cela et en même temps tout et son contraire » ?
“It is seldom that liberty of any kind is lost all at once.” ― David Hume
[^] # Re: De l'art du chipotage
Posté par Gil Cot ✔ (site web personnel, Mastodon) . En réponse au lien L’œuf ou la poule ? Lequel est arrivé en premier ?. Évalué à 1.
Il te faut une force lunaire pour faire un effet de marrée
~~~>[]
“It is seldom that liberty of any kind is lost all at once.” ― David Hume
# nous on a le droit, pas vous
Posté par Gil Cot ✔ (site web personnel, Mastodon) . En réponse au lien Un revendeur de logiciel espion plaide coupable aux États-Unis (payant 1 mois) . Évalué à 1.
…parce-qu'on a décidé qu'il doit en être ainsi.
“It is seldom that liberty of any kind is lost all at once.” ― David Hume
[^] # Re: Titre trompeur
Posté par Gil Cot ✔ (site web personnel, Mastodon) . En réponse au lien Sustainability with Rust. Évalué à 2. Dernière modification le 22 février 2022 à 21:21.
Bonus : il boit la vie… :-D Quel charmant calmant Jeanne
“It is seldom that liberty of any kind is lost all at once.” ― David Hume
[^] # Re: De l'art du chipotage
Posté par Gil Cot ✔ (site web personnel, Mastodon) . En réponse au lien L’œuf ou la poule ? Lequel est arrivé en premier ?. Évalué à 2. Dernière modification le 22 février 2022 à 19:55.
Insensiblement… pour ne pas dire négligeable, puisque ça touchera un nano sans en toucher l'autre, comme on dit.
“It is seldom that liberty of any kind is lost all at once.” ― David Hume
[^] # Re: Attendre un caractère après les deux points
Posté par Gil Cot ✔ (site web personnel, Mastodon) . En réponse au journal Voter pour virer les emojis de Gitlab. Évalué à 3.
Il n'y a pas que le point-virgule que tu n'as pas compté ; j'ajouterai bien à la liste : le signe d'égalité (
=
), les guillemets droit double ("
) et simple ('
), la barre oblique (/
), le point d'exclamation (!
), le double tiret (--
) et les crochets droits ([]
) je crois. Mais bon, ces symboles ne sont spéciaux qu'au second niveau…Non, l'espace n'est pas féminin en typographie ; c'est plutôt que l'espace de genre féminin est un terme (et le concept) typographique tandis qu'au masculin c'est un terme mathématique et astrophysique.
Il est bon de chipoter parfois.
“It is seldom that liberty of any kind is lost all at once.” ― David Hume
[^] # Re: Le code ?
Posté par Gil Cot ✔ (site web personnel, Mastodon) . En réponse au message renommage de fichiers en masse. Évalué à 2.
Du coup on voit que tu utilises libiconv pour lequel tu as un wrapper intéressant ici : https://github.com/unnonouno/iconvpp Et sinon tu peux étudier l'exemple assez complet du site officiel : https://www.gnu.org/software/libc/manual/html_node/iconv-Examples.html
“It is seldom that liberty of any kind is lost all at once.” ― David Hume
[^] # Re: Alternative déjà dispo
Posté par Gil Cot ✔ (site web personnel, Mastodon) . En réponse au message renommage de fichiers en masse. Évalué à 2.
C'est bien un exercice (ou alors la personne se fait plaisir dans son apprentissage de C++) …et il semble que ça fait appel à
iconv
qui bien aussi (et parfois mieux.)“It is seldom that liberty of any kind is lost all at once.” ― David Hume
[^] # Re: Titre trompeur
Posté par Gil Cot ✔ (site web personnel, Mastodon) . En réponse au lien Sustainability with Rust. Évalué à 2.
Oui, hélas encore un titre trompeur/racoleur (rayer la mention inutile)
“It is seldom that liberty of any kind is lost all at once.” ― David Hume
[^] # Re: J'adore le paragraphe sur les fondamentaux de l'édition de logiciels
Posté par Gil Cot ✔ (site web personnel, Mastodon) . En réponse au lien L'histoire de CATIA, racontée par son créateur. Évalué à 2.
Je suis bien d'accord que « Si on ne fait qu’écouter le client » (sic) ça ne va pas aller, et c'est pourquoi j'ai écrit (un peu comme toi) que « le client n'écrit pas les spécifications technique » (désolé pour le S qui a pris la clé des champs.)
Pour faire ce dont le client a besoin, il faut en effet écouter son besoin. Comme dit plus tôt par CrEv, il s'agit de faire « ensemble » ; d'où mon parallèle avec la médecine…
(il semble que dans ma formulation non-et-oui on ne retient que le premier)
“It is seldom that liberty of any kind is lost all at once.” ― David Hume
# other links in english
Posté par Gil Cot ✔ (site web personnel, Mastodon) . En réponse au lien Sven Guckes verstorben. Évalué à 2.
J'ai eu l'info via un mail (plus précisément une liste de diffusion) dont le contenu peut être lu à l'adresse suivante :
https://groups.google.com/d/msgid/vim_announce/20220221134844.047981C0FE0%40moolenaar.net.
Ce message mentionne également le lien HN :
https://news.ycombinator.com/item?id=30410077
J'imagine qu'il y aura un fil sur SlashDot aussi…
“It is seldom that liberty of any kind is lost all at once.” ― David Hume
# Cette Pub Utile
Posté par Gil Cot ✔ (site web personnel, Mastodon) . En réponse au lien combien de temps faut-il pour lire les CGU des principales apps ?. Évalué à 2.
Pour en remettre une couche…
https://linuxfr.org/users/dascritch/journaux/evolution-des-conditions-generales
“It is seldom that liberty of any kind is lost all at once.” ― David Hume
# on en parle…
Posté par Gil Cot ✔ (site web personnel, Mastodon) . En réponse au journal Évolution des Conditions Générales. Évalué à 6.
Ah ? Je n'étais pas au courant de cette mode ; et moi qui te plusse (pour celles que j'ai écouter ensuite.)
Il se trouve que la chose préoccupe un certain nombre de personnes ici, en tout cas les gens qui essaient de lire avant d'accepter. Cela a donné quelques journaux et liens comme :
Corolaire : comment voir ce qui change et l'impact quand les CGU d'un service auquel on a souscrit évoluent ?
Cordonniers (dénonciateurs) mal chaussés ou fainéants qui en ont pas fait assez ?
En tout cas je suis d'accord qu'il y a comme « un méchant antiuser-pattern » à être fier de faire pire que d'autres.
“It is seldom that liberty of any kind is lost all at once.” ― David Hume
[^] # Re: De l'art du chipotage
Posté par Gil Cot ✔ (site web personnel, Mastodon) . En réponse au lien L’œuf ou la poule ? Lequel est arrivé en premier ?. Évalué à 4.
Héhé, j'ai exprès associé balance et équilibre (comme dans le symbole de justice et les analogies en informatique/politique/acoustique/photographie/économie/etc.) et parlé plus tôt de Roberval : dans l'extrait (image), il est dit que c'est normalement ça l'exercice de pesée…

L'autre exercice est une mesure… et ce qu'on appelle dans le langage courant (et source de confusion) pèse-personne ou balance est en fait un dynamomètre (moins confus mais semble pédant)
“It is seldom that liberty of any kind is lost all at once.” ― David Hume
[^] # Re: Un peu tout
Posté par Gil Cot ✔ (site web personnel, Mastodon) . En réponse au sondage Développeur Libristes, oui ! mais macOS, Visual Studio et Azure ?. Évalué à 2.
Au niveau pro il y a HP qui est bien aussi.
“It is seldom that liberty of any kind is lost all at once.” ― David Hume
[^] # Re: De l'art du chipotage
Posté par Gil Cot ✔ (site web personnel, Mastodon) . En réponse au lien L’œuf ou la poule ? Lequel est arrivé en premier ?. Évalué à 1.
Justement non… À masse égale les masses sont égales sinon ta balance n'est pas en équilibre… Puis proportionnellement les poids sont égaux sauf si la gravitation est différente de part et d'autre de la balance…
“It is seldom that liberty of any kind is lost all at once.” ― David Hume