Re: 0!=1 ?

Liste des GroupesRevenir à fs maths 
Sujet : Re: 0!=1 ?
De : talon (at) *nospam* niobe.lpthe.jussieu.fr (Michel Talon)
Groupes : fr.sci.maths
Date : 16. Mar 2023, 01:49:46
Autres entêtes
Organisation : Guest of ProXad - France
Message-ID : <6412599a$0$3011$426a74cc@news.free.fr>
References : 1 2 3 4 5 6 7 8
User-Agent : Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.8.0
Le 15/03/2023 à 19:06, Dominique a écrit :
 Et je résous mon énigme arithmétique du premier coup 😄
En fait le programme python qui fait la même chose que le programme maxima est (avec l'ajout du timer):
from math import factorial
import time
start_time = time.time()
result=False
cpt=1
while not result:
     nb=str(cpt)
     nb1=[int(x) for x in nb]
     nb2=0
     for i in nb1:
         nb2+=factorial(i)
     if nb2==cpt:
         print(cpt)
     if cpt==100000:
         result=True
     cpt += 1
print("--- %s seconds ---" % (time.time() - start_time))
Ce qui donne:
 >>> 1
2
145
40585
--- 0.3823738098144531 seconds ---
Il est donc *beaucoup* plus rapide que le programme maxima. Ce qui facilite beaucoup les choses c'est la possibilité de convertir le nombre en string et d'itérer sur les chiffres nb1=[int(x) for x in nb]
Je découvre juste qu'il existe une possibilité similaire avec maxima:
(%i1) subst("+","[", map("!",map(parse_string,sexplode(string(40585)))));
(%o1)                                40585
Ici string(n) convertit n en string, sexplode crée une liste des chiffres, parse_string convertit chaque chiffre en nombre, et on ajoute la factorielle. On obtient une liste de factorielles qu'on convertit en somme par le subst.  C'est donc exactement ce que tu fais. Le programme équivalent au tien est donc:
(%i2) for n from 1 thru 100000 do if (n=subst("+","[", map("!",map(parse_string,sexplode(string(n)))))) then print(n);
1
2
145
40585
(%o2)                                done
(%i3) time(%);
(%o3)                               [5.116]
Il est clairement toujours beaucoup plus lent que le programme python.
--
Michel Talon

Date Sujet#  Auteur
15 Mar 23 * 0!=1 ?33Dominique
15 Mar 23 +- Re: 0!=1 ?1Dominique
15 Mar 23 +* Re: 0!=1 ?9Michel Talon
15 Mar 23 i+* Re: 0!=1 ?7robby
15 Mar 23 ii`* Re: 0!=1 ?6Olivier Miakinen
15 Mar 23 ii +* Re: 0!=1 ?4robby
15 Mar 23 ii i`* Re: 0!=1 ?3Olivier Miakinen
16 Mar 23 ii i `* Re: 0!=1 ?2robby
16 Mar 23 ii i  `- Re: 0!=1 ?1Olivier Miakinen
16 Mar 23 ii `- Re: 0!=1 ?1ast
15 Mar 23 i`- Re: 0!=1 ?1Olivier Miakinen
15 Mar 23 +* Re: 0!=1 ?2Olivier Miakinen
15 Mar 23 i`- Re: 0!=1 ?1Olivier Miakinen
15 Mar 23 +* Re: 0!=1 ?3Python
15 Mar 23 i+- Re: 0!=1 ?1Michel Talon
16 Mar 23 i`- Re: 0!=1 ?1robby
15 Mar 23 +* Re: 0!=1 ?15Dominique
15 Mar 23 i`* Re: 0!=1 ?14Olivier Miakinen
15 Mar 23 i `* Re: 0!=1 ?13Dominique
15 Mar 23 i  `* Re: 0!=1 ?12Olivier Miakinen
15 Mar 23 i   +* Re: 0!=1 ?9Dominique
15 Mar 23 i   i+* Re: 0!=1 ?3Dominique
15 Mar 23 i   ii`* Re: 0!=1 ?2Dominique
16 Mar 23 i   ii `- Re: 0!=1 ?1Michel Talon
15 Mar 23 i   i`* Re: 0!=1 ?5Olivier Miakinen
15 Mar 23 i   i `* Re: 0!=1 ?4Dominique
15 Mar 23 i   i  +* Re: 0!=1 ?2Olivier Miakinen
15 Mar 23 i   i  i`- Re: 0!=1 ?1Dominique
16 Mar 23 i   i  `- Re: 0!=1 ?1robby
16 Mar 23 i   +- Re: 0!=1 ?1Michel Talon
16 Mar 23 i   `- Re: 0!=1 ?1robby
16 Mar 23 `* Re: 0!=1 ?2Michel Talon
16 Mar 23  `- Re: 0!=1 ?1Dominique

Haut de la page

Les messages affichés proviennent d'usenet.

NewsPortal