Discussion:
Curiosité
(trop ancien pour répondre)
Dominique
2024-06-16 19:11:17 UTC
Permalink
Bonsoir,

Je lis Tangente n°217. En page 26, est posée une petite énigme :
Supposons que nous ayons un nombre inconnu d'objets. Comptés par 3, il
en reste 2, par 5, il en reste 3 et par 7, il en reste 2.

En 5 lignes de Python, le nombre 23 tombe rapidement :

z=0
for x in range (1000):
if x%3==2 and x%5==3 and x %7==2:
print (x, x-z)
z=x

Soit. Je vais alors au-delà de 100 itérations et je pousse à 1000,
j'obtiens 10 résultats :

23 23
128 105
233 105
338 105
443 105
548 105
653 105
758 105
863 105
968 105

J'observe que la différence entre 2 résultats est toujours de 105.

Je fais varier le modulo :

z=0
for x in range (1000):
if x%3==1 and x%5==2 and x %7==2:
print (x, x-z)
z=x

L'écart est toujours de 105 :

37 37
142 105
247 105
352 105
457 105
562 105
667 105
772 105
877 105
982 105

Apparemment, quel que soit le modulo retenu, l'écart entre deux
résultats reste égal à 105. Il reste le même si je fais 1000 ou 100 000
itérations. Idem si je débute mes itérations avec un nombre négatif...

Qu'est-ce qui peut expliquer cette curiosité ? Je confesse ne pas voir
de solution.

Je vous remercie et vous souhaite une belle soirée,
--
Dominique
Esto quod es
efji
2024-06-16 19:17:35 UTC
Permalink
Post by Dominique
Bonsoir,
Supposons que nous ayons un nombre inconnu d'objets. Comptés par 3, il
en reste 2, par 5, il en reste 3 et par 7, il en reste 2.
z=0
        print (x, x-z)
        z=x
Soit. Je vais alors au-delà de 100 itérations et je pousse à 1000,
23 23
128 105
233 105
338 105
443 105
548 105
653 105
758 105
863 105
968 105
J'observe que la différence entre 2 résultats est toujours de 105.
z=0
        print (x, x-z)
        z=x
37 37
142 105
247 105
352 105
457 105
562 105
667 105
772 105
877 105
982 105
Apparemment, quel que soit le modulo retenu, l'écart entre deux
résultats reste égal à 105. Il reste le même si je fais 1000 ou 100 000
itérations. Idem si je débute mes itérations avec un nombre négatif...
Qu'est-ce qui peut expliquer cette curiosité ? Je confesse ne pas voir
de solution.
Je vous remercie et vous souhaite une belle soirée,
105 = 3x5x7

3, 5, 7 sont premiers, donc premiers entre eux.

Si x est solution de x%3=a, x%5=b, x%7=c, alors bien sûr tous les
x+105k, quel que soit k entier (positif ou négatif), sont aussi
solutions car 105k%3 = 105k%5 = 105k%7 = 0.
--
F.J.
SS.Innocents
2024-06-16 19:44:12 UTC
Permalink
Post by Dominique
Bonsoir,
Supposons que nous ayons un nombre inconnu d'objets. Comptés par 3, il
en reste 2, par 5, il en reste 3 et par 7, il en reste 2.
z=0
print (x, x-z)
z=x
Soit. Je vais alors au-delà de 100 itérations et je pousse à 1000,
23 23
128 105
233 105
338 105
443 105
548 105
653 105
758 105
863 105
968 105
J'observe que la différence entre 2 résultats est toujours de 105.
z=0
print (x, x-z)
z=x
37 37
142 105
247 105
352 105
457 105
562 105
667 105
772 105
877 105
982 105
Apparemment, quel que soit le modulo retenu, l'écart entre deux
résultats reste égal à 105. Il reste le même si je fais 1000 ou 100 000
itérations. Idem si je débute mes itérations avec un nombre négatif...
Qu'est-ce qui peut expliquer cette curiosité ? Je confesse ne pas voir
de solution.
Je vous remercie et vous souhaite une belle soirée,
c'est comme la cartomancie je me demande comment c'est possible qu'un
mélange de carte fait par un ordinateur a quasi visé dans le mille a
quasi 95%, peut être faut il voir du coté de la loi des causes et effets.

