π
<-

News 2025

News 2024
June (4)
May (4)
April (2)

News 2023
August (2)
July (3)
June (3)
May (7)
April (2)
March (3)

News 2022
August (3)
July (1)
June (4)
May (1)
April (6)
March (4)
January (12)

News 2021
August (8)
July (28)
June (20)
May (19)
April (25)
March (15)

News 2020
August (16)
July (13)
June (17)
May (38)
April (21)
March (17)

News 2019
August (10)
July (3)
June (4)
May (11)
April (8)
March (18)
January (14)

News 2018
August (5)
July (1)
June (9)
May (10)
April (2)
March (14)
January (12)

News 2017
August (10)
July (14)
June (14)
May (11)
April (9)
March (12)
January (11)

News 2016
October (10)
August (8)
July (4)
June (8)
May (14)
April (9)
March (13)
January (11)

News 2015
October (15)
August (11)
July (4)
June (7)
May (12)
April (6)
March (11)

News 2014
August (2)
July (4)
June (2)
May (5)
April (4)
March (5)

News 2013
August (6)
July (6)
June (8)
May (14)
April (24)
March (16)
January (10)

News 2012
October (11)
August (6)
July (7)
June (8)
May (16)
April (16)
March (6)

News 2011
August (4)
July (4)
June (11)
May (5)
April (2)
March (6)

News 2010
July (1)
June (1)
May (2)
April (1)

News 2009
August (2)
April (1)

Programme révolutionnaire Distance avec étapes + rédaction

New postby critor » 16 Oct 2016, 13:25

Depuis la sortie de la version système 5.2, le langage de programmation de la TI-83 Premium CE permet de réaliser des affichages juxtaposant textes et nombres.
Des capacités totalement inédites sur un modèle de milieu de gamme ! :bj:

En pratique, cela veut dire qu'il est maintenant très facile de réaliser des programmes de calcul donnant de façon claire les différentes étapes conduisant à leur résultat. :bj:
Dans un article précédent, nous te montrions ce que cela pouvait donner avec un programme de calcul des coordonnées du milieu en Seconde.

7386Aujourd'hui nous restons sur le niveau Seconde mais avec cette fois-ci un programme de calcul de la distance entre deux points dans un repère orthonormal, encore une fois le meilleur programme de ce genre jamais sorti sur une calculatrice graphique ! :bj:
  • contrairement à bon nombre d'autres programmes du genre, possibilité de préciser toi-même les noms des points, et donc d'obtenir directement une rédaction correcte ! :bj:
  • présentation correcte prête à être recopiée ! :bj:
  • présentation claire avec un code couleur des données, du raisonnement, des formules du cours recontextualisées, des calculs intermédiaires et des résultats ! :)
  • jusqu'à 4 étapes de calculs intermédiaires selon les simplifications possibles ! :bj:
  • avec la touche :f11: tu peux cibler au choix un résultat en écriture exacte ou décimale :)
  • en fin de programme, le résultat final est repris sur l'écran de calculs, et même pour plus de lisibilité détaillé en écriture naturelle pour les formes exactes éventuelles ! :bj:
  • fractions, racines carrées, sommes avec racines, quotients avec racines... rien ne lui fait peur ! :#tritop#:

Bien évidemment... ce programme sera banni de la mémoire lors de l'activation du mode examen à partir de 2018. Pour le reste de l'année scolaire, c'est à toi de décider de t'appuyer dessus ou pas.

Téléchargement : archives_voir.php?id=694544

Résultats concours 2016 : le Tour du monde en 83 Premium CE

New postby critor » 09 Oct 2016, 20:22

7318Voici enfin ce soir les résultats de notre concours de rentrée 2016, le Tour du monde en 83 Premium CE.
Il s'agissait donc d'aider notre héroïne, Sophia Flegg, à réaliser un tour du monde sans escale. Pour cela, on te demandait donc l'expression d'une fonction définissant l'itinéraire en question.

Rien que dans l'énoncé de ce concours, tu avais d'énormes indices destinés à t'aider dans ta quête, et il est grand temps de les révéler :

Et oui car Sophia Flegg n'était que l'anagramme de Phileas Fogg, gentleman anglais héros du célèbre roman de Jules Verne de 1872, Le tour du monde en 80 jours.
La lecture du roman t'apportait nombre d'indices si tu décidais de contourner l'Eurasie par le sud, notamment en longeant la botte italienne, empruntant le canal de Suez, puis traversant la mer Rouge dans toute sa longueur.

De plus, on découvre au collège que le plus court chemin est la ligne droite, et lorsqu'il y a des contraintes une trajectoire qui peut se ramener par transformations à une ligne droite.

Enfin, on étudie en fin de collège les fonctions affines, et une idée pouvait donc être une fonction affine par morceaux.

Voici ci-contre une trajectoire respectant ces trois derniers points, et qui permettait déjà sans optimisation bien poussée de terminer le tour du monde avec encore 2428,4€ dans la tirelire ! :bj:
Code: Select all
(X≥0 et X<0.13)(1.1538462(X-0)+0)+(X≥0.13 et X<1.1)(0.83505155(X-0.13)+0.15)+(X≥1.1 et X<1.2)(0(X-1.1)+0.96)+(X≥1.2 et X<1.37)(­2.4117647(X-1.2)+0.96)+(X≥1.37 et X<1.5)(­13.307692(X-1.37)+0.55)+(X≥1.5 et X<2.14)(­1.28125(X-1.5)+­1.18)+(X≥2.14 et X<2.45)(­1.6129032(X-2.14)+­2)+(X≥2.45 et X<3.9)(­0.49655172(X-2.45)+­2.5)+(X≥3.9 et X<4.13)(­2.9565217(X-3.9)+­3.22)+(X≥4.13 et X<4.25)(­2.0833333(X-4.13)+­3.9)+(X≥4.25 et X<5.1)(­1.8(X-4.25)+­4.15)+(X≥5.1 et X<5.7)(0.26666667(X-5.1)+­5.68)+(X≥5.7 et X<12.4)(­0.38507463(X-5.7)+­5.52)+(X≥12.4 et X<14.1)(0.17647059(X-12.4)+­8.1)+(X≥14.1 et X<15.13)(0.33980583(X-14.1)+­7.8)+(X≥15.13 et X<15.41)(1.1785714(X-15.13)+­7.45)+(X≥15.41 et X<30.76)(0.074918567(X-15.41)+­7.12)+(X≥30.76 et X<30.91)(2(X-30.76)+­5.97)+(X≥30.91 et X<32.1)(0.98319328(X-30.91)+­5.67)+(X≥32.1 et X≤40)(0.51898734(X-32.1)-4.5)
Même si ce concours n'imposait pas de programmation, le sujet était ouvert et tous les moyens envisageables. Pour faciliter l'écriture de ce genre de fonction, on pouvait par exemple faire un programme la générant automatiquement à partir d'une liste de points. Voici celui que nous avons utilisé pour la fonction précédente.

