IPB

Bienvenue invité ( Connexion | Inscription )

 
Reply to this topicStart new topic
> Nombre d'Armstrong En Python et/ou C(++)
Options
alfranz
posté 30 Mar 2023, 09:33
Message #1


Nouveau Membre


Groupe : Membres
Messages : 4
Inscrit : 27 Mar 2023
Membre no 217 569



J'ai besoin d'imprimer tous les nombres armstrong entre 1 et 10000. Mon problème est que lorsque j'exécute mon programme et que j'atteins 150, il ne fait rien.

Code
(1^3) + ((5^3)-1) + (0^3)


au lieu de

Code
(1^3) + (5^3) + (0^3).


Est-ce un bug du compilateur ? Est-il nécessaire de réinstaller mon compilateur ? J'utilise actuellement des blocs de code.

Code
#include <iostream>
#include <math.h>

using namespace std;

int main()
{
    for(int i = 0;i <= 10000;++i)
    {
        int r = i;
        int dig = 0;
        while(r != 0)
        {
            dig++;
            r /= 10;
        }
        int n = i, sum = 0;
        while(n != 0)
        {
            int d = n % 10;
            sum += pow(d, dig);
            n /= 10;
        }
        if(sum == i)
            cout << i << ' ';
    }
    cout << "\n\n\n";
    return 0;
}


En conséquence, il n'imprime pas 153 (un nombre d'Armstrong), car la somme est de 152. Je ne sais pas si d'autres nombres effectuent la même chose. Mais j'ai vérifié jusqu'à 200 en utilisant cette source et il n'y a aucun problème avec les autres chiffres sauf ceux de la zone 150-160.

Ce message a été modifié par Phil J. Fry - 31 Mar 2023, 12:31.
Raison de l'édition : Titre
Go to the top of the page
 
+Quote Post
Phil J. Fry
posté 30 Mar 2023, 23:21
Message #2


The Original Martian & DBCM
*****

Groupe : Modérateurs
Messages : 6 537
Inscrit : 25 May 2004
Lieu : sɹɐɯ ⅋ ʞɹoʎ ʍǝu ʍǝu ⅋ ǝssᴉns
Membre no 19 190



Ton Python ressemble à une Couleuvre++
Ce qui est dommage c'est que ta source donnée en lien n'est pas lisible. Après quelques secondes la lecture est bloquée.


--------------------
MBP 16" Sonoma 14.3.1 MBA 13" Sonoma 14.3.1 MacBook Air 11" 10.9.5 MacBook 2Ghz 1Go X.6.4 blanc Mac Mini 1.25Ghz 1Go X.4.10 Spatule de 10,5 cm iPod shuffle 512 iPod mini 4GB iPod Nano 16GB
DBCM III Disciple du MSV Team BOINC Macbidouille
But I'm a creep, I'm a weirdo - What the hell am I doin here? - I don't belong here Radiohead
Il vaut mieux mobiliser son intelligence sur des conneries que mobiliser sa connerie sur des choses intelligentes - S'il n'y a pas de solution, c'est qu'il n'y a pas de problème - Devises Shadok
La connaissance, c'est savoir que la tomate est un fruit. La sagesse, c'est savoir qu'il ne faut pas la mettre dans une salade de fruit. B O'D
Go to the top of the page
 
+Quote Post
baron
posté 30 Mar 2023, 23:33
Message #3


Macbidouilleur d'Or !
*****

Groupe : Modérateurs
Messages : 19 315
Inscrit : 22 Jul 2004
Lieu : Louvain-la-Neuve (Gaule Gelbique)
Membre no 21 291



Citation (Phil J. Fry @ 30 Mar 2023, 23:21) *
Ce qui est dommage c'est que ta source donnée en lien n'est pas lisible. Après quelques secondes la lecture est bloquée.

Sauf si on choisit de passer en mode Lecteur avec son navigateur, en cliquant sur la petite icône en forme de page à gauche de l'URL.
happy.gif