pas de suivi...
--
--
\ / Croire c'est le contraire de savoir,
-- o -- si j'y crois, je ne sais pas,
/ \ si je sais, pas la peine d'y croire.
--> Je crois pas, car je sais que c'est faux malgré tout...
Ma Fiche MSV :
<https://www.monsitevoyance.com/voyance-avec-innocents-11193-voyant.html>
SS.Innocents
2024-06-16 20:14:09 UTC
Permalink
Post by SS.Innocents
Post by Dominique
Bonsoir,
Supposons que nous ayons un nombre inconnu d'objets. Comptés par 3, il
en reste 2, par 5, il en reste 3 et par 7, il en reste 2.
z=0
print (x, x-z)
z=x
Soit. Je vais alors au-delà de 100 itérations et je pousse à 1000,
23 23
128 105
233 105
338 105
443 105
548 105
653 105
758 105
863 105
968 105
J'observe que la différence entre 2 résultats est toujours de 105.
z=0
print (x, x-z)
z=x
37 37
142 105
247 105
352 105
457 105
562 105
667 105
772 105
877 105
982 105
Apparemment, quel que soit le modulo retenu, l'écart entre deux
résultats reste égal à 105. Il reste le même si je fais 1000 ou 100 000
itérations. Idem si je débute mes itérations avec un nombre négatif...
Qu'est-ce qui peut expliquer cette curiosité ? Je confesse ne pas voir
de solution.
Je vous remercie et vous souhaite une belle soirée,
c'est comme la cartomancie je me demande comment c'est possible qu'un
mélange de carte fait par un ordinateur a quasi visé dans le mille a
quasi 95%, peut être faut il voir du coté de la loi des causes et effets.
pas de suivi...
--
Un signe peut être j'ai publié ce texte à 21h44m12s

si on part du centre donc de 44 on a un effet miroir.

214 412
--
--
\ / Croire c'est le contraire de savoir,
-- o -- si j'y crois, je ne sais pas,
/ \ si je sais, pas la peine d'y croire.
--> Je crois pas, car je sais que c'est faux malgré tout...
Ma Fiche MSV :
<https://www.monsitevoyance.com/voyance-avec-innocents-11193-voyant.html>
Olivier Miakinen
2024-06-16 19:48:17 UTC
Permalink
Bonjour,
Post by Dominique
Supposons que nous ayons un nombre inconnu d'objets. Comptés par 3, il
en reste 2, par 5, il en reste 3 et par 7, il en reste 2.
[...]
J'observe que la différence entre 2 résultats est toujours de 105.
[...]
Pour en savoir un peu plus sur cette curiosité, le mot-clé à chercher sur la
toile est « théorème des restes chinois ».

Voir par exemple :
<https://fr.wikipedia.org/wiki/Th%C3%A9or%C3%A8me_des_restes_chinois>.

Cordialement,
--
Olivier Miakinen
SS.Innocents
2024-06-16 20:01:20 UTC
Permalink
Post by Olivier Miakinen
Bonjour,
Post by Dominique
Supposons que nous ayons un nombre inconnu d'objets. Comptés par 3, il
en reste 2, par 5, il en reste 3 et par 7, il en reste 2.
[...]
J'observe que la différence entre 2 résultats est toujours de 105.
[...]
Pour en savoir un peu plus sur cette curiosité, le mot-clé à chercher sur la
toile est « théorème des restes chinois ».
<https://fr.wikipedia.org/wiki/Th%C3%A9or%C3%A8me_des_restes_chinois>.
Cordialement,
Peut être en demandant à Chat GPT aussi, il pourrait peut être donner des
informations sur cette question...
--
--
\ / Croire c'est le contraire de savoir,
-- o -- si j'y crois, je ne sais pas,
/ \ si je sais, pas la peine d'y croire.
--> Je crois pas, car je sais que c'est faux malgré tout...
Ma Fiche MSV :
<https://www.monsitevoyance.com/voyance-avec-innocents-11193-voyant.html>
SS.Innocents
2024-06-16 20:12:03 UTC
Permalink
Post by SS.Innocents
Post by Olivier Miakinen
Bonjour,
Post by Dominique
Supposons que nous ayons un nombre inconnu d'objets. Comptés par 3, il
en reste 2, par 5, il en reste 3 et par 7, il en reste 2.
[...]
J'observe que la différence entre 2 résultats est toujours de 105.
[...]
Pour en savoir un peu plus sur cette curiosité, le mot-clé à chercher sur la
toile est « théorème des restes chinois ».
<https://fr.wikipedia.org/wiki/Th%C3%A9or%C3%A8me_des_restes_chinois>.
Cordialement,
Peut être en demandant à Chat GPT aussi, il pourrait peut être donner des
informations sur cette question...
--
Eric H : Qu'as tu a dire de : théorème des restes chinois ???

