Deutsch   English   Français   Italiano  
<672fac55$0$16825$426a34cc@news.free.fr>

View for Bookmarking (what is this?)
Look up another Usenet article

Path: ...!npeer.as286.net!npeer-ng0.as286.net!weretis.net!feeder8.news.weretis.net!proxad.net!feeder1-2.proxad.net!cleanfeed4-a.proxad.net!nnrp6-1.free.fr!not-for-mail
Date: Sat, 9 Nov 2024 19:39:17 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: =?UTF-8?Q?Re=3A_Le_calcul_de_la_racine_carr=C3=A9=2E=2E=2E_pour_des?=
 =?UTF-8?Q?_nuls_=3A=29?=
Newsgroups: fr.sci.maths
References: <672bcce0$0$28508$426a74cc@news.free.fr>
 <vggpas$b9p$1@cabale.usenet-fr.net> <vggrin$29gqi$1@dont-email.me>
 <672ce7d7$0$12934$426a74cc@news.free.fr> <vgirti$2nvn9$1@dont-email.me>
 <vgkk1k$2i8l$1@cabale.usenet-fr.net> <vgko9b$35kqs$1@dont-email.me>
 <672ea1f1$0$16817$426a34cc@news.free.fr> <vgngar$3oc57$2@dont-email.me>
 <vgnium$197m$1@cabale.usenet-fr.net> <vgnkt6$3ph8l$1@dont-email.me>
 <672f8598$0$11455$426a74cc@news.free.fr>
Content-Language: fr
From: Michel Talon <talon@niobe.lpthe.jussieu.fr>
In-Reply-To: <672f8598$0$11455$426a74cc@news.free.fr>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Lines: 110
Message-ID: <672fac55$0$16825$426a34cc@news.free.fr>
Organization: Guest of ProXad - France
NNTP-Posting-Date: 09 Nov 2024 19:39:17 CET
NNTP-Posting-Host: 88.181.102.49
X-Trace: 1731177557 news-4.free.fr 16825 88.181.102.49:23950
X-Complaints-To: abuse@proxad.net
Bytes: 5001

Le 09/11/2024 à 16:53, Samuel Devulder a écrit :
> Le 09/11/2024 à 13:34, efji a écrit :
>> Ce n'est pas ce que je dis, j'ai juste dit que ça choque mes habitudes 
>> de vieux, mais pourquoi pas si on y gagne quelque chose. Mais en fait 
>> je ne vois pas ce qu'on y gagne 🙂
> 
> Une absence de typage rend les langages bien plus simples à l'usage. Il 
> s'agit de langages de script pas de programmation. On écrit pas une 
> application avec ca mais des maquettes pour tester rapidement un truc.
> 
> Lua va assez loin dans la réduction du nombre de types de données puis 
> que tableaux et dictionnaires sont confondus, et à l'usage c'est très 
> agréable je dois bien avouer.
> 
> sam.

Et bien, pour passer de langages récents à un langage très ancien voici 
une solution avec Common Lisp  (en fait sbcl)  qui lui aussi a 
l'avantage d'un programme non typé (sauf si on déclare le type des 
variables) avec gestion automatique de la mémoire, possibilité de 
programmer pas à pas à la console, comme python ou lua, mais en outre 
est compilé automatiquement (avec sbcl)
ce qui donne une vitesse d'exécution raisonnable, contrairement à python 
par exemple.
Voici le programme:

(defun print-bizarre-squares (N str)
   (let ((k 1) (l 10))
     (dotimes (i N 'done)
       (let ((j (* i i)))
	     (when (<= l j)
	       (incf k)
	       (setq l (* 10 l)))
	    ;; Here 10^(k-1) <= j < 10^k, j has k digits
	    (if (evenp k) (test-if-bizarre i j  (expt 10 (/ k 2)) str))))))

(defun test-if-bizarre (i j l str)
   (multiple-value-bind (a b) (floor (/ j l))
     (if (= i (+ a (* l b))) (format str  " ~7d      ~d ~%" i j))))

(defparameter N (expt 10 7)) ; 10^7
(with-open-file (str "list-of-bizarre" :direction :output :if-exists 
:supersede)
   (time (print-bizarre-squares N str)))

Le résultat est écrit dans "list-of-bizarre"  et le temps d'éxécution 
est imprimé.
Sur ma machine  (2993.03 BogoMIPS ) assez lente, j'obtiens:

Evaluation took:
   7.894 seconds of real time
   7.891697 seconds of total run time (7.887671 user, 0.004026 system)
   [ Run times consist of 0.055 seconds GC time, and 7.837 seconds 
non-GC time. ]
   99.97% CPU
   11,815,133,039 processor cycles
   486,145,312 bytes consed

Finalement le résultat obtenu est:
        9      81
       45      2025
       55      3025
       99      9801
      703      494209
      999      998001
     4950      24502500
     5050      25502500
     7272      52881984
     7777      60481729
     9999      99980001
    77778      6049417284
    82656      6832014336
    95121      9048004641
    99999      9999800001
   318682      101558217124
   329967      108878221089
   351352      123448227904
   356643      127194229449
   390313      152344237969
   461539      213018248521
   466830      217930248900
   499500      249500250000
   500500      250500250000
   533170      284270248900
   538461      289940248521
   609687      371718237969
   643357      413908229449
   648648      420744227904
   670033      448944221089
   681318      464194217124
   791505      626480165025
   812890      660790152100
   818181      669420148761
   851851      725650126201
   857143      734694122449
   961038      923594037444
   994708      989444005264
   999999      999998000001
  4444444      19753082469136
  4927941      24284602499481
  5072059      25725782499481
  5555556      30864202469136
  9372385      87841600588225
  9999999      99999980000001



-- 
Michel Talon