Misez p'tit, Optimisez - N°115 : Evaluation de la fonction d'Olivette Barthelaine

Ici, on fait dans le petit, le LCD qui déchire sa race, on y cause même calculatrices quand on est en manque !

Modérateur : Politburo

Avatar du membre
C.Ret
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 3404
Enregistré le : 31 mai 2008 23:43
Localisation : N 49°22 E 6°10

Re: Misez p'tit, Optimisez - N°115 : Evaluation de la fonction d'Olivette Barthelaine

Message par C.Ret »

Je retire immédiatement 4 points sur le permis de MPO de Scharf qui poste alors que la voie était réservée à marge.
J'avais pourtant bien dit que le signal passera au vert lorsque marge aura posté sa proposition de code.
C.Ret a écrit : 19 mars 2023 07:24Ah! Ca marge c'est une bonne nouvelle et cela me fais un grand plaisir.
[...]
La publication de ton code sera le signal qui autorisera les autres participants à poster directement et librement leur production dans ce fil.
Aïe, aïe, si c'est pas malheureux de devoir faire la circulation !!

Image
SHARP PC-1211 PC-1360 EL-5150 PC-E500 | Commodore C=128D | Texas Instruments Ti-57LCD Ti-74BASICalc Ti-92II Ti-58c Ti-95PROCalc Ti-30XPROMathPrint | Hewlett-Packard HP-28S HP-41C HP-15C HP-Prime HP-71B | CASIO fx-602p | NUMWORKS | Graphoplex Rietz Neperlog | PockEmul | Sommaire des M.P.O. | Ma...dov'il sapone.
antoine
Fonctionne à 75 bauds
Fonctionne à 75 bauds
Messages : 14
Enregistré le : 04 août 2022 10:18

Re: Misez p'tit, Optimisez - N°115 : Evaluation de la fonction d'Olivette Barthelaine

Message par antoine »

Bonjour,

Une solution sans prétention pour une calculatrice que j'aime beaucoup mais dont la programmation se limite à une simple évaluation de formule via les touches IN, OUT et CALC (le même principe que sur une fx850P par exemple)

Image

Antoine
FLISZT
Fonctionne à 1200 bauds
Fonctionne à 1200 bauds
Messages : 655
Enregistré le : 09 mars 2022 19:14

Re: Misez p'tit, Optimisez - N°115 : Evaluation de la fonction d'Olivette Barthelaine

Message par FLISZT »

Oh là ! Il s'en passe des choses sur le forum et tout particulièrement dans cette rubrique :
un nouvel MPO très mathématique, des trains qui passent au rouge et même un nouvel adhérent d'un genre assez indéterminé et même indéterminable !

J'ai remarqué que ce dernier répondait presque aussitôt qu'une question était posée… à croire qu'il sait lire ! ;)

Bref, j'ai à peine eu le temps de me saisir d'une de mes gpt-50 (oui on a les moyens par ici) pour tenter de savoir à quoi était égal f(6), question posée à notre "chap" virtuel et restée sans réponse.

En tappant sur diverses touches, j'ai obtenu 33,9 999 999 999, ce qui semble "coller".
gpt-50 : 1 − chatgpt-3 : 0 … on lui donnerait même un score négatif, si c'était possible ! :D

Le pblm est que je n'ai pas noté cette séquence de touches (entre SOLVEVX et SOLVE que je n'utilise jamais, j'y vais à tâtons voire au pif) et qu'elle ne constitue pas un programme…

Finalement, le plus dur dans ce MPO, c'est ce qui se passe sur la feuille blanche que l'on tente de noircir : avant de s'attaquer à la programmation, il faut trouver comment simplifier cette fonction de la Comtesse de Bas de Laine.
Bruno
Sanyo CZ-0124 ? TI-57 ? HP-15C ? Canon X-07 + XP-140 Monitor Card ? HP-41CX ? HP-28S ? HP-50G ? HP-50G
Zebulon
Fonctionne à 1200 bauds
Fonctionne à 1200 bauds
Messages : 575
Enregistré le : 28 juin 2022 10:21

Re: Misez p'tit, Optimisez - N°115 : Evaluation de la fonction d'Olivette Barthelaine

Message par Zebulon »

Oui sur celui-là je passe car ça dépasse mes connaissances en maths, de mémoire je n'ai jamais étudié que des fonctions f(x). :cry:
FLISZT
Fonctionne à 1200 bauds
Fonctionne à 1200 bauds
Messages : 655
Enregistré le : 09 mars 2022 19:14