Voyons donc maintenant comment les participants ont fait et jusqu'où ils sont allés.



10ème, Bartmaniaque a choisi de mettre le cap plein sud, et une fois le continent africain franchi le reste est une promenade de santé.
Son trajet fait 54784km dont un remorquage non négligeable de 7768km. Il lui reste au final 2287,5€.
Code: Select all
(X≤2)*(­2.5X-6.7)+(X>2)*(­0.1X-11.1)*(X<20)+(X≥20)*(0.7X-27)*(X<37.84)+(X≥37.84)*­0.514


9ème, Clifward pour sa part choisit de contourner l'Eurasie par le nord, puis de mettre la barre au sud pour aller franchir l'Amérique centrale sans escale au niveau du canal de Panama.
Son trajet reste donc conséquent avec 52059km, mais dont seulement 869km de remorquage. Il termine avec 2373,7€.
Code: Select all
(X≤0.286)*(0.5X)+(X≥0.286 et X≤0.57)*(1.529X-0.294)+(X≥0.57 et X≤1.833)*(1.847X+0.947)+(X≥1.833 et X≤7.571)*(0.494X+3.428)+(X≥7.571 et X≤11)*(7.167)+(X≥11 et X≤11.5)*(0.666X-0.167)+(X≥11.5 et X≤14)*(­0.067X+8.267)+(X≥14 et X≤16)*(­0.166X+9.667)+(X≥16 et X≤19)*(­0.673X+17.77)+(X≥19 et X≤21.33)*(­0.574X+15.81)+(X≥21.33 et X≤21.5)*(­13.714X+296.11)+(X≥21.5 et X≤22)*(­2.57X+56.57)+(X≥22 et X≤25.714)*(­0.808X+17.769)+(X≥25.714 et X≤30.286)*(­0.75X+16.286)+(X≥30.286 et X≤32.571)*(1.125X-40.5)+(X≥32.571)*(0.519X-20.769)


8ème, vince960 met lui aussi d'abord le cap au nord, mais ose à la différence affronter le grand nord canadien où il n'effectue qu'une très courte escale.
Son voyage ne fait donc que 47543km, dont 1419km de remoquage. Il nous revient avec 2433,4€.
Code: Select all
(1.4X)(X≥0)(X<.7)+(1.5X+1.4)(X≥.7)(X<2.2)+(.474X+3.657)(X≥2.2)(X<7.7)+(.04X+7)(X≥7.7)(X<11)+(.16X+5.6)(X≥11)(X<12)+(­.096X+8.673)(X≥12)(X<26.26)+(­.197X+11.266)(X≥26.26)(X<27.02)+(­.6564X+23.68)(X≥27.02)(X<27.47)+(.0984X+2.9429)(X≥27.47)(X<28.98)+(5.8)(X≥28.98)(X<29.9)+(5.7)(X≥29.9)(X<31.55)+(5.5)(X≥31.55)(X<32)+(5.3)(X≥32)(X<32.75)+(­1.89X+66.6)(X≥32.75)(X<34.5)+(­.353X+13.567)(X≥34.5)(X<39)+(­.5)(X≥39)(X<39.9)+(­.4)(X≥39.9)(X<39.95)+(­.35)(X≥39.95)(X<40)+(0)(X=40)


