Montrer que la partie entière de a=(3+√5)n est un entier impair quelque soit l’entier n dans ℕ.
On peut faire des essais dans le tableur.
Dans A0 on met 1
Dans A1 on met =A0*(3+sqrt(5))
Dans B0 on met =floor(A0)
Dans B1 on met =floor(B1)
Puis on remplit vers le bas.
Dans cet exercice il faut penser à associer à
(3+√5)n sa quantité conjuguée (3−√5)n.
Dans C0 on met 1
Dans C1 on met =C0*(3-sqrt(5))
Dans D0 on met =floor(A0+C0)
Dans D1 on met =C0*(3-sqrt(5))
Puis on remplit vers le bas.
On remarque que :
b=(3+√5)n+(3−√5)n est un entier pair (d’après la formule du
binôme) et que 0<(3−√5)n<1.
On a donc a<b<a+1, ou encore b−1<a<b avec b un entier pair.
Cela prouve que la partie entière de a=(3+√5)n est b−1
qui est un entier impair.
Quel est, parmi les entiers naturels de 1 à 2005, celui qui admet le plus de diviseurs ? Quel est ce nombre de diviseurs ?
On tape :
2*3*5*7
On obtient :
210
On tape :
2*3*5*7*11
On obtient :
2310
Cela nous dit que le nombre est de la forme :
2a*3b*5c*7d avec a ≥ b ≥ c ≥ d ≥ 0
et alors son nombre de diviseurs est :
(a+1)(b+1)(c+1)(d+1)
On peut maintenant faire une recherche systématique :
Il semble qu’il faut supposer que d ≠ 0 car avec
- b=0,c=0, d=0 on ne peut avoir que 210 qui n’a que 11 diviseurs,
- c=0,d=0 (a+1)(b+1)
vaut 20 pour a=9 et b=1 (29*3=1536)
vaut 28 pour a=6 et b=3 (26*33=1728)
- d=0 (a+1)(b+1)(c+1)
vaut 32 pour a=7, b=1 et c=1 (27*3*5=1920)
vaut 36 pour a=5, b=2 et c=1 (25*32*5=1444)
- si d ≠ 0
On tape :
210*6
On obtient :
1260
et 1260 admet 3*3*2*2=36 diviseurs ou on tape :
size(idivis(1260))
On obtient :
36
On tape :
210*8
On obtient :
1680
et 1680 admet 5*2*2*2=40 diviseurs ou on tape :
size(idivis(1680))
On obtient :
40
On fait une recherche systématique :
210=1024 a 11 diviseurs,
29*3=1536 a 20 diviseurs,
27*32=1116 a 24 diviseurs,
26*33=1728 a 28 diviseurs,
24*34=1296 a 25 diviseurs,
27*3*5=1920 a 32 diviseurs,
25*32*5=1440 a 24 diviseurs,
24*3*5*7=1680 a 40 diviseurs.
1/ Trouver le plus petit nombre entier n qui admet exactement 50
diviseurs.
2/ Existe-t-il un entier m qui soit inférieur à n et qui admette plus
de 50 diviseurs ?
On sait que si n=ap*bq*cr le nombre de diviseurs de n est
(p+1)(q+1)(r+1).
On a :
50=1*50=2*25=10*5=2*5*5
1/ On cherche le plus petit nombre entier qui admet exactement 50 diviseurs,
donc les candidats sont :
249
224*3
29*34
24*34*5
C’est donc 6480=24*34*5
On tape :
size(idivis(6480))
On obtient :
50
2/ On doit avoir :
m<24*34*5 donc pour qu’il est plus que 50 diviseurs il faut que m soit de
la forme m=2p*3q*5r*7s avec p<=4,q<4,r=1,s=1 et 4(p+1)(q+1)>50.
Essayons p=4,q=2, on a 4(p+1)(q+1)=60>50 et m=24*32*5*7=5040.
Donc m= répond à la question.
Soit une séquence L d’objets. On prend 3 objets parmi cette séquence
L. Écrire un programme triplets qui renvoie la séquence de
dimension comb(size(L),3) constituée par les 3 objets obtenus.
Application numérique
L est la liste des diviseurs de n=12.
Soit un entier n. On cherche 3 diviseurs différents n1,n2,n3 de
n, tels que n1+n2+n3 soit aussi un diviseur de n.
Modifier le programme précédent en solutions pour obtenir toutes les
solutions.
Application numérique
n=12
n=60
n=6279
On tape :
triplets(L):={ local LR,LT,j,k,l,s; LR:=NULL; LT:=NULL; s:=size(L)-1; pour j de 0 jusque s-2 faire pour k de j+1 jusque s-1 faire pour l de k+1 jusque s faire LT:=LT,[L[j],L[k],L[l]]; fpour; fpour; fpour; retourne LT; }:;
On tape pour n=12 :
LT:=triplets(idivis(12));size(LT);comb(3);comb(6,3)
On obtient :
[1,2,3],[1,2,4],[1,2,6],[1,2,12],[1,3,4],[1,3,6],[1,3,12],
[1,4,6],[1,4,12],[1,6,12],[2,3,4],[2,3,6],[2,3,12],[2,4,6],
[2,4,12],[2,6,12],[3,4,6],[3,4,12],[3,6,12],[4,6,12],20,20
On tape :
solutions(n):={ local LR,LT,L,j,k,l,s; LR:=NULL; LT:=NULL; L:=idivis(n); s:=size(L)-1; pour j de 0 jusque s-2 faire pour k de j+1 jusque s-1 faire pour l de k+1 jusque s faire LT:=LT,[L[j],L[k],L[l]]; fpour; fpour; fpour; s:=size(LT)-1; pour j de 0 jusque s faire si irem(n,sum(LT[j]))==0 alors LR:=LR,LT[j]; fsi; fpour; retourne LR; }:;
On tape pour n=12 :
LS:=solutions(12);size(LS)
On obtient 2 solutions (sur les 20 triplets):
[1,2,3],[2,4,6],2
On tape pour n=60 :
LS:=solutions(60);size(LS)
On obtient 20 solutions (sur les 220 triplets):
[1,2,3],[1,2,12],[1,3,6],[1,4,5],[1,4,10],[1,4,15],[1,5,6],
[2,3,5],[2,3,10],[2,3,15],[2,4,6],[2,6,12],[3,4,5],[3,5,12],
[3,12,15],[4,5,6],[4,6,10],[4,6,20],[5,10,15],[10,20,30],20
On tape pour n=6279 :
LS:=solutions(6279);size(LS)
On obtient 9 solutions (sur les 560 triplets):
[1,7,13],[1,21,69],[1,69,91],[3,7,13],[3,13,23],[3,23,273],
[7,23,39],[21,91,161],[23,161,299],9
Quel est le plus petit nombre entier avec lequel il faut multiplier 49 pour obtenir un nombre se terminant par 999999999 (9 neufs) ?
Réponse niveau primaire
On peut faire une multiplication à trous :
49*.........=..999999999 |
On trouve :
49*693877551=33999999999 |
Réponse niveau collège
On a 9999999999=109−1 et le résultat de la multiplication doit être de
la forme n*109+109−1 avec 0≤ n<49 (ou de la forme p*109−1)
avec 0< p ≤ 49.
On utilise le tableur en cherchant n pour que :
n*109+109−1 soit divisible par 49.
On utilisera les commandes irem(a,b) et iquo(a,b) qui renvoient
respectivement le reste et le quotient de la division euclidienne de a
par b.
Pour cela on met dans la première colonne les nombres de 0 à 48, puis dans
la deuxième colonne les nombres n*109+109−1 pour n de 0 à 48.
Dans la troisième colonne on calcule le reste de la division de la deuxième
colonne par 49 et on trouve que pour n=33 ce reste est nul.
Il reste à calculer iquo(33*10^
9+10^
9-1,49) et on
trouve :
693877551 |
Mais cette méthode est très couteuse !
On peut aller un peu plus vite (surtout si on veut faire les calculs à la
main) en remarquant que 10=3 mod7 et que 100=2 mod49 donc :
103=−1 mod7
106=1 mod7
109=−1 mod7
108=24=16 mod49
109=13 mod49
13*−7=7 mod49
On cherche a tel que a*109=49*k+1=7*p+1.
donc −a=1 mod7 et 13*a=1 mod49
Si a=48 on a 13*a=−13=36 mod49
Si a=41 on a 13*a=13*−1+13*−7=−13+7=−6 mod49
Si a=34 on a 13*a=13*−1+13*−7+13*−7=1 mod49
Donc 34*109=1 mod49
Il reste à calculer iquo(34*10^
9-1,49) et on
trouve :
693877551 |
Réponse niveau TS
On a : 999999999+1=109.
On cherche p pour avoir : p*49=a*109−1 c’est à dire
1=a*109−p*49.
Avec Xcas on tape :
bezout_entiers(49,10^
9)
On obtient :
[306122449,-15,1]
Donc :
49*306122449−15*109=1
et puisque 49*109−49*109=0, on a :
49*(109−306122449)+(15−49)*109=−1.
Puisque 109−306122449=693877551 et (49−15)=34, on a :
49*693877551=34*109−1=33999999999 |
Pour faire les calculs à la main on écrit :
109=13 mod49
donc on écrit les 2 premières équations :
0*13+1*49=49 |
1*13+0*49=13 |
puisque 49=3*13+10 on soustrait 3 fois l’équation 2 à l’équation 1 et on obtient l’équation 3 :
−3*13+1*49=10 |
puisque 13=1*10+3 on soustrait l’équation 3 à l’équation 2 et on obtient l’équation 4 :
4*13−1*49=3 |
puisque 10=3*3+1 on soustrait 3 fois l’équation 4 à l’équation 3 et on obtient l’idendité de Bézout :
−15*13+4*49=1 |
On a −15=34 mod49 et 109=13 mod49 donc
34*109−1 est divisible par 49.
Il reste à calculer iquo(34*10^
9-1,49) et on
trouve :
693877551 |
Résoudre en nombres entiers :
13x+5y=1 |
5x+13y=6 |
Avec Xcas on tape :
bezout_entiers(13,5)
On obtient :
[2,-5,1]
Donc 2*13−5*5=1.
et puisque k*13*5−k*13*5=0, on a :
13*(2+5k)−(5+13k)*5=1.
13x+5y=1 a donc comme solutions x=2+5k,y=−5−13k avec k dans ℤ.
En multipliant l’égalité 13*(2+5k)−(5+13k)*5=1 par 6 on a :
13*(12+30k)−(30+78k)*5=6
5x+13y=6 a donc comme solutions x=−30−78k,y=12+30k avec k dans ℤ.
Trouver les 2 derniers chiffres de 1996919969.
Ici, on est sûr que le dernier chiffre est 9, puisque 19969 est un nombre
impair.
Avec Xcas, on tape :
powmod(19969,19969,100)
On obtient : 29
On peut aussi taper mais le calcul est inefficace :
irem(19969^
19969,100)
Trouver les 2 derniers chiffres de 1999619996.
Ici, on est sûr que le dernier chiffre est 6.
Avec Xcas, on tape :
powmod(19996,19996,100)
On obtient : 96
On peut aussi taper directement pour vérifier :
irem(19996^
19996,100)
Bijection entre ℚ ∩ [0,1] et ℕ
On construit une bijection f entre les rationnels de [0,1] et ℕ,
pour cela :
0,1, |
| , |
| , |
| , |
| , |
| , |
| , ... |
|
| ... |
| ,... |
La fonction f attribue à un rationnel de [0,1] son rang dans la suite L, on a : f(0)=0, f(1)=1, f(1/2)=f(2/4)=2, f(1/3)=3..., f(3/4)=6,..., f(1/5)=7....
On utilise la fonction euler de Xcas qui est l’indicatrice d’Euler c’est à dire euler(n) renvoie le nombre d’entiers inférieurs à n qui sont premiers avec n (euler(n)=card({p<n,gcd(n,p)=1})).
Lppapremb(a,b):={ local L,k; L:=NULL; for (k:=1;k<=a;k:=k+1){ if (gcd(k,b)==1) { L:=L,k; } } return [L]; }:;On tape :
f(r):={ local s,k,a,b; a:=numer(r); b:=denom(r); s:=0; for (k:=1;k<=a;k:=k+1){ if (gcd(k,b)==1) {s:=s+1;} } return sum(euler(n),n,1,b-1)+s; }:;On tape :
tracef(n):={ local L,a,b,valf; L:=point(0),point(1); valf:=1; for (b:=2;b<=n;b:=b+1){ for (a:=1;a<b;a:=a+1){ if (gcd(a,b)==1) { valf:=valf+1; L:=L,point(evalf(a/b)+i*valf); } } } return affichage(L,rouge+point_point+ epaisseur_point_2); }:;On tape :
tracer(n):={ local L,a,b; L:=point(0),point(1); for (b:=2;b<n;b:=b+1){ for (a:=1;a<b;a:=a+1){ if (gcd(a,b)==1){L:=L,point(evalf(a/b)+i*f(a/b));} } } return affichage(L,rouge+point_point+ epaisseur_point_2); }:;Le temps de réponse est beaucoup plus long car le programme calcule à chaque ètape f(a/b) sans tenir compte des valeurs de f calculées auparavant. Le temps mis pour faire tracer(100) est de 160.02s alors que celui de tracef(100) est de 3.52s.
tracerf(n):={ local L,a,b,valf,s,j; s:=f((n-1)/n); L:=makelist(0,1,s); L[0]=<point(0); L[1]=<point(1); valf:=1; j:=2; for (b:=2;b<=n;b:=b+1){ for (a:=1;a<b;a:=a+1){ if (gcd(a,b)==1) { valf:=valf+1; L[j]=<point(evalf(a/b)+i*valf); j:=j+1; } } } return affichage(L,rouge+point_point+ epaisseur_point_2); }:;On tape :
tracerfc(n):={ local L,a,b,valf,s,j; s:=f((n-1)/n); L:=makelist(0,1,s); L[0]=<point(0); L[1]=<point(1);L:=point(0),point(1); valf:=1;j:=2 for (b:=2;b<=n;b:=b+1){ for (a:=1;a<b;a:=a+1){ if (gcd(a,b)==1) { valf:=valf+1; L[j]=<point(evalf(a/b)+i*valf,affichage= irem(a,7)+point_point+epaisseur_point_2); j:=j+1; } } } return L; }:;On tape :
Approximation d’un nuage de points
La fonction f est la bijection entre ℚ ∩ [0,1] et ℕ qui a èté
définie dans le TP précédent.
f( |
| )=1+ |
| Φ(k) pour n∈ ℕ* |
^
2)fractirred0(n,p):={ local a,b,j,k; randseed; k:=0; pour j de 1 jusque p faire a:=rand(n)+1; b:=rand(n)+1; si gcd(a,b)==1 alors k:=k+1;fsi; fpour; retourne evalf(k/p),evalf(6/pi^2); }:;On tape :
^
31,10^
6)fractirred1(n,p):={ local a,b,j,k; randseed; k:=0; pour j de 1 jusque p faire b:=rand(n)+1; repeter a:=rand(n)+1;jusqua a<=b; si gcd(a,b)==1 alors k:=k+1;fsi; fpour; retourne evalf(k/p),evalf(6/pi^2); }:;On tape :
randfract(n):= { local r,a,p,q; a:=n*(n+1)/2; r:=rand(a)+1; q:=floor((-1+sqrt(8*r+1))/2); p:=r-q*(q+1)/2; retourne p,q; }:; fractirred(n,p):={ local a,b,j,k; randseed; k:=0; pour j de 1 jusque p faire a,b:=randfract(n); si gcd(a,b)==1 alors k:=k+1;fsi; fpour; retourne evalf(k/p),evalf(6/pi^2); }:;On tape :
^
2+1000.)^
2+10000.)
Soit un cercle de rayon R. On appelle corde type les cordes de longueur
a=R√3. La longueur des cordes types est égale à la longueur des
côtés des triangles équilatéraux inscrits dans ce cercle. Le problème
de Joseph Bertrand est :
quelle est la probabilité pour qu’une corde prise au hasard soit plus grande
qu’une corde type ?
Écrire un programme qui simule le choix d’une corde prise au hasard dans un
cercle de rayon 1 lorsque :
Puis expliquez les résultats obtenus.
Les programmes avec Xcas
Une corde type AB d’un cercle de rayon 1 a pour longueur √3 et son
angle au centre vaut 2π/3 i.e si a est l’argument de l’affixe de A et
b est l’argument de l’affixe de B.
simulber10(n):={ local j,a,b,l,s; s:=0; pour j de 1 jusque n faire a:=rand(-pi,pi); b:=rand(-pi,pi); l:=2-2*cos(a-b); si l>3 alors s:=s+1; fsi; fpour; retourne s,n,evalf(s/n); }:; simulber11(n):={ local j,a,b,c,s; s:=0; pour j de 1 jusque n faire a:=rand(-pi,pi); b:=rand(-pi,pi); c:=abs(a-b); si c>2*pi/3 et c<4*pi/3 alors s:=s+1; fsi; fpour; retourne s,n,evalf(s/n); }:;On tape : simulber10(100000)
simulber2(n):={ local j,a,b,d,l,s; s:=0; pour j de 1 jusque n faire a:=rand(-pi,pi); d:=rand(0,pi); b:=pi+2*d-a; l:=2-2*cos(a-b); si l>3 alors s:=s+1; fsi fpour retourne s,n,evalf(s/n); }:;On tape : simulber2(100000)
simulber3(n):={ local j,a,b,c,l,s; s:=0; pour j de 1 jusque n faire repeter a:=rand(-1,1); b:=rand(-1,1); jusqua a^2+b^2<1; l:=4*(1-a^2-b^2); si l>3 alors s:=s+1; fsi; fpour; retourne s,n,evalf(s/n); }:;On peut remplacer l:=4*(1-a
^
2-b^
2);si l>3 alors s:=s+1; fsi; par^
2+b^
2;si l<1/4 alors s:=s+1; fsi;simulber30(n):={ local j,a,b,c,l,s; s:=0; pour j de 1 jusque n faire a:=alea(-1,1); c:=sqrt(1-a^2); b:=alea(-c,c); l:=4*(1-a^2-b^2); si l>3 alors s:=s+1; fsi; fpour; retourne s,n,evalf(s/n); }:;le programme n’est pas correct car dans ce programme a et b ne sont pas indépendants (voir la remarque du 13.13).
^
2))/sqrt((1-x^
2)),x=0..1/2)simulber4(n):={ local j,r,l,s; s:=0; pour j de 1 jusque n faire r:=rand(-1,1); l:=4*(1-r^2); si l>3 alors s:=s+1; fsi fpour retourne s,n,evalf(s/n); }:;On tape : simulber4(100000)
simulber40(n):={ local j,r,t,m,l,s; s:=0; pour j de 1 jusque n faire r:=rand(-1,1); t:=rand(0,pi); m:=r*exp(i*t); l:=4*(1-r^2); si l>3 alors s:=s+1; fsi fpour retourne s,n,evalf(s/n); }:;On tape : simulber40(100000)
r:=rand(-1,1); t:=rand(0,pi); M:=point(r*exp(i*t));ne définit pas des points équirépartis dans le cercle de centre 0 et de rayon 1.
Trouver un nombre entier n vérifiant 4<n<N vérifiant :
n est divisible par 2
n−1 est divisible par 3
n−2 est divisible par 5
n−3 est divisible par 7
n−4 est divisible par 11
On utilise la commande ichinrem.
On tape :
ichinrem([0%2,1%3,2%5,3%7,4%11]))
On obtient :
-788 % 2310
On veut que 0<n<N donc :
n=(2310−788)+2310*k=1522+2310*k avec k≤ iquo((N−1522),2310)
donc si N=10000 on tape :
iquo((10000-1522),2310)
On obtient :
3
On tape :
(1522+2310*k)$(k=0..3)
On obtient :
1522,3832,6142,8452
On utilise la commande iabcuv qui étant donné trois entiers
a,b,c renvoie une liste de deux entiers
relatifs [u,v] vérifiant a*u+b*v=c.
Remarque
On cherche n vérifiant :
n est un multiple de 2 et aussi un multiple de 3 plus 1.
Donc on a : n=2p=3q+1 avec p∈ ℤ et q∈ ℤ.
c’est à dire 2p−3q=1.
On tape : iabcuv(2,3,1)
On obtient : [-1,1]
Donc n=2*(−1+3k)=−2 % 6.
De plus n est un multiple de 5 plus 2.
Donc on a : n=5r+2=−2+6k avec r∈ ℤ et k∈ ℤ.
c’est à dire 6k−5r=4.
On tape : iabcuv(6,5,4)
On obtient : [-1,2]
Donc n=6*(−1+5k)−2=−8 % 30.
De plus n est un multiple de 7 plus 3.
Donc on a : n=7j+3=−8+30k avec j∈ ℤ et k∈ ℤ.
c’est à dire 30k−7j=11.
On tape : iabcuv(30,7,11)
On obtient : [2,-7]
Donc n=30*(2+7k)−8=52 % 210.
De plus n est un multiple de 11 plus 4.
Donc on a : n=11m+4=52+210k avec m∈ ℤ et k∈ ℤ.
c’est à dire 11m−210k=48.
On tape : iabcuv(11,210,64)
On obtient : [-72,4]
Donc n=11*(−72+210k)+4=−788 % 2310.
On tape : (-788+k*2310)$ (k=1..4)
On obtient : 1522,3832,6142,8452