ChatGPT
Le théorème des restes chinois (TRC) est un résultat fondamental en
théorie des nombres et en algèbre, particulièrement utile pour résoudre
des systèmes de congruences linéaires. Énoncé pour la première fois dans
un texte mathématique chinois ancien, il permet de trouver une solution
commune à un système de congruences lorsque les moduli sont des entiers
positifs coprimaires deux à deux. Voici une description détaillée du
théorème et de ses applications :

voir la suite :

<https://chatgpt.com/share/5536e094-7210-4a0f-92ba-c75ff28256d7>
--
--
\ / Croire c'est le contraire de savoir,
-- o -- si j'y crois, je ne sais pas,
/ \ si je sais, pas la peine d'y croire.
--> Je crois pas, car je sais que c'est faux malgré tout...
Ma Fiche MSV :
<https://www.monsitevoyance.com/voyance-avec-innocents-11193-voyant.html>
Olivier Miakinen
2024-06-16 21:04:37 UTC
Permalink
Post by Olivier Miakinen
Post by Dominique
Supposons que nous ayons un nombre inconnu d'objets. Comptés par 3, il
en reste 2, par 5, il en reste 3 et par 7, il en reste 2.
<https://fr.wikipedia.org/wiki/Th%C3%A9or%C3%A8me_des_restes_chinois>.
Oh, je vois que le premier exemple sur cette page est exactement celui qui
est posé dans ton exemplaire de Tangente, et que ce problème remonte à
l'année 1247 :

<cit.>
Soient des objets en nombre inconnu. Si on les range par 3 il en reste 2. Si on
les range par 5, il en reste 3 et si on les range par 7, il en reste 2. Combien
a-t-on d'objets ?
</cit.
--
Olivier Miakinen
Richard Hachel
2024-06-23 14:06:05 UTC
Permalink
Post by Olivier Miakinen
Oh, je vois que le premier exemple sur cette page est exactement celui qui
est posé dans ton exemplaire de Tangente, et que ce problème remonte à
Meuh ils avaient pas inventé l'imprimerie, ce n'est que 245 ans plus
tard que Gutenberg, a découvert un système basé sur les petites pièces
amovibles.

Encore que je suis absolument certains qu'il existait déjà des
systèmes ingénieux d'imprimerie dès l'antiquité (on savait faire des
sceaux, et il serait étonnant que personne n'ait pensé à faire des
imprimés fixes pour des tâches répétitives, des enluminures, etc...).

Gutenberg n'a fait que perfectionner le système pour imprimer au jour le
jour.

C'était un rigolo.

Un sale con.

Jean-Pierre Python dirait : un sale type.

LOL.

Nan, je déconne...
Post by Olivier Miakinen
Hachel, on va te faire la peau.
Mais je déconnais, putain...

R.H.