7ème, Grosged adopte pour sa part un trajet similaire à celui de Clifward, n'osant pas braver les conditions extrêmes du Canada.
Il fait légèrement mieux puisqu'il lui reste à l'arrivée 2478,8€.
Code: Select all
2.83X(X<1.5)+(3.93+.53(X-1.5))(X≥1.5 et X<7.8)+7.2(X≥7.8 et X<11.2)+(X≥11.2 et X<12)(2.8+.4X)+(8.4-.1X)(X≥12 et X<16.2)+(X≥16.2 et X<21.2)(10.4-.628(X-10.4))+(X≥21.2 et X<21.9)(3.6-(X-21.2)5.5)+(X≥21.9 et X<30.6)(.1-(X-21.9).76)+(X≥30.6 et X<31)(­6.4+(X-30.6)3)-5.2(X≥31 et X<32.5)+(X≥32.5 et X<39.2)(­5.2+.6(X-32.5))+(X≥39.2)(­5.2+(X-36)1.3


6ème, cheuble choisit quant à lui avec courage un itinéraire comparable à celui de vince960.
Il fait là encore un peu mieux, optimisant ses bornes et paramètres jusqu'à 2 et 4 décimales, arrivant à s'économiser 2495€.
Code: Select all
(X<0.90)(3X)+(X>0.90 et X<2.27)(1.8832X+0.6651)+(X>2.27 et X<7.57)(0.4283X+3.9677)+(X>7.57 et X<11.51)(0.0373X+6.9271)+(X>11.51 et X<12.87)(7.46)+(X>12.87 et X<26.06)(­0.1106X+8.8847)+(X>26.06 et X<27.42)(6)+(X>27.42 et X<28.48)(5.74)+(X>28.48 et X<30.15)(5.79)+(X>30.15 et X<32.42)(5.74)+(X>32.42 et X<35.28)(­1.779X+63.4174)+(X>35.28 et X<39)(­0.4054X+15.3108)+(X>39 et X<39.99)(­0.5)


5ème, Anonyme0 choisit un itinéraire très voisin de Grosged et Clifward, montant cette fois-ci à 2503,2€ sans besoin d'une optimisation aussi poussée.
Code: Select all
0(X=0)+0.2(X>0 et X<0.3)+(X*6-0.3)(X>0.3 et X<0.6)+(X*1.9+1)(X>0.6 et X<2)+(X*0.45+3.76)(X>2 et X<8)+7.2(X>8 et X<11.5)+7.5(X>11.5 et X<12.57)+(­X*0.2+10)(X>12.57 et X<16.21)+(­X*0.69+18.2)(X>16.21 et X<21.45)+(­X*0.98+22.5)(X>21.45 et X<28)+(8.6876-0.48X)(X>28 et X<30.75)+(­67.42+2X)(X>30.75 et X<31.2)+­5(X>31.2 et X<31.81)+(­18.46+0.44X)(X>31.81 et X<39.39)+­0.51(X>39.39 et X<39.9)+0(X>39.9)+0(X>39.9)


En 4ème position, avec StarTrekVoyager, on affronte à nouveau le même raccourci du grand nord canadien.
L'optimisation est ici bien poussée, avec des bornes et paramètres jusuqu'à 3 et 9 décimales, nous faisant monter à 2506,9€.
Code: Select all
(1.142857143*(X-0)+0)*(0<X et X≤0.175)+(5.636363636*(X-0.175)+0.2)*(0.175<X et X≤0.45)+(1.864661654*(X-0.45)+1.75)*(0.45<X et X≤1.78)+(0.5*(X-1.78)+4.23)*(1.78<X et X≤7.96)+(0.01447178*(X-7.96)+7.32)*(7.96<X et X≤11.415)+(0.4293785311*(X-11.415)+7.37)*(11.415<X et X≤12.3)+(­0.1205385165*(X-12.3)+7.75)*(12.3<X et X≤26.818181)+(­0.3849999615*(X-26.818181)+6)*(26.818181<X et X≤27.727272)+(0.0841688299*(X-27.727272)+5.65)*(27.727272<X et X≤29.45)+(0*(X-29.45)+5.795)*(29.45<X et X≤29.9)+(­0.2*(X-29.9)+5.795)*(29.9<X et X≤30.1)+(0*(X-30.1)+5.755)*(30.1<X et X≤31.4)+(­0.8772727273*(X-31.4)+5.755)*(31.4<X et X≤32.5)+(­1.605882353*(X-32.5)+4.79)*(32.5<X et X≤34.2)+(­0.7714285714*(X-34.2)+2.06)*(34.2<X et X≤35.25)+(­0.4133333333*(X-35.25)+1.25)*(35.25<X et X≤39)+(­0.1671671672*(X-39)+­0.3)*(39<X et X≤39.999)+(467*(X-39.999)+­0.467)*(39.999<X et X≤40)
Comment as-tu fait ?
Show/Hide spoilerAfficher/Masquer le spoiler
StarTrekVoyager wrote:j'ai juste fait un petit programme en Basic qui se sert de la fonction toString( et qui transforme deux listes (en l'occurence L1 et L2) contenant les coordonnées en fonction piecewise. Au final, je suis passé par le Canada, et au fil d’optimisations pointilleuses et de l'aide de Hayleia ( :troll: ), j'ai fini par atteindre 2507, ce dont je suis fier car je suis le seul à avoir atteint ce score via le Passage du Nord-Ouest, et seulement 2 pixels rouges au milieu du trajet :P


3ème, Wistaro nous reprend le trajet passant au nord puis au Panama, et l'optimise à fond aux limites de la calculatrice avec des bornes et paramètres jusqu'à 12 décimales.
Ce travail énorme lui fait gagner 2520,8€.
Code: Select all
(X≥0 et X<0.39040072)*(1.1154517614619X+0)+(X≥0.39040072 et X<0.6159999999999)*(6.2523551901438X+­2.0054507971278)+(X≥0.6159999999999 et X<1.5151817999999)*(2.0589510374876X+0.57768616090792)+(X≥1.5151817999999 et X<2.272727273)*(1.0357190795859X+2.1280686006988)+(X≥2.272727273 et X<8.18181833)*(0.48688104011428X+3.3754277814656)+(X≥8.18181833 et X<10.31757576008)*(0.00324894152321X+7.3324177506944)+(X≥10.31757576008 et X<12.459242419992)*(0.0651476536958X+6.6937730984024)+(X≥12.459242419992 et X<16.818100001)*(­0.24931238202496X+10.611706914846)+(X≥16.818100001 et X<21.21212121)*(­0.67863042907404X+17.832020762352)+(X≥21.21212121 et X<21.3436666726)*(­5.0339797617236X+110.2182187184)+(X≥21.3436666726 et X<21.66599999989)*(­5.0326587114136X+110.19002266093)+(X≥21.66599999989 et X<22.27)*(­1.510660628864X+33.8824122048)+(X≥22.27 et X<29.24242424)*(­0.82065043104722X+18.515885099421)+(X≥29.24242424 et X<31.21212121)*(­0.4781740360904X+8.5010450659072)+(X≥31.21212121 et X<31.730666669964)*(1.7532633637234X+­61.146849529606)+(X≥31.730666669964 et X<33.630000001)*(0.60265048290128X+­24.637135742072)+(X≥33.630000001 et X<39.613939381)*(0.6443365292748X+­26.039037481656)+(X≥39.613939381 et X<39.999)*(0.26151722801858X+­10.874056887815)+(X≥39.999 et X<40)*(413.6292843X+­16545.171372)
Comment t'y es-tu pris ?
Show/Hide spoilerAfficher/Masquer le spoiler
Wistaro wrote:J'ai tout d'abord commencé par développer en langage TI-Basic un programme permettant de générer une trajectoire avec une série de points. Le fonctionnement est plutôt simple: on va tracer une fonction affine entre chaque points.
Pour cela, je vais d'abord trouver le coefficient directeur de cette droite en faisant la différence des valeurs en Y sur la différence des valeurs en X.
Pour trouver l'ordonnée à l'origine (B), il suffit de faire , pour un point, Y moins le coefficient directeur multiplié par la valeur de X.
Nous avons donc, entre 2 points A et B, une équation de la forme aX+B
Reste à faire cela entre les points B et C, C et D, etc...