(Ou – chez moi – en réduisant la taille d'affichage jusqu'à voir toute la fenêtre popup qui masque l'article. Dès lors, je vois apparaître le bouton de fermeture qui était hors de l'écran et je peux fermer cette fenêtre popup pour lire le reste de l'article — mais il faut recommencer de temps en temps… Le mode Lecteur est plus commode.)


--------------------
MacBook Pro 14’’ 2021, M1 Pro, 16 Go/1 To – macOS  12.6 “Monterey”  MacBook Pro 15’’ mi-2010 Core i5 2,53 GHz, 8 Go/SSD Samsung 860EVO 1 To – Mac OSX 10.6.8  Power Macintosh G3 beige de bureau, rev.1 @ 233MHz, 288 Mo/4Go – MacOS 9.1 — + carte PCI IDE/ATA Tempo 66 Acard 6260 avec HD interne Maxtor 80 Go + graveur interne CDRW/DVD LG GCC-4520B + tablette A4 Wacom UD-0608-A + LaCie ElectronBlueIV 19" + HP ScanJet 6100C   B-Box 3 + HP LaserJet 4000 N  
La recherche dans MacBidouille vous paraît obscure ? J'ai rédigé une proposition de FAQ. Le moteur logiciel a un peu changé depuis mais ça peut aider quand même.
Les corsaires mettent en berne…
Go to the top of the page
 
+Quote Post
Phil J. Fry
posté 30 Mar 2023, 23:48
Message #4


The Original Martian & DBCM
*****

Groupe : Modérateurs
Messages : 6 537
Inscrit : 25 May 2004
Lieu : sɹɐɯ ⅋ ʞɹoʎ ʍǝu ʍǝu ⅋ ǝssᴉns
Membre no 19 190



Merci baron smile.gif


Leur solution a l'air bien compliquée. La mienne tient en 16 instructions en Python3.


--------------------
MBP 16" Sonoma 14.3.1 MBA 13" Sonoma 14.3.1 MacBook Air 11" 10.9.5 MacBook 2Ghz 1Go X.6.4 blanc Mac Mini 1.25Ghz 1Go X.4.10 Spatule de 10,5 cm iPod shuffle 512 iPod mini 4GB iPod Nano 16GB
DBCM III Disciple du MSV Team BOINC Macbidouille
But I'm a creep, I'm a weirdo - What the hell am I doin here? - I don't belong here Radiohead
Il vaut mieux mobiliser son intelligence sur des conneries que mobiliser sa connerie sur des choses intelligentes - S'il n'y a pas de solution, c'est qu'il n'y a pas de problème - Devises Shadok
La connaissance, c'est savoir que la tomate est un fruit. La sagesse, c'est savoir qu'il ne faut pas la mettre dans une salade de fruit. B O'D
Go to the top of the page
 
+Quote Post
baron
posté 31 Mar 2023, 00:36
Message #5


Macbidouilleur d'Or !
*****

Groupe : Modérateurs
Messages : 19 315
Inscrit : 22 Jul 2004
Lieu : Louvain-la-Neuve (Gaule Gelbique)
Membre no 21 291



Citation (Phil J. Fry @ 30 Mar 2023, 23:48) *
Leur solution a l'air bien compliquée.

Si j'ai bien compris la "source" de notre ami, il y a là différentes procédures pour arriver au même but limité (vérifier si tel nombre répond ou non aux critères d'un nombre d'Armstrong).
Tu parlais en général ou d'une en particulier ?
(Pour ma part, j'aime assez celle par les fonctions, que je comprends, à l'inverse de celle par récursion… huh.gif )

Ensuite, il faudrait encore utiliser la force brute et recommencer pour chaque nombre jusqu'à 10.000.

— Ce que veut de toute évidence faire le script d'alfranz, mais je suis trop analphabète en la matière pour le lire ou dire s'il y a une faille dans ce code.

Citation (Phil J. Fry @ 30 Mar 2023, 23:48) *
La mienne tient en 16 instructions en Python3.

thumb.gif
Je n'ai pas été plus loin que de parcourir l'article de Wikipedia… (et j'en ai déjà oublié bien des bouts !)
Je puis au moins dire que dans la version anglaise, il y a aussi des scripts Python (et C comme ci-dessus ! tongue.gif )


--------------------
MacBook Pro 14’’ 2021, M1 Pro, 16 Go/1 To – macOS  12.6 “Monterey”  MacBook Pro 15’’ mi-2010 Core i5 2,53 GHz, 8 Go/SSD Samsung 860EVO 1 To – Mac OSX 10.6.8  Power Macintosh G3 beige de bureau, rev.1 @ 233MHz, 288 Mo/4Go – MacOS 9.1 — + carte PCI IDE/ATA Tempo 66 Acard 6260 avec HD interne Maxtor 80 Go + graveur interne CDRW/DVD LG GCC-4520B + tablette A4 Wacom UD-0608-A + LaCie ElectronBlueIV 19" + HP ScanJet 6100C   B-Box 3 + HP LaserJet 4000 N  
La recherche dans MacBidouille vous paraît obscure ? J'ai rédigé une proposition de FAQ. Le moteur logiciel a un peu changé depuis mais ça peut aider quand même.
Les corsaires mettent en berne…
Go to the top of the page
 
+Quote Post
Phil J. Fry
posté 31 Mar 2023, 12:30
Message #6


The Original Martian & DBCM
*****

Groupe : Modérateurs
Messages : 6 537
Inscrit : 25 May 2004
Lieu : sɹɐɯ ⅋ ʞɹoʎ ʍǝu ʍǝu ⅋ ǝssᴉns
Membre no 19 190



Je change le titre pour rameuter les experts de C++ ...


--------------------
MBP 16" Sonoma 14.3.1 MBA 13" Sonoma 14.3.1 MacBook Air 11" 10.9.5 MacBook 2Ghz 1Go X.6.4 blanc Mac Mini 1.25Ghz 1Go X.4.10 Spatule de 10,5 cm iPod shuffle 512 iPod mini 4GB iPod Nano 16GB
DBCM III Disciple du MSV Team BOINC Macbidouille
But I'm a creep, I'm a weirdo - What the hell am I doin here? - I don't belong here Radiohead
Il vaut mieux mobiliser son intelligence sur des conneries que mobiliser sa connerie sur des choses intelligentes - S'il n'y a pas de solution, c'est qu'il n'y a pas de problème - Devises Shadok
La connaissance, c'est savoir que la tomate est un fruit. La sagesse, c'est savoir qu'il ne faut pas la mettre dans une salade de fruit. B O'D
Go to the top of the page
 
+Quote Post
hubeert
posté 8 Apr 2023, 07:07
Message #7


Macbidouilleur de vermeil !
****

Groupe : Membres
Messages : 951
Inscrit : 19 May 2005
Lieu : Chateauneuf du pape
Membre no 39 495



bonjour;

Je ne connais pas le python mais le code suivant ' action script 3.0 est facilement adaptable je crois le "trace " d'action script correspond au "print" du python le reste ne sont que des boucles, j'ai priviliégié les boucles car la boucle while incluent des calculs supplémentaires ( à voir selon les langages)..
J'ai tenté aussi une approche par les nombres en base 2, sans succès. Ce code trouve les nombres Armstrong dit narcissique. Ce code a un défaut il compare la somme de cube ou de puissance dont le total est nettement supérieure à l'intervalle sur laquelle porte les recherches, par exemple 9999 des la première élévation à a la puissance 4, on a 94= 6561 de toute évidence au deuxième 9 on va être au dessus de 10 000, je n'ai pas cherché a résoudre le problème car il induit des comparaisons qui risquent d'alourdir le code voire sa célérité.( à voir)

une question cette recherche des nombres Armstrong est pédagogique ou a un utilité particulière?

Code
var s:i,nt// somme
var i:int
var j:int
var k:int
var n:int;
var l:int;
var ex:int // exposant
var compteur:int=0
        
                for(i=0;i<=9;i++){ // quatre boucles pour tester les 10 000 nombres
                 for(j=0;j<=9;j++){
                  for(k=0;k<=9;k++){
                   for(l=0;l<=9;l++){
                       n=compteur++;  // la variablle compteur qui affiche ces nombres
            if( compteur< 1000) { ex=3 } // on teste les nombres en dessous de 1000; en effet ceux ci seront representés par  3 chifres  et ces trois chiffres seront elevés au cube
            if( compteur > 999){ ex=4;}    // on teste les nombres en dessus de 1000; en effet ceux ci seront representés par 4  chifres  et ces 4 chiffres seront elevés a la puissance 4    
            s=Math.pow(i,ex)+Math.pow(j,ex)+Math.pow(k,ex)+Math.pow(l,ex); // On élève les trois ou les quatre chiffre au cube ou à la puissance 4 selon les conditions
            if (s==n && n>=100) trace (s + " est un nombre armstrong") // On compare les nombres  donnés par le compteur aux nombres donné par le calcul de la somme des puissances, si ce nombre est similaire nous avons un armstrong
                
            }}}}


et la sortie les nombres Armstrong pour 10 000

153 est un nombre armstrong
370 est un nombre armstrong
371 est un nombre armstrong
407 est un nombre armstrong
1634 est un nombre armstrong
8208 est un nombre armstrong
9474 est un nombre armstrong

en langage C

Code
#include <stdio.h>
#include <stdlib.h>
#include <math.h>

int main(int argc, const char * argv[]) {
    int s=0;// somme
    int i=0, j=0 ,k=0, n=0 , l=0,compteur=0;
    int ex=0; // exposant
  
            
                    for(i=0;i<=9;i++){ // quatre boucles pour tester les 10 000 nombres
                     for(j=0;j<=9;j++){
                      for(k=0;k<=9;k++){
                       for(l=0;l<=9;l++){
                           n=compteur++;  // la variablle compteur qui affiche ces nombres
                           if( compteur< 1000) { ex=3;} // on teste les nombres en dessous de 1000; en effet ceux ci seront representés par  3 chifres  et ces trois chiffres seront elevés au cube
                if( compteur > 999){ ex=4;}    // on teste les nombres en dessus de 1000; en effet ceux ci seront representés par 4  chifres  et ces 4 chiffres seront elevés a la puissance 4
                s =  pow(i,ex)+ pow(j,ex)+  pow(k,ex)+  pow(l,ex); // On élève les trois ou les quatre chiffre au cube ou à la puissance 4 selon les conditions
                           if (s==n && n>=100) printf ( " %d           est un nombre armstrong \n",s);// On compare les nombres  donnés par le compteur aux nombres donné par le calcul de la somme des puissances, si ce nombre est similaire nous avons un armstrong
                    
                }}}}
    return 0;
}


Ce message a été modifié par hubeert - 8 Apr 2023, 12:48.


--------------------
Musique techno avec MAO (Logic Pro)

des que quelqu'un a du pouvoir il croit détenir la vérité...
Des que quelqu'un a un clavier il A la la vérité.(Forcément)
Go to the top of the page
 
+Quote Post
Jaypee
posté 6 Jul 2023, 21:05
Message #8


Macbidouilleur d'Or !
*****

Groupe : Membres
Messages : 2 486
Inscrit : 29 Aug 2002
Membre no 3 340



Je sais que ça n'aide pas vraiment... je déterre un sujet et je change le langage...

En APL, on peut décoder un nombre en un vecteur de ses chiffres.
Code
      10 10 10 10 10⊤153
0 0 1 5 3


On peut prendre la puissance 3 d'un vecteur, ce qui produit le vecteur de la puissance 3 de chaque élément.
Code
      (10 10 10 10 10⊤153)*3
0 0 1 125 27


On peut sommer les éléments d'un vecteur par une réduction par l'addition :
Code
       +/(10 10 10 10 10⊤153)*3
153


On peut comparer ce résultat au nombre lui-même
Code
      153 = +/(10 10 10 10 10⊤153)*3
1


On peut transformer cette expression en fonction lambda (sans nom) en plaçant des accolades autour et en remplaçant l'argument par omega
Code
      {⍵ = +/(10 10 10 10 10⊤⍵)*3}
{⍵=+/(10 10 10 10 10⊤⍵)*3}


On peut la nommer: armstrong(int) -> bool
Code
      armstrong ← {⍵ = +/(10 10 10 10 10⊤⍵)*3}


On peut distribuer la fonction avec un opérateur "chaque" (symbolisé par des trémas), à chacun des arguments de droite
Code
       armstrong ¨ 1 2 3
1 0 0


On peut utiliser ce masque booléen pour filtrer un vecteur de même taille. Donc seul 1 est un nombre d'Armstrong dans le vecteur de 1 à 3
Code
       (armstrong ¨ 1 2 3)/1 2 3
1


On peut générer un vecteur d'indices avec l'opérateur iota:
Code
(armstrong ¨ ⍳3)/ ⍳3
1


On transforme l'expression en fonction:
Code
{(armstrong ¨ ⍳⍵)/ ⍳⍵}
{(armstrong¨⍳⍵)/⍳⍵}


Et finalement, l'appliquer jusqu'à la limite demandée:
Code
{(armstrong ¨ ⍳⍵)/ ⍳⍵} 10000
1 153 370 371 407


Note : Les nombres à 4 chiffres trouvés par le javascript ne sont pas des nombres d'Armstrong

J-P

Ce message a été modifié par Jaypee - 7 Jul 2023, 05:38.
Go to the top of the page
 
+Quote Post
hubeert
posté 10 Jul 2023, 06:07
Message #9


Macbidouilleur de vermeil !
****

Groupe : Membres
Messages : 951
Inscrit : 19 May 2005
Lieu : Chateauneuf du pape
Membre no 39 495



bonjour ; :

que veux tu dire par ta note : Note : Les nombres à 4 chiffres trouvés par le javascript ne sont pas des nombres d'Armstrong de quel javascript parles tu ?et de quel nombre ?

sinon 9474 = 94+44+ 74+44 . = 6561+ 256 + 2401 + 256 = 9474 ce qui correspond a la définition d'un Armstrong

un nombre égal à la somme de tous ses chiffres élevés à la puissance correspondante aux nombre de chiffre le composant ( ici 4)

Sinon ton code est sympa mais sans connaitre l'APL difficile de comprendre pour moi ; malgré les commentaires explicatif

Bonne journée a tout le monde.

Ce message a été modifié par hubeert - 10 Jul 2023, 06:24.


--------------------
Musique techno avec MAO (Logic Pro)

des que quelqu'un a du pouvoir il croit détenir la vérité...
Des que quelqu'un a un clavier il A la la vérité.(Forcément)
Go to the top of the page
 
+Quote Post
Laszlo Lebrun
posté 10 Jul 2023, 06:36
Message #10


Macbidouilleur d'Or !
*****

Groupe : Membres
Messages : 2 155
Inscrit : 1 Nov 2021
Membre no 214 848



Citation (Jaypee @ 6 Jul 2023, 22:05) *
...je déterre un sujet....

Pour en revenir au programme c++ d'origine:
Un programme c++ doit toujours inclure la définition des variables.
Si tu travaillais en octets signés, après 128 ça coince.


--------------------
"Les gens douteront toujours de la vérité sur Internet car l'erreur est constamment prêchée autour de nous" Johann Wolfgang von Goethe
MBP 15" 2014 Retina ( Win11 + Mojave), Macbook Air 2013 (en voyage), iMac 2015 27" Retina (Mojave + Win11), Macbook blanc 2008 (Mate), pour ne citer que les Macs.
Go to the top of the page
 
+Quote Post
Jaypee
posté 14 Jul 2023, 10:44
Message #11


Macbidouilleur d'Or !
*****

Groupe : Membres
Messages : 2 486
Inscrit : 29 Aug 2002
Membre no 3 340



Citation (hubeert @ 10 Jul 2023, 07:07) *
bonjour ; :

que veux tu dire par ta note : Note : Les nombres à 4 chiffres trouvés par le javascript ne sont pas des nombres d'Armstrong de quel javascript parles tu ?et de quel nombre ?

sinon 9474 = 94+44+ 74+44 . = 6561+ 256 + 2401 + 256 = 9474 ce qui correspond a la définition d'un Armstrong

un nombre égal à la somme de tous ses chiffres élevés à la puissance correspondante aux nombre de chiffre le composant ( ici 4)

Sinon ton code est sympa mais sans connaitre l'APL difficile de comprendre pour moi ; malgré les commentaires explicatif

Bonne journée a tout le monde.

Au temps pour moi, je n'avais vu que les exemples ne dépassant la puissance 3.

La meilleure façon de se faire une idée d'APL est le portail Try APL

Il y a des règles simples : on le lit strictement de droite à gauche, les opération arithmétiques sont celles sur le clavier des calculettes : + - x ÷
2 x 3 + 1, un plus trois égale 4, fois deux, égale 8.

En revanche, (2 x 3) + 1 égale 7 avec les parenthèses.

APL est un langage d'IBM, dont le premier portable le 5100, antérieur à l'Apple II et au PC, se programmait en APL, une version BASIC a été créée par la suite.

Bonne journée à toi également,
JP
PS: Pour te donner ( un peu ) raison, une version vraiment illisible mais qui fait le job jusqu'à 1 000 000 (testable sur Try APL)
Code
      {({⍵ = +/v*⍴v←10⊥⍣¯1⊢⍵} ¨ ⍳⍵)/⍳⍵} 1000000
1 2 3 4 5 6 7 8 9 153 370 371 407 1634 8208 9474 54748 92727 93084 548834

v est une variable locale qui est le vecteur des chiffres, dont la dimension, le nombre de chiffres est noté rho de v, et le vecteur est monté à la puissance rho de v : v*⍴v puis réduit par l'addition +/v*⍴v et comparé à l'argument ⍵:
⍵ = +/v*⍴v qui produit un résultat 0 ou 1 pour faux ou vrai.
Comment obtient-on v ? Iil existe une syntaxe très simple pour encoder un nombre à partir de ses chiffres: 10⊥chiffres, avec chiffres = (c1, c2, c3...), c'est sa réciproque notée ⍣¯1, un peu comme dans ƒ-1, qui est utilisée pour obtenir v : v←10⊥⍣¯1⊢, expression qu'on applique à l'argument initial ⍵ : v←10⊥⍣¯1⊢⍵. Au lieu d'être noté "chiffres", l'argument de cette expression est noté ⊢
Code
      10⊥1 2 3
123
      (10⊥⍣¯1⊢) 456
4 5 6


Ce message a été modifié par Jaypee - 15 Jul 2023, 08:37.
Go to the top of the page
 
+Quote Post
hubeert
posté 15 Jul 2023, 11:22
Message #12


Macbidouilleur de vermeil !
****

Groupe : Membres
Messages : 951
Inscrit : 19 May 2005
Lieu : Chateauneuf du pape
Membre no 39 495



coucou;

il n'y a pas de mal.

Oui je suis allé voir sur le lien qu'a donné Baron et je vais aller voir ton lien.

Le problème pour moi, c'est de comprendre la logique ( pas la logique, mais l'utilité pratique avec des exemples), deja savoir qu'on lit de droite a gauche sans priorité, je ne lavais pas vu rolleyes.gif .

Je vais regarder toutes tes indications et essayer de comprendre !!! c'est pas gagné lol.

Bon WK


--------------------
Musique techno avec MAO (Logic Pro)

des que quelqu'un a du pouvoir il croit détenir la vérité...
Des que quelqu'un a un clavier il A la la vérité.(Forcément)
Go to the top of the page
 
+Quote Post
Jaypee
posté 15 Jul 2023, 21:43
Message #13


Macbidouilleur d'Or !
*****

Groupe : Membres
Messages : 2 486
Inscrit : 29 Aug 2002
Membre no 3 340



Citation (hubeert @ 15 Jul 2023, 12:22) *
...
Le problème pour moi, c'est de comprendre la logique ( pas la logique, mais l'utilité pratique avec des exemples), deja savoir qu'on lit de droite a gauche sans priorité, je ne lavais pas vu rolleyes.gif .