R.H.
efji
2024-06-23 15:18:31 UTC
Permalink
Post by Richard Hachel
Post by Olivier Miakinen
Oh, je vois que le premier exemple sur cette page est exactement celui qui
est posé dans ton exemplaire de Tangente, et que ce problème remonte à
Meuh ils avaient pas inventé l'imprimerie, ce n'est que 245 ans plus
tard que Gutenberg, a découvert un système basé sur les petites pièces
amovibles.
Et bien sûr avant l'imprimerie personne n'écrivait de livres et personne
ne faisait des maths. Mais quel charlot... Chaque jour il en rajoute une
couche :)
--
F.J.
Richard Hachel
2024-06-23 21:03:03 UTC
Permalink
Post by efji
Post by Richard Hachel
Post by Olivier Miakinen
Oh, je vois que le premier exemple sur cette page est exactement celui qui
est posé dans ton exemplaire de Tangente, et que ce problème remonte à
Meuh ils avaient pas inventé l'imprimerie, ce n'est que 245 ans plus
tard que Gutenberg, a découvert un système basé sur les petites pièces
amovibles.
Et bien sûr avant l'imprimerie personne n'écrivait de livres et personne
ne faisait des maths. Mais quel charlot... Chaque jour il en rajoute une
couche :)
Meuh t'euh qu'un bouffon, hé, efgi!

Quel rigolo, celui-là...

Et il se fait passer pour l'astrophysicien qui a découvert un cratère
lunaire.

Faut arrêter là...

R.H.
Dominique
2024-06-17 01:43:31 UTC
Permalink
Post by Olivier Miakinen
Pour en savoir un peu plus sur cette curiosité, le mot-clé à chercher sur la
toile est « théorème des restes chinois ».
<https://fr.wikipedia.org/wiki/Th%C3%A9or%C3%A8me_des_restes_chinois>.
Je te remercie pour ce lien très intéressant et ce théorème que je ne
connaissais pas.

Tangente, pour répondre à ton message de 23 h 04, dit bien que l'énoncé
de l'énigme est d'origine chinoise et ancien.

Belle journée à toi,
--
Dominique
Esto quod es
JC_Lavau
2024-06-16 19:50:42 UTC
Permalink
Post by Dominique
Bonsoir,
Supposons que nous ayons un nombre inconnu d'objets. Comptés par 3, il
en reste 2, par 5, il en reste 3 et par 7, il en reste 2.
z=0
print (x, x-z)
z=x
Soit. Je vais alors au-delà de 100 itérations et je pousse à 1000,
23 23
128 105
233 105
338 105
443 105
548 105
653 105
758 105
863 105
968 105
J'observe que la différence entre 2 résultats est toujours de 105.
z=0
print (x, x-z)
z=x
37 37
142 105
247 105
352 105
457 105
562 105
667 105
772 105
877 105
982 105
Apparemment, quel que soit le modulo retenu, l'écart entre deux
résultats reste égal à 105. Il reste le même si je fais 1000 ou 100 000
itérations. Idem si je débute mes itérations avec un nombre négatif...
Qu'est-ce qui peut expliquer cette curiosité ? Je confesse ne pas voir
de solution.
Je vous remercie et vous souhaite une belle soirée,
3 x 5 x 7 = 105.
--
La science diffère de tous les autres modes de transmission
des connaissances par une croyance irrévérencieuse : nous CROYONS que
les "experts" sont faillibles, que les traditions peuvent charrier toutes
sortes de fables et d'erreurs, et qu'il faut vérifier, avec des
expériences soigneuses.
Dominique
2024-06-17 01:37:44 UTC
Permalink
Post by Dominique
Bonsoir,
Supposons que nous ayons un nombre inconnu d'objets. Comptés par 3, il
en reste 2, par 5, il en reste 3 et par 7, il en reste 2.
...

Je vous remercie pour vos explications. En me couchant hier soir, j'ai
remarqué que 3*5*7=105. Je teste ce matin avec d'autres paramètres et la
différence entre deux résultats est toujours le produit des 3 diviseurs.

La réponse d'efji : 105k%3 = 105k%5 = 105k%7 = 0 trouve tout son sens.