Il faut ensuite appliquer telle fonction sur tel intervalle.
Donc, j'ai fais ceci:
(X >= POINT "gauche" and X< POINT suivant "droite") * (aX+B)
Ainsi, le premier point sera évalué avec la fonction aX+B.
Le second point, lui, sera évalué avec la fonction suivante, donc a'X+b'.

L'inverse pouvait provoquer des bugs, c'est pour cela que j'ai choisi ce sens.

Si l'on a 2 listes, l'une comportant les X (x1,x2,x3,x4...) et l'autres les Y (y1, y2, y3, y4, ...), la fonction totale se présente sous la forme:
(X >= x1 and X< x2) * (aX+B) + (X >= x2 and X< x3) * (a'X+B') + (X >= x3 and X< x4) * (a''X+B'')....

La génération de la fonction fonctionne. Il faut désormais définir la trajectoire.
J'ai tout d'abord commencé sur papier.
J'ai imprimé la carte en grand format et essayé de tracer à la règle (car la droite est la trajectoire la plus courte) la meilleure trajectoire.
Il ne restait ensuite qu'à stocker dans une liste les différentes coordonnées des points de ma trajectoire, puis d'appliquer mon programme de génération de fonction.
Au fur et à mesure, j'ai proposé divers trajectoires, m'améliorant de version en version. J'ai optimisé ma manière de travailler, en utilisant un double écran (sur un écran, la carte sur CEmu, avec la résolution quasi-maximale et sur l'autre le clavier).
J'ai finis par arriver à la limite de mon programme, vers les 2 500.
Pour continuer à grossir le score, j'ai conçu un autre algorithme pour affiner les points à 0.0001 près.
Le fonctionnement était trivial.Pour chaque point, il augmentait de 0.0001 sur Y, puis lançait la génération, puis lançait TOUR83, obtenait le score. Si le score était supérieur au score précédant, on recommence en augmentant de 0.001. Autrement, on diminuait.

Ce programme étant relativement lent, j'ai finis par affiner à la main tout les points , pour enfin arriver au score de 2 520,8.


Avec cette technique et cette trajectoire, je doute que l'on puisse aller plus loin.


