Misez p'tit Optimisez n°57 : palindromes
Modérateur : Politburo
- Thierry Loiseau
- Fonctionne à 1200 bauds
- Messages : 823
- Enregistré le : 10 avr. 2004 22:23
- Localisation : Terrasson (Périgord)
- Contact :
Re: Misez p'tit Optimisez n°57 : palindromes
À l'utilisateur de mettre 1 STO 6 avant de lancer le programme pour le premier test.
TI 57 avec adaptation d'une pile LR9 et une originale, accus HS; Newton MP 120FR, MP 2100US, MP 130US...
[***Apple //e, 7100, 8500, Atari Mega ST1 ***], PB-540c, PISMO, [***CPC-6128, MO5***]... et bien d'autres trucs
[--- plus ---]
http://astrophoto.free.fr/
- Thierry Loiseau
- Fonctionne à 1200 bauds
- Messages : 823
- Enregistré le : 10 avr. 2004 22:23
- Localisation : Terrasson (Périgord)
- Contact :
Re: Misez p'tit Optimisez n°57 : palindromes
Code : Tout sélectionner
00 32 1 STO 1
01 32 3 STO 2
02 00 0
03 32 7 STO 7
04 33 1 RCL 1
05 18 LOG
06 49 INT
07 75 +
08 01 1
09 85 =
10 32 0 STO 0
11 86 0 LBL 0
12 33 7 RCL 7
13 55 *
14 33 5 RCL 5
15 85 =
16 32 7 STO 7
17 33 1 RCL 1
18 45 ÷
19 33 5 RCL 5
20 85 =
21 32 1 STO 1
22 49- FRAC
23 55 *
24 33 5 RCL 5
25 85 =
26 49 INT
27 85 =
28 34 7 SUM 7
29 56 DSZ
30 51 0 GTO 0
31 33 3 RCL 2
32 75 +
33 33 7 RCL 7
34 85 =
35 81 R/S
Code : Tout sélectionner
10 STO 5
_________
0 STO 6
nombre [RST] [R/S]
Code : Tout sélectionner
RCL 6 ' le nombre de traitement effectué.
RCL 3 ' le nombre au lancement du traitement
RCL 2 ' le nombre palindromique
TI-57 v3
Code : Tout sélectionner
00 32 1 STO 1
01 32 2 STO 2
02 32 3 STO 3
03 86 0 LBL 0
04 00 0
05 32 7 STO 7
06 33 1 RCL 1
07 18 LOG
08 49 INT
09 75 +
10 01 1
11 85 =
12 32 0 STO 0
13 86 0 LBL 1
14 33 7 RCL 7
15 55 *
16 33 5 RCL 5
17 85 =
18 32 7 STO 7
19 33 1 RCL 1
20 45 ÷
21 33 5 RCL 5
22 85 =
23 32 1 STO 1
24 49- FRAC
25 55 *
26 33 5 RCL 5
27 85 =
28 49 INT
29 34 7 SUM 7
30 56 DSZ
31 51 0 GTO 1
32 33 3 RCL 2
33 75 +
34 33 7 RCL 7
35 85 =
36 32 1 STO 1
37 33 2 RCL 2
38 66- x≠t?
39 51 2 GTO 2
40 81 R/S
41 86 2 LBL 2
42 33 1 RCL 1
43 32 2 STO 2
44 01 1
45 34 6 SUM 6
46 51 0 GTO 0
TI 57 avec adaptation d'une pile LR9 et une originale, accus HS; Newton MP 120FR, MP 2100US, MP 130US...
[***Apple //e, 7100, 8500, Atari Mega ST1 ***], PB-540c, PISMO, [***CPC-6128, MO5***]... et bien d'autres trucs
[--- plus ---]
http://astrophoto.free.fr/
- Thierry Loiseau
- Fonctionne à 1200 bauds
- Messages : 823
- Enregistré le : 10 avr. 2004 22:23
- Localisation : Terrasson (Périgord)
- Contact :
Re: Misez p'tit Optimisez n°57 : palindromes
Code : Tout sélectionner
00 32 1 STO 1
01 32 2 STO 2
02 32 3 STO 3
03 00 0
04 32 6 STO 6
05 86 0 LBL 0
06 00 0
07 32 7 STO 7
08 33 1 RCL 1
09 18 LOG
10 49 INT
11 75 +
12 01 1
13 85 =
14 32 0 STO 0
15 86 1 LBL 1
16 33 7 RCL 7
17 55 *
18 33 5 RCL 5
19 85 =
20 32 7 STO 7
21 33 1 RCL 1
22 45 ÷
23 33 5 RCL 5
24 85 =
25 32 1 STO 1
26 49- FRAC
27 55 *
28 33 5 RCL 5
29 85 =
30 49 INT
31 34 7 SUM 7
32 56 DSZ
33 51 1 GTO 1
34 33 3 RCL 2
35 75 +
36 33 7 RCL 7
37 85 =
38 32 1 STO 1
39 33 2 RCL 2
40 66- x≠t?
41 51 2 GTO 2
42 81 R/S
43 86 2 LBL 2
44 33 1 RCL 1
45 32 2 STO 2
46 01 1
47 34 6 SUM 6
48 51 0 GTO 0
Code : Tout sélectionner
10 STO 5
____________
[NOMBRE] [RST [R/S]
____________
RCL 2 : Nombre palindromique
RCL 3 : Nombre au lancement
RCL 6 : Nombre de traitement
Thierry
TI 57 avec adaptation d'une pile LR9 et une originale, accus HS; Newton MP 120FR, MP 2100US, MP 130US...
[***Apple //e, 7100, 8500, Atari Mega ST1 ***], PB-540c, PISMO, [***CPC-6128, MO5***]... et bien d'autres trucs
[--- plus ---]
http://astrophoto.free.fr/
- Thierry Loiseau
- Fonctionne à 1200 bauds
- Messages : 823
- Enregistré le : 10 avr. 2004 22:23
- Localisation : Terrasson (Périgord)
- Contact :
Re: Misez p'tit Optimisez n°57 : palindromes
Code : Tout sélectionner
RCL 7 * 10 = STO 7
simplifié par
10 Prd 7
RCL 1 ÷ 10 = STO 1
simplifié par
10 INV Prd 1
TI-57 version PRO
Code : Tout sélectionner
00 32 1 STO 1
01 32 2 STO 2
02 32 3 STO 3
03 00 0
04 32 6 STO 6
05 86 0 Lbl 0
06 00 0
07 32 7 STO 7
08 33 1 RCL 1
09 18 log
10 49 Int
11 75 +
12 01 1
13 85 =
14 32 0 STO 0
15 86 1 Lbl 1
16 01 1
17 00 0
18 39 7 Prd 7
19 01 1
20 00 0
21 - 39 1 INV Prd 1
22 33 1 RCL 1
23 - 49 Frac
24 55 *
25 01 1
26 00 0
27 85 =
28 49 Int
29 34 7 SUM 7
30 56 Dsz
31 51 1 GTO 1
32 33 7 RCL 07
33 32 1 STO 01
34 33 2 RCL 02
35 34 1 SUM 01
36 56 x=t?
37 81 R/S
38 33 1 RCL 1
39 32 2 STO 2
40 01 1
41 34 6 SUM 6
42 51 0 GTO 0
Edit : optimisation n°1
TI 57 avec adaptation d'une pile LR9 et une originale, accus HS; Newton MP 120FR, MP 2100US, MP 130US...
[***Apple //e, 7100, 8500, Atari Mega ST1 ***], PB-540c, PISMO, [***CPC-6128, MO5***]... et bien d'autres trucs
[--- plus ---]
http://astrophoto.free.fr/
Re: Misez p'tit Optimisez n°57 : palindromes
Tu peut optimiser :
Code : Tout sélectionner
32 RCL 02
33 +
34 RCL 07
35 =
36 STO 01
37 RCL 02
38 x=t?
Code : Tout sélectionner
32 RCL 07
33 STO 01
34 RCL 02
35 SUM 01
36 x=t?
Hp(s) 35s, 41CX, 28S, 48g, 50g, 39gII, Prime G1 et G2,
Casio(s) fx 602P, 702P, 4000P, 4500P, 6000G, 6900G, 7700G, 8500g, PB-700, CG-20, Graph 95 sd
Psion(s)II LZ64, siena, s3a, s3mx, s5mx.
Sharp(s) pc-1350, 1403, 1500A, E500, El 5120, 9200, 9600
Canon X-07
- Thierry Loiseau
- Fonctionne à 1200 bauds
- Messages : 823
- Enregistré le : 10 avr. 2004 22:23
- Localisation : Terrasson (Périgord)
- Contact :
Re: Misez p'tit Optimisez n°57 : palindromes
TI 57 avec adaptation d'une pile LR9 et une originale, accus HS; Newton MP 120FR, MP 2100US, MP 130US...
[***Apple //e, 7100, 8500, Atari Mega ST1 ***], PB-540c, PISMO, [***CPC-6128, MO5***]... et bien d'autres trucs
[--- plus ---]
http://astrophoto.free.fr/
- Thierry Loiseau
- Fonctionne à 1200 bauds
- Messages : 823
- Enregistré le : 10 avr. 2004 22:23
- Localisation : Terrasson (Périgord)
- Contact :
Re: Misez p'tit Optimisez n°57 : palindromes
Code : Tout sélectionner
00 32 1 STO 1
01 32 2 STO 2
02 32 3 STO 3
03 00 0
04 32 6 STO 6
05 86 0 LBL 0
06 00 0
07 32 7 STO 7
08 33 1 RCL 1
09 18 log
10 49 Int
11 75 +
12 01 1
13 85 =
14 32 0 STO 0
15 86 1 LBL 1
16 01 1
17 00 0
18 39 7 Prd 7
19 01 1
20 00 0
21 - 39 1 INV Prd 1
22 33 1 RCL 1
23 - 49 Frac
24 55 ×
25 01 1
26 00 0
27 85 =
28 49 Int
29 34 7 SUM 7
30 56 Dsz
31 51 1 GTO 1
32 33 7 RCL 7
33 32 1 STO 1
34 33 2 RCL 2
35 34 1 SUM 1
Code : Tout sélectionner
36 - 66 x≠t?
37 51 2 GTO 2
38 33 4 RCL 4
39 - 39 6 INV Prd 6
40 33 6 RCL 6
41 34 2 SUM 2
42 33 2 RCL 2
43 81 R/S
44 86 2 LBL 2
45 33 1 RCL 1
46 32 2 STO 2
47 01 1
48 34 6 SUM 6
49 51 0 GTO 0
Code : Tout sélectionner
100 STO 4
______
195 [RST] [R/S]
9339.04
Par contre, je n'ai pas encore vu de cas où ce nombre est >4 et <100...
TI 57 avec adaptation d'une pile LR9 et une originale, accus HS; Newton MP 120FR, MP 2100US, MP 130US...
[***Apple //e, 7100, 8500, Atari Mega ST1 ***], PB-540c, PISMO, [***CPC-6128, MO5***]... et bien d'autres trucs
[--- plus ---]
http://astrophoto.free.fr/
- Thierry Loiseau
- Fonctionne à 1200 bauds
- Messages : 823
- Enregistré le : 10 avr. 2004 22:23
- Localisation : Terrasson (Périgord)
- Contact :
Re: Misez p'tit Optimisez n°57 : palindromes
Code : Tout sélectionner
00 32 1 STO 1
01 32 2 STO 2
02 32 3 STO 3
03 00 0
04 32 6 STO 6
05 86 0 LBL 0
06 00 0
07 32 7 STO 7
08 33 1 RCL 1
09 18 log
10 49 Int
11 75 +
12 01 1
13 85 =
14 32 0 STO 0
15 86 1 LBL 1
16 01 1
17 00 0
18 39 7 Prd 7
19 01 1
20 00 0
21 - 39 1 INV Prd 1
22 33 1 RCL 1
23 - 49 Frac
24 55 *
25 01 1
26 00 0
27 85 =
28 49 Int
29 34 7 SUM 7
Code : Tout sélectionner
30 33 1 RCL 1
31 49 Int
32 32 1 STO 1
Code : Tout sélectionner
33 56 Dsz
34 51 0 GTO 1
35 33 7 RCL 7
36 32 1 STO 1
37 33 2 RCL 2
38 34 1 SUM 1
39 66 x=t?
40 81 R/S
41 33 1 RCL 1
42 32 2 STO 2
43 01 1
44 34 6 SUM 6
45 51 0 GTO 0
Code : Tout sélectionner
167+761=928
928+829=1757
1757+7571=9328
9328+8239=17567
17567+76571=94138
94138+83149=177287
177287+782771=960058
960058+850069=1810127
1810127+7210181=9020308
9020308+8030209=17050517
17050517+71505071=88555588
TI 57 avec adaptation d'une pile LR9 et une originale, accus HS; Newton MP 120FR, MP 2100US, MP 130US...
[***Apple //e, 7100, 8500, Atari Mega ST1 ***], PB-540c, PISMO, [***CPC-6128, MO5***]... et bien d'autres trucs
[--- plus ---]
http://astrophoto.free.fr/
- Thierry Loiseau
- Fonctionne à 1200 bauds
- Messages : 823
- Enregistré le : 10 avr. 2004 22:23
- Localisation : Terrasson (Périgord)
- Contact :
Re: Misez p'tit Optimisez n°57 : palindromes
Code : Tout sélectionner
168+861=1029
1029+9201=10230
10230+3201=13431
[168] <-> 3 [13431]
169+961=1130
1130+311=1441
[169] <-> 2 [1441]
170+71=241
241+142=383
[170] <-> 2 [383]
[171] <-> 0 [171]
172+271=443
443+344=787
[172] <-> 2 [787]
173+371=544
544+445=989
[173] <-> 2 [989]
174+471=645
645+546=1191
1191+1911=3102
3102+2013=5115
[174] <-> 4 [5115]
175+571=746
746+647=1393
1393+3931=5324
5324+4235=9559
[175] <-> 4 [9559]
176+671=847
847+748=1595
1595+5951=7546
7546+6457=14003
14003+30041=44044
[176] <-> 5 [44044]
177+771=948
948+849=1797
1797+7971=9768
9768+8679=18447
18447+74481=92928
92928+82929=175857
175857+758571=934428
934428+824439=1758867
1758867+7688571=9447438
9447438+8347449=17794887
17794887+78849771=96644658
96644658+85644669=182289327
182289327+723982281=906271608
906271608+806172609=1712444217
1712444217+7124442171=8836886388
[177] <-> 15 [8836886388]
178+871=1049
1049+9401=10450
10450+5401=15851
[178] <-> 3 [15851]
179+971=1150
1150+511=1661
[179] <-> 2 [1661]
180+81=261
261+162=423
423+324=747
[180] <-> 3 [747]
[181] <-> 0 [181]
182+281=463
463+364=827
827+728=1555
1555+5551=7106
7106+6017=13123
13123+32131=45254
[182] <-> 6 [45254]
183+381=564
564+465=1029
1029+9201=10230
10230+3201=13431
[183] <-> 4 [13431]
184+481=665
665+566=1231
1231+1321=2552
[184] <-> 3 [2552]
185+581=766
766+667=1433
1433+3341=4774
[185] <-> 3 [4774]
186+681=867
867+768=1635
1635+5361=6996
[186] <-> 3 [6996]
187+781=968
968+869=1837
1837+7381=9218
9218+8129=17347
17347+74371=91718
91718+81719=173437
173437+734371=907808
907808+808709=1716517
1716517+7156171=8872688
8872688+8862788=17735476
17735476+67453771=85189247
85189247+74298158=159487405
159487405+504784951=664272356
664272356+653272466=1317544822
1317544822+2284457131=3602001953
3602001953+3591002063=7193004016
7193004016+6104003917=13297007933
13297007933+33970079231=47267087164
47267087164+46178076274=93445163438
93445163438+83436154439=176881317877
176881317877+778713188671=955594506548
955594506548+845605495559=1801200002107
1801200002107+7012000021081=8813200023188
[187] <-> 23 [8813200023188]
188+881=1069
1069+9601=10670
10670+7601=18271
18271+17281=35552
35552+25553=61105
61105+50116=111221
111221+122111=233332
[188] <-> 7 [233332]
189+981=1170
1170+711=1881
[189] <-> 2 [1881]
190+91=281
281+182=463
463+364=827
827+728=1555
1555+5551=7106
7106+6017=13123
13123+32131=45254
[190] <-> 7 [45254]
[191] <-> 0 [191]
192+291=483
483+384=867
867+768=1635
1635+5361=6996
[192] <-> 4 [6996]
193+391=584
584+485=1069
1069+9601=10670
10670+7601=18271
18271+17281=35552
35552+25553=61105
61105+50116=111221
111221+122111=233332
[193] <-> 8 [233332]
194+491=685
685+586=1271
1271+1721=2992
[194] <-> 3 [2992]
195+591=786
786+687=1473
1473+3741=5214
5214+4125=9339
[195] <-> 4 [9339]
TI 57 avec adaptation d'une pile LR9 et une originale, accus HS; Newton MP 120FR, MP 2100US, MP 130US...
[***Apple //e, 7100, 8500, Atari Mega ST1 ***], PB-540c, PISMO, [***CPC-6128, MO5***]... et bien d'autres trucs
[--- plus ---]
http://astrophoto.free.fr/
Re: Misez p'tit Optimisez n°57 : palindromes
Bravo !!
- gege
- Fonctionne à 14400 bauds
- Messages : 7148
- Enregistré le : 31 janv. 2008 14:24
- Localisation : Banlieue Paârisienne
- Contact :
Re: Misez p'tit Optimisez n°57 : palindromes
C'est beau !!
Bravo
G.E.
Re: Misez p'tit Optimisez n°57 : palindromes
Code : Tout sélectionner
0→F ' Test si Fin du programme
Repeat F=1 ' On répète jusqu'à avoir palindrome
0→C:dim(L₁→T ' C = retenu (= Carry)
0→dim(L₂ ' L₂ contiendra le prochain nombre
For(I,1,T
C+L₁(I)+L₁(T-I+1→R ' retenu + chiffre + son inverse
remainder(R,10→L₂(I ' Reste modulo 10
int(R/10→C ' La retenue suivante
End
If C>0:1→L₂(T+1 ' Si retenue finale, on ajoute 1 à la liste
1→I:1→S:dim(L₂→T
While S=1 and I≤T ' On teste si c'est un palindrome
If L₂(I)≠L₂(T-I+1:0→S ' Si différents, on sort de la boucle
1+I→I
End
L₂→L₁
If S=1:1→F ' Si c'est un palindrome, fin du programme
End
Disp L₁
Code : Tout sélectionner
Input N:1→I
0→dim(L₁
While N>0
remainder(N,10→L₁(I
int(N/10→N:1+I→I
End
Pour entrer le nombre N = 1000000038990407538 on passe déjà par stats - modifier :
Et on retrouve bien 4962760484013649979398288579669997647989565178566564484465665871565989746799966975882893979463104840672694
Chrono : Il aura fallu 4' 20" à ma TI-83 Premium Ed Python pour trouver les 119 chiffres du palindrome obtenu en partant de 10022000904998799523.
Re: Misez p'tit Optimisez n°57 : palindromes
Code : Tout sélectionner
{1 2 3}
4
+
Résultat : {1 2 3 4}
{1 2 3}
4
ADD
Résultat : {5 6 7}
Code : Tout sélectionner
{1 2 3}
4
ADD
Résultat : {1 2 3 4}
{1 2 3}
4
+
Résultat : {5 6 7}
Code : Tout sélectionner
« WHILE DUP REVLIST DUP2 ≠ ' On teste si c'est un palindrome
REPEAT
ADD REVLIST 0 SWAP + ' Si non addition avec symétrique et ajout d'un 0 au début
WHILE DUP 10 ≥ ' On cherche ceux qui dépassent 10
DUP 1 POS ' S'il reste au moins un "1"
REPEAT
DUP UNROT 10 * - ' On supprime la dizaine
SWAP TAIL 0 + ADD ' et ajout des retenues avec décalage
END DROP ' On recommence tant qu'il reste des nb ≥ 10
DUP HEAD NOT « TAIL » IFT ' Suppression éventuelle du 0 initial
END DROP » 'M57 STO
Code : Tout sélectionner
{8 9}
M57
Résultat en 10 secondes : {8 8 1 3 2 0 0 0 2 3 1 8 8}
{1 0 0 2 2 0 0 0 9 0 4 9 9 8 7 9 9 5 2 3 }
M57
Résultat en 9 minutes 30 secondes
Code : Tout sélectionner
« WHILE DUP REVLIST DUP2 ≠
REPEAT
+ REVLIST 0 SWAP ADD
WHILE DUP 10 ≥
DUP 1 POS
REPEAT
DUP UNROT 10 * -
SWAP TAIL 0 ADD +
END DROP
DUP HEAD NOT « TAIL » IFT
END DROP »
Code : Tout sélectionner
{8 9}
M57
Résultat en moins d'une seconde : {8 8 1 3 2 0 0 0 2 3 1 8 8}
{1 0 0 2 2 0 0 0 9 0 4 9 9 8 7 9 9 5 2 3 }
M57
Résultat en 4 secondes (environ 150 fois plus rapide)