Belle journée à vous tous,
--
Dominique
Esto quod es
Olivier Miakinen
2024-06-17 10:42:51 UTC
Permalink
[...] Je teste ce matin avec d'autres paramètres et la
différence entre deux résultats est toujours le produit des 3 diviseurs.
Note que c'est vrai lorsque les diviseurs sont premiers entre eux (ce qui
est le cas avec les trois nombres premiers 3, 5 et 7) mais tu peux faire
des tests avec d'autres diviseurs pour voir ce que ça donne. Par exemple
avec 6, 10 et 14, ou avec 15, 21 et 35.
--
Olivier Miakinen
Dominique
2024-06-18 03:52:55 UTC
Permalink
Post by Olivier Miakinen
Note que c'est vrai lorsque les diviseurs sont premiers entre eux (ce qui
est le cas avec les trois nombres premiers 3, 5 et 7) mais tu peux faire
des tests avec d'autres diviseurs pour voir ce que ça donne. Par exemple
avec 6, 10 et 14, ou avec 15, 21 et 35.
Il n'y a pus de résultat, même avec 100 000 itérations... Pourquoi
est-ce que ça ne marche plus lorsque les diviseurs ne sont plus premiers
entre eux ?

Merci pour ton éclairage toujours bienveillant,
--
Dominique
Esto quod es
efji
2024-06-18 07:49:00 UTC
Permalink
Post by Dominique
Post by Olivier Miakinen
Note que c'est vrai lorsque les diviseurs sont premiers entre eux (ce qui
est le cas avec les trois nombres premiers 3, 5 et 7) mais tu peux faire
des tests avec d'autres diviseurs pour voir ce que ça donne. Par exemple
avec 6, 10 et 14, ou avec 15, 21 et 35.
Il n'y a pus de résultat, même avec 100 000 itérations... Pourquoi
est-ce que ça ne marche plus lorsque les diviseurs ne sont plus premiers
entre eux ?
Merci pour ton éclairage toujours bienveillant,
Ca dépend des données, mais si il existe une solution, alors il y en a
une infinité en rajoutant kp, pour k entier quelconque et p=ppcm des
trois nombres.

Par exemple pour 6,10,14 le ppcm est 210.
210%6 = 210%10 = 210%14 = 0
--
F.J.
efji
2024-06-18 15:52:56 UTC
Permalink
Post by efji
Post by Dominique
Post by Olivier Miakinen
Note que c'est vrai lorsque les diviseurs sont premiers entre eux (ce qui
est le cas avec les trois nombres premiers 3, 5 et 7) mais tu peux faire
des tests avec d'autres diviseurs pour voir ce que ça donne. Par exemple
avec 6, 10 et 14, ou avec 15, 21 et 35.
Il n'y a pus de résultat, même avec 100 000 itérations... Pourquoi
est-ce que ça ne marche plus lorsque les diviseurs ne sont plus
premiers entre eux ?
Merci pour ton éclairage toujours bienveillant,
Ca dépend des données, mais si il existe une solution, alors il y en a
une infinité en rajoutant kp, pour k entier quelconque et p=ppcm des
trois nombres.
Par exemple pour 6,10,14 le ppcm est 210.
210%6 = 210%10 = 210%14 = 0
Et oui (esprit d'escalier pour un truc qui me semblait évident mais
qu'il vaut mieux préciser) :

Pour un tel problème, comme une solution particulière en entraîne une
infinités d'autres séparées de p, il est totalement inutile de faire
tourner le programme jusqu'à 100000...

de 1 à p suffira.
--
F.J.
Dominique
2024-06-19 07:45:06 UTC
Permalink
Post by efji
Pour un tel problème, comme une solution particulière en entraîne une
infinités d'autres séparées de p, il est totalement inutile de faire
tourner le programme jusqu'à 100000...
de 1 à p suffira.
Merci pour ton éclairage. Tu as raison aussi sur le nombre d'itérations.

Cela dit, la rapidité de calcul avec Python est telle qu'un grand nombre
d'itérations donne un résulta presque instantané. L'optimisation du code
devient accessoire 🤔
--
Dominique
Esto quod es
efji
2024-06-19 11:05:44 UTC
Permalink
Post by Dominique
Cela dit, la rapidité de calcul avec Python est telle qu'un grand nombre
d'itérations donne un résulta presque instantané. L'optimisation du code
devient accessoire 🤔
:)
Python est le langage le moins rapide qui existe, mais en effet pour ce
genre de chose ça ne se voit pas.
--
F.J.
Michel Talon
2024-06-19 12:45:34 UTC
Permalink
Post by efji
Post by Dominique
Cela dit, la rapidité de calcul avec Python est telle qu'un grand
nombre d'itérations donne un résulta presque instantané.
L'optimisation du code devient accessoire 🤔
:)
Python est le langage le moins rapide qui existe, mais en effet pour ce
genre de chose ça ne se voit pas.
Un petit essai que j'avais fait pour comparer les temps d'exécution de
quelques langages, en calculant un grand nombre de factorielles. C'est
en anglais, mais Google peut le traduire. le résultat est que python
est au moins 100 fois plus lent
que ce que produit lisp sbcl ou bien sûr, C, en fait sbcl et C donnent
une vitesse équivalente.