2ème, Hayleia nous arrache 2574,0€.
Il s'agit à nouveau de partir vers le nord et d'affronter le Canada, mais à la différence de ses adversaires, tel un TASseur (Tool Assisted Speedrunneur) de jeux vidéo, Hayleia arrive à trouver au pixel près une façon de traverser le Canada sans escale !
Ses paramètres sont aussi optimisés à fond jusqu'à 12 décimales.
Mais sa stratégie est également bien différente des autres candidats. Au lieu d'être définie comme un assemblage de segments, sa fonction est ici définie point par point, pour chacune des 265 colonnes de pixels de la zone graphique, ce qui bien évidemment donne une équation ci-dessous beaucoup plus longue.
Une autre astuce apparemment payante, est également l'utilisation de la variable système ΔX accessible via :f44: :f105:, qui contient la distance séparent deux pixels consécutifs sur une même ligne.
Code: Select all
0+(X=0ΔX)0+(X=1ΔX)0.167530487805+(X=2ΔX)0.637256097561+(X=3ΔX)1.122134146341+(X=4ΔX)1.622164634146+(X=5ΔX)2.137347560976+(X=6ΔX)2.39493902439+(X=7ΔX)2.652530487805+(X=8ΔX)2.91012195122+(X=9ΔX)3.167713414634+(X=10ΔX)3.425304878049+(X=11ΔX)3.682896341463+(X=12ΔX)3.955640243903+(X=13ΔX)4.107164634146+(X=14ΔX)4.25868902439+(X=15ΔX)4.334451219512+(X=16ΔX)4.410213414634+(X=17ΔX)4.485975609756+(X=18ΔX)4.561737804878+(X=19ΔX)4.6375+(X=20ΔX)4.713262195122+(X=21ΔX)4.789024390244+(X=22ΔX)4.864786585366+(X=23ΔX)4.940548780488+(X=24ΔX)5.01631097561+(X=25ΔX)5.092073170732+(X=26ΔX)5.167835365854+(X=27ΔX)5.243597560976+(X=28ΔX)5.3193597560972+(X=29ΔX)5.39512195122+(X=30ΔX)5.4708841463412+(X=31ΔX)5.5466463414632+(X=32ΔX)5.6224085365852+(X=33ΔX)5.6981707317072+(X=34ΔX)5.7739329268292+(X=35ΔX)5.8496951219512+(X=36ΔX)5.9254573170732+(X=37ΔX)6.0012195121952+(X=38ΔX)6.0769817073172+(X=39ΔX)6.1527439024392+(X=40ΔX)6.2285060975612+(X=41ΔX)6.3042682926832+(X=42ΔX)6.3800304878052+(X=43ΔX)6.4709451219512+(X=44ΔX)6.5618597560972+(X=45ΔX)6.652774390244+(X=46ΔX)6.74368902439+(X=47ΔX)6.8346036585372+(X=48ΔX)6.9103658536592+(X=49ΔX)6.98612804878+(X=50ΔX)7.0618902439032+(X=51ΔX)7.137652439024+(X=52ΔX)7.137652439024+(X=53ΔX)7.137652439024+(X=54ΔX)7.137652439024+(X=55ΔX)7.137652439024+(X=56ΔX)7.137652439024+(X=57ΔX)7.137652439024+(X=58ΔX)7.1528048780492+(X=59ΔX)7.1679573170732+(X=60ΔX)7.1831097560972+(X=61ΔX)7.198262195122+(X=62ΔX)7.213414634146+(X=63ΔX)7.2285670731712+(X=64ΔX)7.2437195121952+(X=65ΔX)7.25887195122+(X=66ΔX)7.274024390244+(X=67ΔX)7.289176829268+(X=68ΔX)7.3043292682932+(X=69ΔX)7.3194817073172+(X=70ΔX)7.3346341463412+(X=71ΔX)7.349786585366+(X=72ΔX)7.36493902439+(X=73ΔX)7.3800914634152+(X=74ΔX)7.3952439024392+(X=75ΔX)7.4103963414632+(X=76ΔX)7.425548780488+(X=77ΔX)7.440701219512+(X=78ΔX)7.440701219512+(X=79ΔX)7.440701219512+(X=80ΔX)7.440701219512+(X=81ΔX)7.440701219512+(X=82ΔX)7.440701219512+(X=83ΔX)7.440701219512+(X=84ΔX)7.440701219512+(X=85ΔX)7.440701219512+(X=86ΔX)7.440701219512+(X=87ΔX)7.440701219512+(X=88ΔX)7.440701219512+(X=89ΔX)7.440701219512+(X=90ΔX)7.440701219512+(X=91ΔX)7.440701219512+(X=92ΔX)7.440701219512+(X=93ΔX)7.440701219512+(X=94ΔX)7.440701219512+(X=95ΔX)7.440701219512+(X=96ΔX)7.440701219512+(X=97ΔX)7.440701219512+(X=98ΔX)7.440701219512+(X=99ΔX)7.440701219512+(X=100ΔX)7.440701219512+(X=101ΔX)7.440701219512+(X=102ΔX)7.440701219512+(X=103ΔX)7.440701219512+(X=104ΔX)7.440701219512+(X=105ΔX)7.440701219512+(X=106ΔX)7.440701219512+(X=107ΔX)7.440701219512+(X=108ΔX)7.440701219512+(X=109ΔX)7.440701219512+(X=110ΔX)7.440701219512+(X=111ΔX)7.440701219512+(X=112ΔX)7.440701219512+(X=113ΔX)7.440701219512+(X=114ΔX)7.440701219512+(X=115ΔX)7.440701219512+(X=116ΔX)7.440701219512+(X=117ΔX)7.440701219512+(X=118ΔX)7.440701219512+(X=119ΔX)7.440701219512+(X=120ΔX)7.440701219512+(X=121ΔX)7.440701219512+(X=122ΔX)7.440701219512+(X=123ΔX)7.440701219512+(X=124ΔX)7.440701219512+(X=125ΔX)7.440701219512+(X=126ΔX)7.440701219512+(X=127ΔX)7.440701219512+(X=128ΔX)7.440701219512+(X=129ΔX)7.440701219512+(X=130ΔX)7.440701219512+(X=131ΔX)7.440701219512+(X=132ΔX)7.440701219512+(X=133ΔX)7.440701219512+(X=134ΔX)7.440701219512+(X=135ΔX)7.440701219512+(X=136ΔX)7.440701219512+(X=137ΔX)7.440701219512+(X=138ΔX)7.440701219512+(X=139ΔX)7.440701219512+(X=140ΔX)7.440701219512+(X=141ΔX)7.440701219512+(X=142ΔX)7.440701219512+(X=143ΔX)7.440701219512+(X=144ΔX)7.440701219512+(X=145ΔX)7.440701219512+(X=146ΔX)7.440701219512+(X=147ΔX)7.440701219512+(X=148ΔX)7.440701219512+(X=149ΔX)7.440701219512+(X=150ΔX)7.440701219512+(X=151ΔX)7.440701219512+(X=152ΔX)7.440701219512+(X=153ΔX)7.440701219512+(X=154ΔX)7.440701219512+(X=155ΔX)7.440701219512+(X=156ΔX)7.440701219512+(X=157ΔX)7.440701219512+(X=158ΔX)7.440701219512+(X=159ΔX)7.440701219512+(X=160ΔX)7.440701219512+(X=161ΔX)7.440701219512+(X=162ΔX)7.440701219512+(X=163ΔX)7.440701219512+(X=164ΔX)7.440701219512+(X=165ΔX)7.440701219512+(X=166ΔX)7.440701219512+(X=167ΔX)7.440701219512+(X=168ΔX)7.440701219512+(X=169ΔX)7.440701219512+(X=170ΔX)7.440701219512+(X=171ΔX)7.440701219512+(X=172ΔX)7.440701219512+(X=173ΔX)7.440701219512+(X=174ΔX)7.440701219512+(X=175ΔX)7.440701219512+(X=176ΔX)7.440701219512+(X=177ΔX)7.440701219512+(X=178ΔX)7.440701219512+(X=179ΔX)7.440701219512+(X=180ΔX)7.440701219512+(X=181ΔX)7.274024390244+(X=182ΔX)7.198262195122+(X=183ΔX)7.1225+(X=184ΔX)7.0921951219512+(X=185ΔX)7.0618902439032+(X=186ΔX)7.031585365854+(X=187ΔX)7.0012804878052+(X=188ΔX)6.970975609756+(X=189ΔX)6.970975609756+(X=190ΔX)6.970975609756+(X=191ΔX)6.98612804878+(X=192ΔX)6.9103658536592+(X=193ΔX)6.8346036585372+(X=194ΔX)6.728536585366+(X=195ΔX)6.6224695121952+(X=196ΔX)6.5315548780492+(X=197ΔX)6.2133536585372+(X=198ΔX)5.9103048780492+(X=199ΔX)5.7587804878052+(X=200ΔX)5.74362804878+(X=201ΔX)5.728475609756+(X=202ΔX)5.713323170732+(X=203ΔX)5.6981707317072+(X=204ΔX)5.6830182926832+(X=205ΔX)5.6678658536592+(X=206ΔX)5.652713414634+(X=207ΔX)5.63756097561+(X=208ΔX)5.6224085365852+(X=209ΔX)5.4708841463412+(X=210ΔX)5.3193597560972+(X=211ΔX)5.167835365854+(X=212ΔX)5.01631097561+(X=213ΔX)4.864786585366+(X=214ΔX)4.713262195122+(X=215ΔX)4.561737804878+(X=216ΔX)4.3647560975612+(X=217ΔX)4.167774390244+(X=218ΔX)3.970792682927+(X=219ΔX)3.77381097561+(X=220ΔX)3.576829268293+(X=221ΔX)3.379847560976+(X=222ΔX)3.182865853659+(X=223ΔX)2.985884146341+(X=224ΔX)2.788902439024+(X=225ΔX)2.591920731707+(X=226ΔX)2.39493902439+(X=227ΔX)2.197957317073+(X=228ΔX)2.000975609756+(X=229ΔX)1.819146341463+(X=230ΔX)1.66762195122+(X=231ΔX)1.561554878049+(X=232ΔX)1.455487804878+(X=233ΔX)1.364573170732+(X=234ΔX)1.334268292683+(X=235ΔX)1.303963414634+(X=236ΔX)1.273658536585+(X=237ΔX)1.243353658537+(X=238ΔX)1.213048780488+(X=239ΔX)1.182743902439+(X=240ΔX)1.15243902439+(X=241ΔX)1.122134146341+(X=242ΔX)1.091829268293+(X=243ΔX)1.061524390244+(X=244ΔX)1.031219512195+(X=245ΔX)1.000914634146+(X=246ΔX)0.970609756097+(X=247ΔX)0.940304878049+(X=248ΔX)0.91+(X=249ΔX)0.879695121951+(X=250ΔX)0.849390243903+(X=251ΔX)0.819085365854+(X=252ΔX)0.788780487805+(X=253ΔX)0.758475609756+(X=254ΔX)0.728170731707+(X=255ΔX)0.713018292683+(X=256ΔX)0.697865853659+(X=257ΔX)0.682713414634+(X=258ΔX)0.66756097561+(X=259ΔX)0.652408536585+(X=260ΔX)0.637256097561+(X=261ΔX)0.622103658537+(X=262ΔX)0.394817073171+(X=263ΔX)0.167530487805+(X=264ΔX)0
Peux-tu expliquer les astuces qui t'ont permis d'atteindre un tel score ?
Show/Hide spoilerAfficher/Masquer le spoiler
Au départ, j'essayais simplement de traduire une liste de points cherchés à la main en une fonction ligne brisée afin d'obtenir une courbe potable, en passant notamment par le Canada (le passage à 2 pixels), directement sur calculatrice.