Re: Misez p'tit, Optimisez - N°115 : Evaluation de la fonction d'Olivette Barthelaine

Message par FLISZT »

Une collation et un programme plus tard…


Suite à la déclaration d'incident faite par le Chef de Gare C.Ret, le BEAF (Bureau d'Enquêtes et d'Analyses Ferrovières) s'est rendu sur place.

Selon les premières analyses, le conducteur du train HP57G est passé au rouge clignotant, ce qui est parfaitement conforme au code de circulation du chemin de fer :
« Le feu rouge clignotant (…) autorise la marche à vue sans arrêt préalable, à condition de ne pas dépasser les 15 km/h au franchissement du signal. »
Cependant, la boîte noire de la locomotive de type CC-48950 a révélé que la vitesse était de 150 km/h, vitesse très largement excessive.

Par ailleurs, le conducteur du train a déclaré avoir été ébloui par un laser vert, ce qui pourrait expliquer, au moins partiellement, sa méprise.
Ses déclarations ont conduit la gendarmerie à ouvrir une enquête…

Quoi qu'il en soit (de la signalisation), je ne posterai pas tout de suite mon petit (60 octets) programme tout "chaud" qui fonctionne sur une hp-28.
Je m'interroge même sur la nécessité de poster un programme aussi banal…
Bruno
Sanyo CZ-0124 ? TI-57 ? HP-15C ? Canon X-07 + XP-140 Monitor Card ? HP-41CX ? HP-28S ? HP-50G ? HP-50G
Avatar du membre
Schraf
Fonctionne à 1200 bauds
Fonctionne à 1200 bauds
Messages : 499
Enregistré le : 05 mars 2020 20:45
Contact :

Re: Misez p'tit, Optimisez - N°115 : Evaluation de la fonction d'Olivette Barthelaine

Message par Schraf »

@C.Ret : Ca c'est un comble ! @ChatGPT3 a le droit de publier des codes et pas nous pauvres humains ! A bas la suprématie des IA !!

Programme pour hp 33s / 35s :

Code : Tout sélectionner

00001	x²
00002	4
00003	-
00004	√x
00005	x²
00006	2
00007	+
On entre la première valeur de x puis R/S, on peut enchainer sur la seconde R/S etc. Lorsqu'il ne trouve pas l'image, le message SQRT(NEG) s'affiche.
Avatar du membre
Docd
Fonctionne à 300 bauds
Fonctionne à 300 bauds
Messages : 195
Enregistré le : 13 déc. 2022 16:24
Localisation : Belgique

Re: Misez p'tit, Optimisez - N°115 : Evaluation de la fonction d'Olivette Barthelaine

Message par Docd »

Bonjour,
@Schraf: je vais dire une bêtise, mais ... c'est pas trop simple comme solution? J'ai pas de HP 33/35s mais ça me semble court. Puis, vu ce que j'ai lu dans d'autres problèmes proposés par C.Ret, je me demande si c'est pas un piège...