A small comparison of execution speed of several languages on the same
job, computing a bunch of factorials, and the same machine. The same
computations are done in each case, but sometimes the factorial is
programmed in tail recursive way. The last factorial is printed to
check that all programs give the same answer. This test is obviously
not a benchmark of general use, but it exercises the arithmetic and
logical units of the processor. There are no floating point
computations, and i think the computation is hold in the cache, so
memory accesses are not dominant like in large floating computations.

Here are the programs:

Scheme: tested with Racket and Chicken

#lang racket <---- remove that for chicken
(define (myfact n)
(cond ((< n 0) 0)
((= n 1) 1)
(else (* n (myfact (- n 1))))))
(time
(let ((q 0))
(do ((i 1 (+ 1 i)))
((> i 20000000)(print q))
(set! q (myfact (floor (/ i 1000000)))))))

The tail recursive program:

#lang racket
(define (myfact n [acc 1]) <--- This is racket syntax for optional.
(if (<= n 1)
acc
(myfact (- n 1) (* acc n))))
(time
(let ((q 0))
(do ((i 1 (+ 1 i)))
((> i 20000000)(print q))
(set! q (myfact (floor (/ i 1000000)))))))


Common lisp: tested with sbcl gcl and clisp. Programmed with
tail recursion and maximal optimization

(defun myfact (n &optional (acc 1))
(declare ( fixnum n acc)
(optimize (speed 3) (safety 0)))
(if (<= n 1)
acc
(myfact (- n 1) (* acc n))))
(defun myloop()
(declare (optimize speed))
(let ((q 0))
(do ((i 1 (+ 1 i))) ((> i 20000000)(print q))
(setq q (myfact (floor i 1000000))))))
(time (myloop))


Python: with cpython3

import time
import math
def myfact(n):
if n < 0 :
return 0
elif n == 1 :
return 1
else:
return n * myfact(n-1)
start = time.time()
q = 0
for i in range(20000000):
q = myfact(math.floor(i/1000000))
print(q)
end = time.time()
print(end - start)


and finally C compiled with gcc and clang.

#include<stdio.h>
#include<sys/time.h>
#include<math.h>
long long myfact (int n) {

if (n<0) return 0;
else if (n==0) return 1;
else return n * myfact(n-1);
}
int main() {
long i;
long long q;
struct timeval start;
struct timeval end;
double(diff);
gettimeofday(&start,0);
q=0;
for (i=0;i <= 20000000;i++) {
q = myfact(floor(i/1000000));
}
printf("%lli\n",q);
gettimeofday(&end,0);
diff=(double)(end.tv_sec -start.tv_sec)+
(double)(end.tv_usec - start.tv_usec) / 1000000;
printf("%f\n",diff);
}