Ensuite, ayant appris que le Panama avait un passage sans rouge, j'ai écrit quelques programmes de bruteforce en Basic afin d'essayer rapidement des points et trouver comment y passer, et Ruadh a été assez sympathique pour m'indiquer qu'il fallait une certaine pente. Ceci sur CEmu afin de tester plus vite.
Une fois ce bruteforce effectué et une courbe à 2528 trouvée, j'ai pensé que quitte à écrire des bruteforces, autant en écrire un qui me donne toute la trajectoire. J'ai donc converti l'image du planisphère avec sourcecoder et écrit un programme C pour PC qui teste "tous" les Y possibles (évidemment sur un échantillon discret paramétrable avec un pas) pour tous les I possibles et qui renvoie le plus court chemin. Ruadh a aussi été d'une grande aide pour les corrections de ce programme, sur le calcul du coût (à traduire depuis le Basic) ou la "traduction en fonction" finale (j'ai longtemps pensé que mon bruteforce ne fonctionnait pas alors que c'était la traduction en fonction qui posait problème). Il y avait notamment un bug final qui n'a pas été corrigé avant l'envoi de la fonction qui faisait que le bruteforce trouvait un bon chemin mais n'arrivait pas à sortir une liste de points (problème de précision des float...). La fonction que j'ai envoyée provient donc d'un bruteforce de Ruadh, mon programme ayant un score inférieur de 0.5€ (le problème a été résolu ensuite, et de toute façon à 0.5€ près j'ai la même place au classement...).

Si ça vous intéresse aussi, le bruteforce ne tourne qu'en 5 minutes, pas plus. Il serait plus lent avec une précision supérieure mais cela semblait inutile (et il pourrait être amélioré mais j'ai la flemme).


1er, Ruadh nous décroche le gros lot avec 2574,4€.
La trajectoire est similaire à celle de Hayleia, mais avec à nouveau un assemblage de segments et donc une équation beaucoup plus courte.
La méthode de recherche utilisée est par contre visiblement beaucoup moins empirique que celle des concurrents, puisqu'il n'y a aucune approximation dans l'équation, juste des valeurs exactes.
En plus de la variable système ΔX, il utilise également la variable système ΔY également accessible via :f44: :f105: , et donnant cette fois-ci la distance séparant deux pixels consécutifs dans une même colonne.
Code: Select all
ΔY(157/142(X=ΔX)+(13/4/ΔXX-609/284)(X>ΔX et X≤5ΔX)+(12/7/ΔXX+5501/994)(X>5ΔX et X≤12ΔX)+(X/ΔX+2003/142)(X>12ΔX et X≤14ΔX)+(17/33/ΔXX+97907/4686)(X>14ΔX et X≤47ΔX)+(X/ΔX/2+1534/71)(X>47ΔX et X≤51ΔX)+(X/ΔX/13+79715/1846)(X>51ΔX et X≤77ΔX)+6973/142(X>77ΔX et X≤180ΔX)+(9841/71-X/2/ΔX)(X>180ΔX et X≤183ΔX)+(59431/710-X/5/ΔX)(X>183ΔX et X≤188ΔX)+6547/142(X>188ΔX et X≤191ΔX)+(10054/71-.5/ΔXX)(X>191ΔX et X≤193ΔX)+(74027/426-2/3/ΔXX)(X>193ΔX et X≤196ΔX)+(61785/142-2/ΔXX)(X>196ΔX et X≤198ΔX)+5411/142(X=199ΔX)+(76957/1278-X/ΔX/9)(X>199ΔX et X≤208ΔX)+(34805/142-X/ΔX)(X>208ΔX et X≤215ΔX)+(304695/994-9/7/ΔXX)(X>215ΔX et X≤229ΔX)+1577/142(X=230ΔX)+(70051/426-2/3/ΔXX)(X>230ΔX et X≤233ΔX)+(100817/1988-5/28X/ΔX)(X>233ΔX et X≤261ΔX)+(28088/71-3/2/ΔXX)(X>261ΔX et X≤263ΔX))-­11(X≥181ΔX et X≤183ΔX ou X=188ΔX ou X=198ΔX ou X=199ΔX ou X≥229ΔX et X≤233ΔX
Quel est ton secret ?
Show/Hide spoilerAfficher/Masquer le spoiler
J'ai travaillé uniquement en utilisant les pixels, en utilisant ΔX et ΔY. D'abord il a fallu trouver la trajectoire optimale, ce qui m'a pris un certain temps. Pour cela, je me suis aidé du programme du concours grâce auquel j'ai remarqué que seuls les pixel de départ et d'arrivé (et ceux directement en dessous) étaient importants (c'était en v3, ça a été modifié par la suite), on pouvait donc traverser la terre s'il y avait deux cases vides (eau) adjacentes ou diagonalement voisines. Cela autorisait à passer à deux endroits, au Canada et au Panama. Le Canada semble le passage qui réduit au maximum la distance et c'est donc celui que j'ai choisit d'emprunter.

