Code : Tout sélectionner
U : « → N 'IFTE(N==1,7,IFTE(FP(N/2)==0,3*U(N/2),2*U((N-1)/2)-1))' »
Modérateur : Politburo
Code : Tout sélectionner
U : « → N 'IFTE(N==1,7,IFTE(FP(N/2)==0,3*U(N/2),2*U((N-1)/2)-1))' »
Oui, je me souviens qu'en supprimant tous les espaces, on pouvait gagner des octets.
Bof! Pour une fois que ton programme ne fait que 4 lignes et qu'il n'y a pas de spaghettis (les seuls GOTO pointent vers le début de la ligne) je ne suis pas sûr que ce soit utile ! Les GOTOs c'est bien - C.Ret la girouette
Code : Tout sélectionner
1 P=1:U=7:INPUT N
2 IF N>=2 THEN N=INT(N)/2:P=2*P+N-INT(N):GOTO 2
3 IF P=1 THEN PRINT U:PAUSE:END ELSE IF P>INT(P) THEN U=2*U-1 ELSE U=3*U
4 P=INT(P)/2 :GOTO 3
J'ai eut le même type de blague ce matin, j'ai tapé ton programme. Puis j'ai voulu voir ce qui ce passe lorsque l'on retire les espaces entre les mots clefs. Mauvaise idée, la TI-74 ne reconnait plus les instructions mais tout est gardé en mémoire sous forme de suite de caracpresqutères.
… SAVE doit être suivi d'un nom ET ce nom va prendre de la place en mémoire !
Code : Tout sélectionner
10 VAC:A=1:INPUT N
20 C=1-2*FRAC(N/2):N=(N-1+C)/2:A=A/(2+C):B=(B+1-C)/(2+C):IF N≠1 THEN 20
30 PRINT 7/A-B/A
Voici donc l'adaptation pour SHARP PC-1211 qui ne fait que 60 octets:antoine a écrit : ↑09 août 2022 17:59Code : Tout sélectionner
10 VAC:A=1:INPUT N 20 C=1-2*FRAC(N/2):N=(N-1+C)/2:A=A/(2+C):B=(B+1-C)/(2+C):IF N≠1 THEN 20 30 PRINT 7/A-B/A
Code : Tout sélectionner
1:A=1,B=0:INPUT N
2:N=INT N/2:IF N>=1 LET P=N>INT N,B=B+AP,A=3A-AP:GOTO 2
3:PRINT 7A-B
Code : Tout sélectionner
(initial) u(574)=u(574) A=1, B=0 u(574)= 1*u(574)-0
( pair ) u(574)=3*u(287) p=0 A=3, B=0 u(574)= 3*u(287)-0
(impair) u(574)=3*(2*u(143)-1) p=1 A=6, B=3 u(574)= 6*u(143)-3
(impair) u(574)=3*(2*(2*u(71)-1)-1) p=1 A=12, B=9 u(574)= 12*u( 71)-9
(impair) u(574)=3*(2*(2*(2*u(35)-1)-1)-1) p=1 A=24, B=21 u(574)= 24*u( 35)-21
(impair) u(574)=3*(2*(2*(2*(2*u(17)-1)-1)-1)-1) p=1 A=48, B=45 u(574)= 48*u( 17)-45
(impair) u(574)=3*(2*(2*(2*(2*(2*u(8)-1)-1)-1)-1)-1) p=1 A=96, B=93 u(574)= 96*u( 8 )-93
( pair ) u(574)=3*(2*(2*(2*(2*(2*3*u(4)-1)-1)-1)-1)-1) p=0 A=288, B=93 u(574)= 288*u( 4 )-93
( pair ) u(574)=3*(2*(2*(2*(2*(2*3*3*u(2)-1)-1)-1)-1)-1) p=0 A=864, B=93 u(574)= 864*u( 2 )-93
( pair ) u(574)=3*(2*(2*(2*(2*(2*3*3*3*u(1)-1)-1)-1)-1)-1) p=0 A=2592, B=93 u(574)=2592*u( 1 )-93
(unitaire) u(574)=3*(2*(2*(2*(2*(2*3*3*3* 7 -1)-1)-1)-1)-1) = 18051 =2592* 7 -93
C'est un truc qui finalement ne marche pas, j'ai passé pas mal de temps à tenter de trouver une relation algébrique directe. Ou presque. Il y avait comme une décomposition en facteurs premiers qui, un moment , m'a semblée fournir une formule directe...