Here are the timings. The slowest is uncompiled clisp which takes 207s
and uncompiled gcl which takes 138s.
Then comes python3 at 61s.
After that we have a group around 30s. After compilation clisp takes 33s.
Chicken (compiled by csc -O3 -o fact fact.scm) takes 27s. The racket
system has, i think, a JIT compiler, and is faster. It runs in 13s, and
surprisingly the tail recursive computation takes the same time. Which
means that the compiler is quite good at optimizing the code.
Using a compiled version of fact.lisp with gcl takes 6s. Then are the
fast systems.
Since sbcl compiles on the fly it is fast, it takes 0.509s. By
curiosity, for the non
tail recursive version of myfact:
(defun myfact(n) (if (<= n 1) 1 (* n (myfact (- n 1)))))
and without any declaration sbcl takes 4.281 s while in the same situation
gcl using compilation takes 4.090 s So both are quite equivalent, but
sbcl takes the advantage
when using its elaborate optimizer.
Finally directly using a C program, far more boilerplate, non obvious
decalarations, etc.
with gcc -O1 gives 1.162638 s while gcc -03 gives 0.256238 s. There is
no appreciable
difference between clang -O1 and clang -O3 both run in 0.000220 s which
seems
incredibly fast. In any case we see that sbcl has basically equivalent
performance with
the C program compiled with gcc. After having looked at the assembly
produced by gcc and
clang, it appears that the reason of the clang performance is that it
has optimized away
the whole for (i=0;i <= 20000000;i++) {q = myfact(floor(i/1000000));}
and computed only
the last factorial! Changing fact.c to avoid that (computing the sum of
the q) one gets
0.757577 s for clang -O3 and 0.263702 s for gcc -O3, that is sbcl is as
fast as clang
and gcc -O3 is much better as i had expected.
--
Michel Talon
Olivier Miakinen
2024-06-19 23:33:11 UTC
Permalink
Post by Olivier Miakinen
Note que c'est vrai lorsque les diviseurs sont premiers entre eux (ce qui
est le cas avec les trois nombres premiers 3, 5 et 7) mais tu peux faire
des tests avec d'autres diviseurs pour voir ce que ça donne. Par exemple
avec 6, 10 et 14, ou avec 15, 21 et 35.
Il n'y a plus de résultat, même avec 100 000 itérations... Pourquoi
est-ce que ça ne marche plus lorsque les diviseurs ne sont plus premiers
entre eux ?
Tout dépend des restes correspondants. Par exemple, si tu veux que le reste
soit 2 avec un diviseur de 6, mais 5 avec un diviseur de 10, ce sera bien
évidemment impossible puisque ce nombre devrait être à la fois pair (pour
avoir un reste de 2 modulo 6) et impair (pour avoir un reste de 5 modulo 10).

Quoi qu'il en soit, si tu veux /comprendre/ ce qui se passe réellement, alors
faire des tests avec python ne suffira pas. Il va falloir vraiment finir par
faire des maths. :-)
https://fr.wikipedia.org/wiki/Th%C3%A9or%C3%A8me_des_restes_chinois#G%C3%A9n%C3%A9ralisation_%C3%A0_des_nombres_non_premiers_entre_eux
--
Olivier Miakinen
Dominique
2024-06-20 03:10:14 UTC
Permalink
Post by Olivier Miakinen
Tout dépend des restes correspondants. Par exemple, si tu veux que le reste
soit 2 avec un diviseur de 6, mais 5 avec un diviseur de 10, ce sera bien
évidemment impossible puisque ce nombre devrait être à la fois pair (pour
avoir un reste de 2 modulo 6) et impair (pour avoir un reste de 5 modulo 10).
Effectivement, c'est logique !
Post by Olivier Miakinen
Quoi qu'il en soit, si tu veux /comprendre/ ce qui se passe réellement, alors
faire des tests avec python ne suffira pas. Il va falloir vraiment finir par
faire des maths. :-)
https://fr.wikipedia.org/wiki/Th%C3%A9or%C3%A8me_des_restes_chinois#G%C3%A9n%C3%A9ralisation_%C3%A0_des_nombres_non_premiers_entre_eux
C'est précisément à ce niveau que se situe ma difficulté : mon niveau de
math est celui du BEPC, et ce brevet a, aujourd'hui, plus de 50 ans :)
--
Dominique
Esto quod es
Richard Hachel
2024-06-23 13:53:41 UTC
Permalink
Post by Dominique
Bonsoir,
Supposons que nous ayons un nombre inconnu d'objets. Comptés par 3, il
en reste 2, par 5, il en reste 3 et par 7, il en reste 2.
J'aime bien ce problème.