Concernant le bot: il a publié, des choses ... bizarres. Pour moi, ca prouve que: 1 il est à côté de la plaque, 2 il ne respecte pas les règles (ou l'humain qui, en sous-main, a fait le relais). Maintenant, si je tractopile un peu, c'est peut-être un utilisateur (pseudo commençant par C et terminant par Ret, au hazard) qui l'a sciemment fait, pour "aider" (lisez égarer) ... histoire de compliquer les choses ... :twisted:

Mes excuses à C.Ret si ce n'est pas lui ou si ce n'était pas "poudre aux yeux". :wink:

Cordialement,

Didier
Fonctionne à piles.
Sujet à des crises de tetrapilectomie sévère, parfois aigüe.
FLISZT
Fonctionne à 1200 bauds
Fonctionne à 1200 bauds
Messages : 655
Enregistré le : 09 mars 2022 19:14

Re: Misez p'tit, Optimisez - N°115 : Evaluation de la fonction d'Olivette Barthelaine

Message par FLISZT »

Vu la « très grande complexité » de mon programme, je me suis dit qu'une variable, même locale, était peut-être superflue voire farfelue…

Allégé de cette variable, il ne pèse plus que 48,5 octets.

J'en ai profité pour faire une "variante", si l'on peut appeler cela une variante, pour hp-49g, 49g+, 48gII et 50g exclusivement.
Résultat : là encore 48,5 octets, c'est dire si ça varie…

@ Schraf
Pour les deux derniers résultats, tu sembles avoir oublié des décimales.
Bruno
Sanyo CZ-0124 ? TI-57 ? HP-15C ? Canon X-07 + XP-140 Monitor Card ? HP-41CX ? HP-28S ? HP-50G ? HP-50G
Avatar du membre
Schraf
Fonctionne à 1200 bauds
Fonctionne à 1200 bauds
Messages : 499
Enregistré le : 05 mars 2020 20:45
Contact :

Re: Misez p'tit, Optimisez - N°115 : Evaluation de la fonction d'Olivette Barthelaine

Message par Schraf »

@Docd Je vois les choses de la façon suivante :

Image

Mon programme teste si le nombre est bien dans l'ensemble de définition (en cherchant la racine carrée de x²-4 qui donnera ou non une erreur) puis en reprenant le carré + 2 ce qui fera finalement x²-2.
Modifié en dernier par Schraf le 21 mars 2023 18:40, modifié 1 fois.
Zebulon
Fonctionne à 1200 bauds
Fonctionne à 1200 bauds
Messages : 575
Enregistré le : 28 juin 2022 10:21

Re: Misez p'tit, Optimisez - N°115 : Evaluation de la fonction d'Olivette Barthelaine

Message par Zebulon »

Merci Eric pour ces explications, c'est un peu plus clair pour moi. :wink:
Avatar du membre
Docd
Fonctionne à 300 bauds
Fonctionne à 300 bauds
Messages : 195
Enregistré le : 13 déc. 2022 16:24
Localisation : Belgique

Re: Misez p'tit, Optimisez - N°115 : Evaluation de la fonction d'Olivette Barthelaine

Message par Docd »

+1 avec Zebulon, mais ce n'est pas plus clair pour moi.
Merci, Schraf, mais comme j'ai 40+ ans à rattraper ... J'y arriverai, peut-être (si le cas n'est pas désespéré, j'étais déjà pas "bon" à l'époque).

Didier
Fonctionne à piles.
Sujet à des crises de tetrapilectomie sévère, parfois aigüe.
Avatar du membre
C.Ret
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 3404
Enregistré le : 31 mai 2008 23:43
Localisation : N 49°22 E 6°10

Re: Misez p'tit, Optimisez - N°115 : Evaluation de la fonction d'Olivette Barthelaine

Message par C.Ret »

antoine a écrit : 20 mars 2023 22:29Une solution sans prétention pour une calculatrice que j'aime beaucoup mais dont la programmation se limite à une simple évaluation de formule via les touches IN, OUT et CALC (le même principe que sur une fx850P par exemple)
Antoine, ce qu'affiche ta calculatrice est très intéressant, il va falloir que tu nous expliques en détail comment tu obtiens ce résultat.
Une fois, la formule dans la machine, elle peut calculer les valeurs du tableau ?

FLISZT a écrit : 21 mars 2023 07:44J'ai remarqué que ce dernier répondait presque aussitôt qu'une question était posée… à croire qu'il sait lire !
Oui, il sait lire. Mais surtout , il sait obéir. J'ai passé une ficelle autour d'un de ses neurones et je serre le nœud chaque fois qu'il refuse d'obtempérer.
FLISZT a écrit : 21 mars 2023 07:44Finalement, le plus dur dans ce MPO, c'est ce qui se passe sur la feuille blanche que l'on tente de noircir : avant de s'attaquer à la programmation, il faut trouver comment simplifier cette fonction de la Comtesse de Bas de Laine.
C'est bien cela, La Comtesse Olivette Ba rthe laine. Ah!Ah! Je viens de comprendre !

Par contre, pas obliger de "simplifier" la fonction. Utiliser une méthode de résolution d'équation générale (comme SOLVE ou SOLVEX) pour trouver la valeur de petit x qui correspond à chaque grand X du tableau permet aussi de compléter ce dernier.
Evidemment, il y a de grandes chances que si la définition analytique de f est simple, les codes de ceux qui l'ont trouvée seront petits, courts, optimums et rapides.
Zebulon a écrit : 21 mars 2023 09:00Oui sur celui-là je passe car ça dépasse mes connaissances en maths, de mémoire je n'ai jamais étudié que des fonctions f(x).
Donc, tu as toutes les chances d'y arriver. En effet l'expression f(x+1/x)=x²+1/x² n'est pas une définition valide pour la fonction. C'est un des pièges de mon énoncé. C'est ma nature, je suis un vicieux.

Il faut donc comprendre que la fonction f est inconnue. On sait juste qu'elle est solution de l'équation f(x+1/x)=x²+1/x²;
On aurai aimé avoir une définition directe de la forme f(x)= « quelque chose dépendant de x ». Mais, non C.Ret n'a pas donné.

Il faut donc effectuer une substitution. Ce grand bavard de ChatGTP3 a proposé plein de choses possibles dont une substitution trigonométrique en posant x+1/x = 2cos θ; Libre à vous de faire confiance à l' Artificial Entity .

Moi, je trouve plus logique et plus simple de poser y=x+1/x. En remplaçant x+1/x dans l'équation on obtient f(x+1/x)=f(y).
Il ne reste plus qu'à trouver un moyen d'écrire f(y)= « quelque chose ne dépendant que de y » et le tour est joué. On aura une vraie définition de f (une défintion analytique) de la forme f(y)=...
FLISZT a écrit : 21 mars 2023 09:08Suite à la déclaration d'incident faite par le Chef de Gare C.Ret, le BEAF (Bureau d'Enquêtes et d'Analyses Ferrovières) s'est rendu sur place.
Les HP-28S sont attendues sur la voie A. C'est quoi cette unité, 60 octets ça fait combien de voitures ? Ca me parait un peu long comme convoi juste pour la visite de la Comtesse.
Schraf a écrit : 21 mars 2023 10:11@C.Ret : Ca c'est un comble ! @ChatGPT3 a le droit de publier des codes et pas nous pauvres humains ! A bas la suprématie des IA !!


Ah! Parce que trouve que les élucubrations de ChatGPT sont des codes valides ? Il a bien du mal. J'espère qu'il est meilleurs en Python ou C++ car beaucoup l'utilisent pour ses compétences en programmation.

Concernant ton programme, il est non recevable il a déjà été posté pour une HP-25.
Docd a écrit : 21 mars 2023 12:34Maintenant, si je tractopile un peu, c'est peut-être un utilisateur (pseudo commençant par C et terminant par Ret, au hazard) qui l'a sciemment fait, pour "aider" (lisez égarer) ... histoire de compliquer les choses ...
Très bonne tractopilation.
Effectivement, les élucubrations de mon nouvel ami ont été siam-ment choisies et transcrites ici pour animer ce MPO et donner des pistes afin d'aider chacun à se perdre plus facilement.

Mais, effectivement la définition analytique de la fonction f est très simple. C'est ce qui rend ce MPO difficile. Un code général utilisant les outils de résolution généraux ne fait pas le poids face à un code utilisant l'expression analytique qui est aussi courte que la jupe de la Miss Olivette Barthelaine.

Je reprends ici la suite de l'explication ci-dessus.

Avec la substitution y=x+1/x, l'équation f(x+1/x)=x²+1/x² peut s'écrire f(y)=x²+1/x².
Il nous faut donc un moyen de faire apparaitre y dans le second membre de cette équation.

Pour les plus matheux d'entre nous ou ceux qui ont beaucoup souffert pendant les colles en prépas, le plus direct est de factoriser. Mais c'est une technique un peu longue à expliquer ici.
Pour tous, nous pouvons observer ce qui se passe lorsque l'on élève x+1/x au carré :
(x+1/x)² =
On a plus l'habitude de faire (a+b)² et l'on sait que (a+b)²=a²+2ab+b², donc pour le coup on a a=x et b=1/x :
(x+1/x)² = x² + 2*x*1/x + (1/x)²
(x+1/x)² = x² + 2*x/x + 1/x²
(x+1/x)² = x² + 2 + 1/x²

Tiens, coup de bol, x²+1/x² apparait ici ! C'est un sacré coup de chance.
On en déduit que :
x²+1/x² = (x+1/x)² - 2
x²+1/x² = ( y )² - 2

Donc, on a une définition analytique directe de la fonction f solution de l'équation f(x+1/x)=x²+1/x² lorsque y=x+1/x : f(y)=y²-2

Notons que l'on peut aussi écrire directement f(x)=x²-2. Mais cela à l'inconvénient de masquer l'écueil principal.
Cette solution analytique simple n'est valable que si la substitution de x+1/x par y est possible.

Comme Schraf, appelons Df l'ensemble des réels y pouvant s'écrire sous la forme y=x+1/x. Cette substitution n'est possible que s'il existe une solution réelle à l'équation quadratique x²-yx+1=0 avec x≠0.
Il faut donc que le discriminent ∆ = y²-4*1*1 = y²-4 soit positif (deux solutions réelles) ou nul (une solution double).

Donc, comme le dit ci-dessus Scharf, la fonction f est définie pour tout réel x sur Df = (-∞ -2 ] ∩ [ 2 +∞) par f(x)=x²-2.
F(x+1/x)=x²+1/x²
F(x+1/x)=x²+1/x²
MPO 115 - Fonction Olivette Barthelaine.png (8.11 Kio) Vu 1383 fois

Un second fait peut aussi aider à simplifier vos code, la fonction f d'Olivette Barthelaine est paire :
Pour tout réel x appartenant à Df, f(-x)=f(x)=x²-2.

Image
SHARP PC-1211 PC-1360 EL-5150 PC-E500 | Commodore C=128D | Texas Instruments Ti-57LCD Ti-74BASICalc Ti-92II Ti-58c Ti-95PROCalc Ti-30XPROMathPrint | Hewlett-Packard HP-28S HP-41C HP-15C HP-Prime HP-71B | CASIO fx-602p | NUMWORKS | Graphoplex Rietz Neperlog | PockEmul | Sommaire des M.P.O. | Ma...dov'il sapone.
Zebulon
Fonctionne à 1200 bauds
Fonctionne à 1200 bauds
Messages : 575
Enregistré le : 28 juin 2022 10:21

Re: Misez p'tit, Optimisez - N°115 : Evaluation de la fonction d'Olivette Barthelaine

Message par Zebulon »

Merci pour cette démonstration, j'étais assez loin du compte. :?

Par contre j'ai compris la ruse d'Antoine. J'ai testé sur mon FX-880P et il se comporte je pense comme sa machine.

Si X est dans l'intervalle ]-2;2[ la racine carrée d'un nombre négatif provoque une erreur et la formule n'est pas évaluée, sinon la formule est évaluée mais la racine carrée multipliée par 0 compte pour des prunes et la formule est bien X²-2.

Vous m'épatez tous par vos idées géniales. :P
Avatar du membre
Docd
Fonctionne à 300 bauds
Fonctionne à 300 bauds
Messages : 195
Enregistré le : 13 déc. 2022 16:24
Localisation : Belgique

Re: Misez p'tit, Optimisez - N°115 : Evaluation de la fonction d'Olivette Barthelaine

Message par Docd »

Merci, ô Maître des Voies (chef de gare, quoi!).

J'ai sorti mon Canon X-07 pour tuer une mouchette (tiens, ça rime):
10 CLEAR : INPUT X : IF X=0 THEN ? "N/A" : END (si zero sortir, évite une division par 0 en 20)
20 Y=X+1/X : IF Y>=-2 AND Y<=2 THEN ? "N/A" ELSE ? Y^2-2 : END (f(y) avec -2<=y<=2 n'est pas un nbre réel)
74 bytes, sans les espaces.

Pour être honnête avec les autres participants, j'ai aussi soumis d'autres solutions au Maître des Voies. Incorrectes, bien sûr, je suis une quiche niveau maths. Après coup: "Bon sang, mais c'est bien sûr!" mais je n'ai pas assez de "Souplex"(*) mentale pour y arriver seul.

Félicitations aux génies sachant emprunter ces Voies!

Didier

(*) Les anciens comprendront, les moins anciens, c'est pas sûr. :wink:
Fonctionne à piles.
Sujet à des crises de tetrapilectomie sévère, parfois aigüe.
Avatar du membre
Marge
Fonctionne à 14400 bauds
Fonctionne à 14400 bauds
Messages : 6172
Enregistré le : 01 oct. 2008 14:39
Localisation : En bas, tout au fond à gauche.

Re: Misez p'tit, Optimisez - N°115 : Evaluation de la fonction d'Olivette Barthelaine

Message par Marge »

Marge avant la feuille noircie…

Image
3 hommes, 3 demis, un 3a... Magnéto, Serge !

Quelques-uns de mes petits programmes pour machines Hewlett-Packard :
15C : Knight's Tour ;
29C : (k-)Permutations, Combinations, Linear Regression and Pseudo-random number ;
34C : Hanoi Towers - Automatic & Manual resolutions ;
67
__: A L I E N .

« Boris », c'était juste Maurice enrhumé.
Répondre

Retourner vers « Tous les Pockets »