J'ai créé un topic sur APL dans ce forum, y'a des exemples très divers pour montrer qu'APL pour résoudre les problèmes c'est un chouette couteau suisse, avec plein de lames, et même certaines dont on ne connait pas toujours l'utilité.
Ici la logique de très haut niveau est qu'on génère un vecteur booléen pour filtrer la liste des entiers de 1 à la limite qu'on donne. C'est une technique très courante en APL.
Pour construire le vecteur booléen on utilise un prédicat qui détermine si un entier est un nombre d'Armstrong ou pas, et on le mappe, ou on le distribue sur la suite des entiers de 1 à la limite qu'on donne.

Utiliser explicitement la distribution n'est pas très dans l'esprit APL, puisqu'il travaille naturellement avec des vecteurs.
@+JP
Go to the top of the page
 
+Quote Post
baron
posté 15 Jul 2023, 23:18
Message #14


Macbidouilleur d'Or !
*****

Groupe : Modérateurs
Messages : 19 315
Inscrit : 22 Jul 2004
Lieu : Louvain-la-Neuve (Gaule Gelbique)
Membre no 21 291



Citation (Jaypee @ 15 Jul 2023, 22:43) *
J'ai créé un topic sur APL dans ce forum, y'a des exemples très divers pour montrer qu'APL pour résoudre les problèmes c'est un chouette couteau suisse, avec plein de lames, et même certaines dont on ne connait pas toujours l'utilité.