Il est résoluble en quatre secondes, chrono, pour un élève de classe de
troisième pour peu qu'il ait la clé.

Pas besoin d'appeler SOS-Urgence-Maths ou l'intelligence artificielle,
LOL.

Encore moins de composer en Python.

Prenons la troisième équation : il est évident que cela va se
reproduire toutes les sept fois, selon une progression constante.

Et pour les autres, toutes les trois fois, et toutes les cinq fois.

Au total, l'ensemble va forcément, et constamment, se reproduire toutes
les 105 fois.

Il suffit de trouver la première fois, et cela vient vite en posant
n=7a+2

on essaye a=1 ----> n=13 (ça marche pas).

On essaye a=2 ----> n=23

Bingo.

On a donc n=(23,128,233,338,443,...)

R.H.
Dominique
2024-06-24 04:01:09 UTC
Permalink
Post by Richard Hachel
Il est résoluble en quatre secondes, chrono, pour un élève de classe de
troisième pour peu qu'il ait la clé.
Je te remercie de me prendre pour un crétin !

Je te suggère cette très belle citation :

https://www.dicocitations.com/citations/citation-4754.php
--
Dominique
Esto quod es
efji
2024-06-24 06:22:57 UTC
Permalink
Post by Dominique
Post by Richard Hachel
Il est résoluble en quatre secondes, chrono, pour un élève de classe
de troisième pour peu qu'il ait la clé.
Je te remercie de me prendre pour un crétin !
Venant de Hachel, c'est un compliment :)
--
F.J.
Richard Hachel
2024-06-24 12:06:03 UTC
Permalink
Post by efji
Post by Dominique
Post by Richard Hachel
Il est résoluble en quatre secondes, chrono, pour un élève de classe
de troisième pour peu qu'il ait la clé.
Je te remercie de me prendre pour un crétin !
Venant de Hachel, c'est un compliment :)
Euh... Non, être traité de crétin par Hachel, ça fit quand même
l'effet d'une belle droite dans la gueule en public, car connaissant bien
le zigoto, un doctorat, trois prix Nobel, la plus belle élégance
relativiste mondiale, et la théologie judéo-chrétienne mettant en pls
tout ceux qui veulent s'y frotter, il ne lui est pas besoin de traiter
autrui de crétin pour montrer qu'il en a, lui, une grosse.

Je suis d'ailleurs d'un naturel extrêmement concilient et respectueux
envers les autres, et si dans de très rares cas, j'en arrive à traiter
quelqu'un de bouffon, de guignol, ou de crétin, il faut se rassurer :
ça arrive une fois tous les dix ans, en moyenne, et celui qui est ainsi
malmené doit se dire qu'il l'a vraiment cherché.

Quant aux insultes et aux crachats, grosseur de bite oblige, c'est
surtout moi qui les prend.

En 30 ans d'usenet, j'en ai probablement pris plus que vous n'en prendrez
jamais.

Relativisons, mes amis, relativisons.

R.H.

Richard Hachel
2024-06-24 11:57:00 UTC
Permalink
Post by Dominique
Post by Richard Hachel
Il est résoluble en quatre secondes, chrono, pour un élève de classe de
troisième pour peu qu'il ait la clé.
Je te remercie de me prendre pour un crétin !
Je n'ai pas dit ça, et je ne l'ai d'ailleurs pas pensé.

J'ai dit, comme tu le vois dans mon explication, qu'un élève de lycée
pouvait résoudre aisément
le problème S'IL AVAIT la clé.

Je n'ai pas dit que la clé était simple.

D'ailleurs la réponse que je t'ai faite n'est pas entièrement
satisfaisante, car elle ne donne pas la clé pour trouver le nombre 23
directement (j'ai du essayé avec a=1 puis a=2 et bien qu'il est certain
qu'il ne faut pas chercher bien loin dans les multiples de sept, c'est à
dire bien avant a=105/7, ce n'est pas élégant).

Je n'ai pas le temps de voir, mais il y a probablement une solution
simple élégante pour trouver 23.

R.H.
Continuer la lecture sur narkive:
Loading...