J'ai ensuite cherché les coordonnées en pixels (plus simple car ce ne sont que des entiers naturels) pour lesquelles je doit changer la pente de la fonction. Je me suis ensuite servi du fait que le programme arrondit les pixels à l'entier le plus proche pour optimiser la trajectoire. J'ai ainsi pu ajouter ou enlever 0,5 à chaque ordonnée Y pour avoir la pente de chaque partie de la fonction la plus petite en valeur absolue. J'ai ensuite cherché les fonctions affines qui reliaient chacun de ces pixels, de la façon suivante (f(x)=a.(ΔY/ΔX).X+b une fonction affine utilisée pour X1⩽X⩽X2 , Y1=f(X1), Y2=f(X2) , X1,Y1,X2,Y2 sont en pixels) : a=-(Y2-Y1)/(X2-X1) et b=y1-a.(ΔY/ΔX).x1 . J'ajoute ensuite les valeurs (plus en pixels cette fois) minimale et maximale de X (X1.ΔX et X2.ΔX respectivement) ce qui donne : (a.(ΔY/ΔX).X+b)(X>X1.ΔX et X⩽X.ΔX).

Une fois cela fait, j'ai tout rassemblé en une unique fonction affine par morceaux simplement en ajoutant un plus (+) entre chaque fonction.




Nous tenons à remercier et féliciter tous les participants pour leurs recherches et productions très intéressante et pertinentes. :bj:
En effet le climat a évolué depuis l'époque de Jules Verne, et avec la fonte des glaces il est vrai que le grand nord canadien devient de plus en plus navigable et est donc un enjeu économique important.

Comme prévu, nous allons donc maintenant contacter dans l'ordre chaque gagnant, afin qu'il puisse choisir son lot.



Et à bientôt pour un futur concours ! ;)

Mise-à-jour/Update FILEIO 2.6 (CE C libraries)

New postby Adriweb » 09 Oct 2016, 17:29

Il y a à peine quelques jours, une mise-à-jour de FileIO (v2.5) est sortie, corrigeant un souci assez gros mis en évidence via 2048CE, tout en améliorant grandement les performances :bj:

Cependant... un nouveau bug dans certaines conditions (provoquant un crash/RAM clear) est passé inaperçu avec cette version là, du moins jusqu'à aujourd'hui...
Il est visible sur ChessCE par exemple, en sauvant l'état en cours, et apparemment en général pour les programmes tentant de sauvegarder des choses de plus de 255 octets.

Le bug est désormais corrigé (un simple octet à changer :P) dans la dernière version des bibliothèques C (avec FileIO 2.6), grâce à MateoC et jacobly qui ont pu intervenir rapidement :)
On vous invite donc à télécharger cette nouvelle version - et de manière générale, le bon réflexe en informatique est toujours d'avoir des sauvegardes de ses fichiers, ça évite les pertes ;)

Téléchargement: dernière version des libraries (ou via GitHub directement, c'est pareil)

Joue tes partitions sur le TI-Innovator avec ta 83 Premium

New postby critor » 08 Oct 2016, 14:04

7289Aujourd'hui après le code Morse nous allons te proposer un nouveau projet construit, autour du périphérique TI-Innovator de cette rentrée 2016.
Il s'agit encore une fois d'utiliser son buzzer intégré, mais de façon différente. ;)

70367035Au salon de l'Orme 2.16 à Marseille en juin dernier, Texas Intruments démontrait à l'aide d'un mini programme qu'il était possible de jouer de la musique, ci-contre même si ça ne s'entend pas un petit extrait de bon anniversaire.

Mais voilà le problème. A partir d'une partition de musique, comment obtenir de façon simple et juste, la liste des fréquences jouables ?