C'est là : https://forum.macbidouille.com/index.php?sh...=419131&hl=

(Et pour les plus curieux, ça vaut la peine de parcourir toute l'œuvre de Jaypee sur ces forumsjap.gif )


--------------------
MacBook Pro 14’’ 2021, M1 Pro, 16 Go/1 To – macOS  12.6 “Monterey”  MacBook Pro 15’’ mi-2010 Core i5 2,53 GHz, 8 Go/SSD Samsung 860EVO 1 To – Mac OSX 10.6.8  Power Macintosh G3 beige de bureau, rev.1 @ 233MHz, 288 Mo/4Go – MacOS 9.1 — + carte PCI IDE/ATA Tempo 66 Acard 6260 avec HD interne Maxtor 80 Go + graveur interne CDRW/DVD LG GCC-4520B + tablette A4 Wacom UD-0608-A + LaCie ElectronBlueIV 19" + HP ScanJet 6100C   B-Box 3 + HP LaserJet 4000 N  
La recherche dans MacBidouille vous paraît obscure ? J'ai rédigé une proposition de FAQ. Le moteur logiciel a un peu changé depuis mais ça peut aider quand même.
Les corsaires mettent en berne…
Go to the top of the page
 
+Quote Post
Laszlo Lebrun
posté 16 Jul 2023, 03:11
Message #15


Macbidouilleur d'Or !
*****

Groupe : Membres
Messages : 2 155
Inscrit : 1 Nov 2021
Membre no 214 848



Citation (Jaypee @ 15 Jul 2023, 22:43) *
J'ai créé un topic sur APL dans ce forum, y'a des exemples très divers pour montrer qu'APL pour résoudre les problèmes c'est un chouette couteau suisse, avec plein de lames, et même certaines dont on ne connait pas toujours l'utilité.
Ici la logique de très haut niveau est qu'on génère un vecteur booléen pour filtrer la liste des entiers de 1 à la limite qu'on donne. C'est une technique très courante en APL.
Pour construire le vecteur booléen on utilise un prédicat qui détermine si un entier est un nombre d'Armstrong ou pas, et on le mappe, ou on le distribue sur la suite des entiers de 1 à la limite qu'on donne.
Utiliser explicitement la distribution n'est pas très dans l'esprit APL, puisqu'il travaille naturellement avec des vecteurs.


Comme disait De Gaulle: C'est du Volapük.


--------------------
"Les gens douteront toujours de la vérité sur Internet car l'erreur est constamment prêchée autour de nous" Johann Wolfgang von Goethe
MBP 15" 2014 Retina ( Win11 + Mojave), Macbook Air 2013 (en voyage), iMac 2015 27" Retina (Mojave + Win11), Macbook blanc 2008 (Mate), pour ne citer que les Macs.
Go to the top of the page
 
+Quote Post
Jaypee
posté 16 Jul 2023, 07:41
Message #16


Macbidouilleur d'Or !
*****

Groupe : Membres
Messages : 2 486
Inscrit : 29 Aug 2002
Membre no 3 340



Citation (baron @ 16 Jul 2023, 00:18) *
Citation (Jaypee @ 15 Jul 2023, 22:43) *
J'ai créé un topic sur APL dans ce forum, y'a des exemples très divers pour montrer qu'APL pour résoudre les problèmes c'est un chouette couteau suisse, avec plein de lames, et même certaines dont on ne connait pas toujours l'utilité.

C'est là : https://forum.macbidouille.com/index.php?sh...=419131&hl=

(Et pour les plus curieux, ça vaut la peine de parcourir toute l'œuvre de Jaypee sur ces forumsjap.gif )

Merci, mais ça me donne un peu le vertige...ça fait à peu près 20 ans, j'ai commencé ici, avec ces fameux 15 min de gloire qu'Andy Warhol promet à tout un chacun :

Au début de MacOS, chaque mise à jour pouvait casser pas mal de chose. Y compris les premières versions d'Xcode ou de l'installateur de logiciel. Or 20 ans en arrière, on est en pleine révolution de l'ADSL, et sur macOS beaucoup de gens utilisaient pour cet accès Internet le modem USB de France Télécom, la Raie Manta verte. Juste avant la sortie de la version Jaguar, catastrophe ! On découvre que le pilote du modem ne s'installe plus sous Jaguar, donc il fallait choisir entre être à jour et garder l'accès ADSL.
Pour cette mise à jour Apple a commencé à s'intéresser de manière plus précise au numéro de version du logiciel pour pouvoir ensuite tester les compatibilités. Or dans la version précédente de l'OS, les outils comme Xcode notait cette version dans deux fichiers différents (sans doute un .h et un .txt, pour la compilation, puis pour le packaging). Or un bug d'Xcode faisait que les deux fichiers pouvaient ne pas être d'accord. Mais ce n'était pas détecté par l'installateur de l'ancienne version qui ne les comparait pas.
Arrive Jaguar, qui veut faire bien les choses et qui se met à comparer les deux fichiers, et comme l'installateur du pilote du modem avait été créé avec l'ancien Xcode, il avait cette incohérence, que Jaguar maintenant détectait.
Pour une raison dont je ne me souviens plus, je crée un produit vide (pas de code, juste les éléments nécessaires à créer un kit), et je l'installe sur Jaguar, et boum ! exactement le même message que pour le pilote ADSL. De là j'ai pu corriger les deux fichiers textes inclus dans le kit ADSL, le re-packager et pendant quelques heures j'ai été le seul utilisateur de Mac au monde à pouvoir surfer l'ADSL sur Jaguar via l'USB!
J'ai essayé de diffuser l'info partout, jusqu'en Australie, chaque fois que je tombais sur un forum où les macusers confiaient leurs soucis avec Jaguar et l'ADSL. Et j'ai reçu énormément de témoignages de sympathie.

Voilà comment j'ai débuté ici.
JP


Citation (Laszlo Lebrun @ 16 Jul 2023, 04:11) *
Comme disait De Gaulle: C'est du Volapük.

Je verrais ça plutôt comme du latin, du grec ou de l'hébreu. Les fois où ça sert, on est content d'avoir fait l'effort d'apprendre.

JP
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 utilisateur(s) sur ce sujet (1 invité(s) et 0 utilisateur(s) anonyme(s))
0 membre(s) :

 



Nous sommes le : 29th March 2024 - 12:04