Problématique à laquelle répond le projet d'aujourd'hui, MUSICATOR.
Le projet définit une façon textuelle de retranscrire de façon simple et complète des partitions :
  • notation anglaise unicaractère des notes : C=Do, D=Ré, E=Mi, F=Fa, G=Sol, A=La, B=Si
  • caractère espace pour un silence
  • chiffres pour spécifier la durée des notes/silences suivants : 8=ronde, 7=blanche, 6=noire, 5=croche...
  • possibilité de régler l'octave de façon absolue avec O0, O1, ... O9, ou bien relative en demandant le passage à l'octave supérieur/inférieur avec les caractères * ou ,
  • support des altérations dièse, bémol ou point de la note ou du silence précédent, à l'aide des caractères +, - et .
  • et même, possibilité de préciser librement le rythme en bpm (battements par minute, c'est-à-dire nombre de noires par minute) en début de texte :bj:

Quelques exemples de retranscriptions simples :
  • gamme majeure ascendante : CDEFGAB*C
  • gamme mineure ascendante : CDE-FGA-B-*C
  • gamme chromatique ascendante : CC+DD+EFF+GG+AA+B*C

Deux outils permettent alors :
  • la compilation de ces transcriptions texte en listes de fréquences+durées jouables
  • la lecture de ces liste sur le TI-Innovator si connecté

La seule contrainte est que le TI-Innovator ne représente qu'un seul et unique instrument à une seule voie.
A moins d'en avoir plusieurs et autant de calculatrices compatibles, ne pourront donc être retranscites sans modifications :
  • les partitions faisant jouer plusieurs instruments en même temps
  • l'éventuelle partie accompagnement des partitions
  • les partitions demandant à un même instrument de jouer plusieurs notes en même temps

Nous allons voir de suite ce que cela donne avec la vraie partition ci-contre, dont voici la transcription complète :
Code: Select all
128:O35 AAA6AAGECCAAGF7G 6FB-B-B-AGFFAAGF8A6 5AAAA6AGE7C6AAGF7G 5 B-B-B-6B-B-AGFFAAGF7A5 A*CD6 5,AA6*CD7D ..CDEF6E.D5C,A*CD6 7D6DC,AF5FG6AAGF7A5 A*CD6 5,AA6*CD7D ..DDEF6E.D7C6,B-*FFFCF7FF6FFE5,AA6*CDD5,AA*CD6F



Comme tu peux l'entendre, la transcription de la partition est bien correcte. :)



Un petit défaut subsiste toutefois. Ici tout a été fait pour que la calculatrice n'ait rien d'autre à faire pendant la lecture du morceau :
  • compilation à priori de la transcription en une liste de fréquences directement jouable
  • aucun affichage pendant la lecture
Malgré cela, la calculatrice perd du temps entre chaque note, puisqu'il y a un silence non négligeable alors qu'absent de la transcription.
C'est donc le temps perdu à chaque itération de la boucle de lecture.
Nous ignorons la raison exacte de ce retard, mais à notre avis c'est sûrement le temps mis :
  • soit pour envoyer la commande construite au TI-Innovator
  • soit pour construire cette commande, notamment avec la nouvelle instruction eval( du système 5.2 permettant d'inclure une valeur numérique dans une chaîne de caractères
En conséquence, pour que le morceau colle bien avec l'accompagnement, nous avons dû énormément augmenter le rythme.
Au lieu de 128bpm pour du moderately fast, il nous a fallu régler 860bpm.

Si l'on pouvait récupérer le temps perdu dès la première note, on pourrait corriger en rognant sur la durée des notes ou silences ultérieurs. Mais malheureusement, les instructions d'horloge du seul langage Basic retournent toutes un nombre entier de secondes, et ne permettent pas de connaître la fraction de seconde perdue dès la première note. :'(



Au final, encore une fois un projet qui s'inscrirait parfaitement dans le contexte des enseignements de ICE, TPE et ISN au lycée, ou des nouveaux EPI de la réforme du collège depuis cette rentrée.
Dans ce dernier cas, ce serait d'ailleurs une excellent moyen d'associer activement au sein d'un même projet scientifique l'enseignement d'Education musicale, afin de voir avec ses collègues et les élèves comment construire l'ensemble des différentes valeurs de fréquences nécessaires à la lecture de partitions. :bj:



Téléchargement : archives_voir.php?id=687757

Crédits : partition

Avec Autocalc, calcul exact même sur ta TI-84 Plus CE

New postby critor » 08 Oct 2016, 10:10

7373La différence principale entre la TI-83 Premium CE commercialisée en France et les TI-84 Plus CE ou TI-84 Plus CE-T, est que ces dernière ne disposent pas d'un moteur de calcul exact.

Mais le choix entre ces modèles est loin d'être libre :
  • Si tu vis en Amérique du Nord, tu ne trouveras pas la TI-83 Premium CE en magasin, que la TI-84 Plus CE.
  • Si tu vis en Europe hors de France, c'est la TI-84 Plus CE-T que tu trouveras en magasin, mais il est sûrement bien plus facile dans ton cas de récupérer une TI-83 Premium CE. Toutefois nombre de pays ont une liste officielle des modèles autorisés aux examens, et la TI-83 Premium CE n'y étant pas commercialisée n'en fait bien évidemment pas partie.
  • Certains examens internationaux que tu peux passer en France, dont le Baccalauréat International, ont également des listes de modèles autorisés qui de façon similaire incluent les TI-84 Plus CE et pas la TI-83 Premium CE.

7374Mais si tu n'es pas (encore?) concerné(e) par le mode examen, tu peux désormais rajouter un programme de calcul exact dans ta TI-84 Plus CE, AutoCalc désormais porté pour ton modèle ! :bj:
Obtiens désormais gratuitement les mêmes performances que la TI-83 Premium CE... :bj:

7375... et même plus encore, avec :
  • pour les angles en radians, l'obtention de la mesure principale :bj:
  • pour les nombres complexes, l'obtention des deux formes algébrique et exponentielle :bj:

7376... et même encore plus avec des formes non gérées par la TI-83 Premium CE :
  • trigonométrie avec des angles en π/5 :bj:
  • trigonométrie avec des angles en π/8 :bj:
  • trigonométrie avec des angles en π/10 :bj:


Téléchargement : archives_voir.php?id=981

-
Search
-
Social TI-Planet
-
Featured topics
Grand Concours 2024-2025 - Programmation Python
Comparaisons des meilleurs prix pour acheter sa calculatrice !
"1 calculatrice pour tous", le programme solidaire de Texas Instruments. Reçois gratuitement et sans aucune obligation d'achat, 5 calculatrices couleur programmables en Python à donner aux élèves les plus nécessiteux de ton lycée. Tu peux recevoir au choix 5 TI-82 Advanced Edition Python ou bien 5 TI-83 Premium CE Edition Python.
Enseignant(e), reçois gratuitement 1 exemplaire de test de la TI-82 Advanced Edition Python. À demander d'ici le 31 décembre 2024.
Aidez la communauté à documenter les révisions matérielles en listant vos calculatrices graphiques !
12345
-
Donations / Premium
For more contests, prizes, reviews, helping us pay the server and domains...
Donate
Discover the the advantages of a donor account !
JoinRejoignez the donors and/or premium!les donateurs et/ou premium !


Partner and ad
Notre partenaire Jarrety Calculatrices à acheter chez Calcuso
-
Stats.
1035 utilisateurs:
>997 invités
>30 membres
>8 robots
Record simultané (sur 6 mois):
6892 utilisateurs (le 07/06/2017)
-
Other interesting websites
Texas Instruments Education
Global | France
 (English / Français)
Banque de programmes TI
ticalc.org
 (English)
La communauté TI-82
tout82.free.fr
 (Français)