π
<-
Chat plein-écran
[^]

News 2021
March (4)
January (34)

News 2020
October (17)
August (43)
July (43)
June (45)
May (60)
April (78)
March (36)
January (39)

News 2019
October (13)
August (18)
July (23)
June (28)
May (31)
April (25)
March (39)
January (37)

News 2018
October (13)
August (32)
July (23)
June (64)
May (63)
April (45)
March (43)
January (45)

News 2017
October (26)
August (39)
July (52)
June (88)
May (51)
April (43)
March (37)
January (33)

News 2016
October (25)
August (42)
July (34)
June (109)
May (55)
April (34)
March (37)
January (24)

News 2015
October (22)
August (56)
July (22)
June (94)
May (56)
April (32)
March (40)
January (21)

News 2014
October (26)
August (18)
July (23)
June (101)
May (57)
April (59)
March (54)
January (31)

News 2013
October (67)
August (50)
July (43)
June (193)
May (93)
April (102)
March (45)
January (50)

News 2012
October (64)
August (63)
July (53)
June (132)
May (88)
April (73)
March (57)
January (58)

News 2011
October (56)
August (31)
July (27)
June (71)
May (61)
April (32)
March (36)
January (24)

News 2010
October (11)
August (8)
July (14)
June (10)
May (3)
April (3)
March (1)

News 2009
August (3)
July (1)
June (2)
May (1)
April (2)
March (1)

12 coques NumWorks édition limitée Novembre 2020 à gagner

New postby critor » 02 Nov 2020, 12:42

13036Pour la
rentrée
2019
,
NumWorks
te sortait un couvercle
collector
en édition limitée pour sa calculatrice, le
Macaremaths
, illustré tout en humour et talent sur le thème des Mathématiques. :bj:
Nous t'en faisons actuellement gagner quelques derniers exemplaires à notre concours de rentrée. ;)

Dans le même genre pour
Octobre 2020
,
NumWorks
avait renouvelé l'expérience en te faisant gagner 12 couvercles d'une édition limitée roi et reine de cœur.

Te voilà maintenant confiné·e. Tu as juste le droit d'aller travailler au lycée ou ailleurs, et de rentrer chez toi sans faire le moindre détour. :'(

Est-ce que cela te pèse ? Envie de tordre les barreaux de ta prison mentale ?

Et bien
NumWorks
a une fois de plus pensé à toi avec une toute nouvelle édition limitée du couvercle de sa calculatrice pour
Novembre 2020
. :favorite:

12
couvercles sont dès maintenant à gagner sur les comptes sociaux du constructeur : :D
  • 1
    couvercle sur
    Twitter
    , tirage au sort
    vendredi 6 novembre 2020
  • 1
    couvercle sur
    Facebook
    , tirage au sort
    vendredi 6 novembre 2020
  • 10
    couvercles sur
    Instagram
    , tirage au sort le
    30 novembre 2020

Pour participer et gagner c'est très simple, il te suffit juste selon le réseau :
  1. de suivre, aimer ou t'abonner au compte en question
  2. de taguer ou identifier un·e ami·e qui devrait aimer ce couvercle

N'hésite pas à participer sur chacun des comptes sociaux pour maximiser tes chances. ;)

[EVENT] Tiplanet Trackmania Cup

New postby Wistaro » 04 Nov 2020, 11:29

Image


TiPlanet Trackmania Cup



Salut!

Je lance aujourd'hui la première édition de la TTC, la
TiPlanet TrackMania Cup
*, librement inspirée de la ZRT Cup organisée par Zerator :bj: !

*Ce concours est non officiel, il est organisé par moi et non pas par tiplanet et n'a aucun lien avec le concours de rentrée actuellement en cours
.



C'est quoi?


La TTC est une compétition amicale sur un jeu de course de voiture, le jeu
TrackMania Forever
. Ce jeu a l'avantage d'être entièrement gratuit
(contrairement aux autres jeux de la franchise Trackmania)
, d'être jouable sur tous les pc
( même les configurations les plus modestes)
et d'être prévu pour ce genre d'évènement.

Si vous ne connaissez pas le jeu, pas de panique! Un guide a été rédigé pour vous permettre de télécharger le jeu et de rejoindre le serveur (voir le document)

Merci de bien le lire en détails
, même si vous connaissez un peu le jeu. Pensez également à vérifier votre jeu avant l'épreuve :)

Le serveur de jeu est ouvert 24h/24 et 7j/7 pour vous permettre de vous entraîner sur les courses avant l'évent.
Le jour J, de nouvelles pistes inédites seront ajoutées, et mélangées de manière aléatoire aux autres cartes.


C'est quand?


La première édition se déroulera
dimanche 8 novembre à partir de 18h
, en une seule fois
(pas de phases de qualifications pour cette édition)
.


Comment m'inscrire?


C'est simple: il suffit que vous
votiez dans le sondage ci-dessus
.
En fonction des résultats du sondage,
le jour et l'heure sélectionnée seront annoncés
le plus rapidement possible.

Le concours est ouvert à toutes et à tous.
Il faudra simplement rejoindre le serveur Discord de TiPlanet avant le jour J.
Par respect pour l'organisation, essayez de ne pas vous désister au dernier moment!


On gagne quoi?


Les lots sont fournis par l'équipe de TiPlanet et je les remercie!
Gardez à l'esprit que le but du concours se veut amical et bon enfant, les lots sont principalement honorifiques.

  • 1er
    : Un compte VIP* sur TIPlanet
  • 2e
    : Un compte Premium** sur TIPlanet
  • 3e
    : Un compte Premium** sur TIPlanet


*: Le compte VIP comprend également les avantages du compte Premium ;
**: Si vous avez déjà le grade, vous êtes libre de le donner à n'importe quel autre participant de l'évènement.




Une question? Un problème?


En cas de problème sur le jeu, ou de question sur le déroulement de l'évènement, vous pouvez répondre ce topic, ou me contacter en privé
(MP Tiplanet ou Discord)
.
Poll: Vos disponibilités pour l'évènement TrackMania ? » Click here to vote!

Link to topic: [EVENT] Tiplanet Trackmania Cup (Comments: 30)

Concours de rentrée 2020 - défi Python du Léviathan

New postby critor » 04 Nov 2020, 12:12

Image

Pour cette rentrée 2020, tes communautés lycéennes et
TI-Planet
se réunissent pour te proposer un concours de rentrée exceptionnel autour de ton outil numérique scolaire favori, ta calculatrice graphique.
Un événement que nous tenons encore plus à t'offrir en période de confinement.

Aucune obligation d'achat pour participer et même gagner, grâce aux précieuses ressources gratuites que nous te compilons en fin d'annonce. ;)

Au total 3 défis indépendants, tous en langage
Python
:
  1. Défi de Xuanwu
    (tracé
    Python
    à la tortue)
    , jusqu'au
    dimanche 18 octobre 2020
    inclus avant minuit heure française
    (GMT+2)
  2. Défi de Quetzalcóatl
    (tracé
    Python
    par coordonnées)
    , jusqu'au
    dimanche 1er novembre 2020
    inclus avant minuit heure française
    (GMT+1)
  3. Défi du Léviathan
    (Intelligence Artificielle
    Python
    )
    , jusqu'au
    dimanche 13 décembre 2020
    inclus avant minuit heure française
    (GMT+1)

Les défis ont tous été conçus pour être ludiques et abordables. Rien d'insurmontable, à chaque fois nous te fournissons un script fonctionnel sur un maximum de calculatrices
Python
officielles ou non, script qu'il te suffira tout simplement d'améliorer. Tout-le-monde peut donc participer et gagner ! :D
Les défis sont de plus totalement indépendants, tu peux parfaitement participer et gagner à un défi sans avoir participé aux défis précédents.

Pour te récompenser nous avons réuni diverses calculatrices graphiques
Python
haut de gamme, mais accompagnées ici à la différence de nombre de
goodies
introuvables dans le commerce qui te permettront de porter fièrement les couleurs de ton constructeur préféré. :#tritop#:

Voici dès maintenant lancé le
défi du Léviathan
, pour lequel tu as donc jusqu'au
dimanche 13 décembre 2020
à minuit moins une, heure d'hiver française
(GMT+1)
.

Les lots ainsi que leur acheminement te sont gracieusement offerts par :
  • de l' /
  • /
  • /
  • (reliquat dotation
    2019
    )

    Suite à de lourdes réorganisations au sein de
    Hewlett Packard
    en
    2019-2020
    il n'y a plus de service marketing spécifique à la France pour les calculatrices, nous relevons désormais d'un service gérant de façon unifiée le marketing des calculatrices pour l'ensemble de l'Europe, service de plus sous-traité en externe auprès d'une entreprise en République tchèque chez qui nous n'avons strictement aucun contact ce qui ne facilite pas la chose.
    Des approches auprès de nos quelques contacts par chance encore restants chez
    Hewlett Packard
    ne nous ont hélas pas permis d'obtenir jusqu'à présent de réponse autre que l'assemblage d'éléments que nous venons de te communiquer.

    Il reste peu de temps, mais nous te tiendrons au courant si jamais la situation évoluait favorablement en cours de ce dernier défi. Et sinon ben tant pis pour
    Hewlett Packard
    .

    Toutefois tu n'es absolument pas pénalisé·e si tu souhaites participer sur
    HP Prime
    cette année. De notre côté le travail a bel et bien été fait, nos scripts de participation restent compatibles avec la
    HP Prime
    .

Les
15
participants ayant réalisé les plus petits scores distincts au défi du
Léviathan
pourront librement choisir et personnaliser leur lot parmi les propositions suivantes, par ordre de classement :
  • 2 lots
    Capricorne ♑
    :
    1
    calculatrice
    Casio Graph 90+E
    + 1
    pack de goodies
    Casio
    + 1
    goodie
    Xcas
    au choix + 1
    pack de goodies
    TI-Planet
    &
    Planète Casio
  • 2 lots
    Bélier ♈
    :
    1
    solution d'émulation
    Casio
    au choix + 1
    catalogue de produits
    Casio
    au choix + 1
    pack de goodies
    Casio
    + 1
    goodie
    Xcas
    au choix + 1
    pack de goodies
    TI-Planet
    &
    Planète Casio

    Détail des
    solutions d'émulation
    Casio
    au choix :
    • clé
      USB 8 Go
      d'émulation permanente au choix, à jour avec 3 émulateurs pour
      Windows
      :
      fx-92+ Spéciale Collège
      +
      Graph 35+E II 3.30
      +
      Graph 90+E 3.40

    • licence 3 ans utilisable pour l'installation de tout ou partie des logiciels d'émulation suivants :

    11617130221302313024


  • Lot
    Serpentaire ⛎
    :
    1
    goodie
    HP
    au choix + 1
    goodie
    Xcas
    au choix + 1
    pack de goodies
    TI-Planète-Casio

    Poster
    HP
    : format
    59,2×40 cm²
    .

    130389656


  • 3 lots
    Sagittaire ♐
    :
    1
    calculatrice
    NumWorks N0110
    + 1
    pack de goodies
    NumWorks
    + 1
    goodie
    Xcas
    au choix + 1
    pack de goodies
    TI-Planet
    &
    Planète Casio
  • 3 lots
    Balance ♎
    :
    1
    couvercle
    NumWorks
    au choix + 1
    autocollant
    NumWorks
    + 1
    enveloppe
    NumWorks
    ou
    carte postale
    NumWorks
    ou
    carte de visite-énigme
    NumWorks
    au choix + 1
    pack de goodies
    NumWorks
    + 1
    goodie
    Xcas
    au choix + 1
    pack de goodies
    TI-Planet
    &
    Planète Casio

    Couvercle
    NumWorks
    au nouveau format
    N0110
    protégeant mieux l'écran contre les rayures, mais restant parfaitement utilisable sur l'ancien modèle
    N0100
    .

    116491303613229132301303013026130271302813029


  • Lot
    Taureau ♉
    :
    1
    calculatrice
    TI-Nspire CX II-T CAS
    + 1
    licence logiciel
    TI-Nspire CAS
    élève
    + 1
    pack de goodies
    TI
    + 1
    goodie
    Xcas
    au choix + 1
    pack de goodies
    TI-Planète-Casio
  • Lot
    Lion ♌
    :
    1
    calculatrice
    TI-Nspire CX II-T
    + 1
    licence logiciel
    TI-Nspire
    élève
    + 1
    pack de goodies
    TI
    + 1
    goodie
    Xcas
    au choix + 1
    pack de goodies
    TI-Planète-Casio
  • Lot
    Gémeaux ♊
    :
    1
    calculatrice
    TI-83 Premium CE Edition Python
    au choix + 1
    adaptateur
    USB
    + 1
    clavier
    USB
    dédié + 1
    chargeur mural
    au choix + 1
    housse
    Wyngs
    bleue
    ou
    film de protection écran
    Wyngs
    + 1
    pack de goodies
    TI
    + 1
    pack de goodies
    TI-Planète-Casio
  • Lot
    Verseau ♒
    :
    1
    calculatrice
    TI-83 Premium CE Edition Python
    + 1
    gravure texte laser
    au choix + 1
    adaptateur
    USB
    + 1
    clavier
    USB
    dédié + 1
    chargeur mural
    + 1
    housse
    Wyngs
    au choix + 1
    film de protection écran
    Wyngs
    dédiés + 1
    extension de garantie
    6 ans
    Calcuso
    + 1
    pack de goodies
    TI
    + 1
    pack de goodies
    TI-Planète-Casio

    Détail des
    calculatrices
    TI-Nspire CX II-T CAS
    au choix :
    • TI-Nspire CX II-T CAS
      sous blister version B
    • TI-Nspire CX II-T CAS
      sous blister version B avec autocollant sceau

    Détail des
    calculatrices
    TI-83 Premium CE Edition Python
    au choix pour le lot
    Gémeaux ♊
    :
    • TI-83 Premium CE Edition Python
      sous blister version E
    • TI-83 Premium CE Edition Python
      sous blister version E avec autocollant masquant sceau

    La gravure au laser de la
    TI-83 Premium CE Edition Python
    du lot
    Verseau ♒
    est effectuée par . Le texte souhaité est à nous communiquer par le gagnant choisissant ce lot, dans la limite de 22 caractères et sans caractères spéciaux.

    116241304511623118281182711325127241132413060130591228113140[13117131381309513096131021313613128


Détail des packs de goodies communs accompagnant les lots :
  • 1
    manuel
    NumWorks
    au choix
    (
    N0100
    ou
    N0110
    )
  • 1
    cahier d'activités
    NumWorks SNT 2nde
  • 1
    sac
    NumWorks
    au choix
    (
    N0100
    versions
    1.0-1.5
    ,
    N0100
    versions
    1.6+
    , ou
    N0110
    )
  • 1
    cahier
    NumWorks
  • 1
    poster
    NumWorks
    au choix :
    • format
      A0
      (118,9×84,1 cm²)
      :
      NumWorks N0100
      - roulé
    • format
      A2
      (42×59,4 cm²)
      :
      • NumWorks N0100
        :
        Eduscol / Ministère de l'Education Nationale
        - roulé - brillant
      • NumWorks N0100
        :
        Eduscol / Ministère de l'Education Nationale
        - roulé - mat
      • NumWorks N0100
        :
        @Pims / @qabosse / @antalpilipili
        et ses collègues d'
        EPS
        - roulé
      • NumWorks N0100
        :
        Xavier Andréani / TI-Planet
        - roulé - dédicacé
      • NumWorks N0110
        : Comprendre le monde devient un jeu - plié
  • 1
    stylo
    NumWorks
1303513031130461304713048130321306813037130401303913041130421303413033
  • 1
    stylo
    TI
    au choix
  • 1
    porte-documents
    TI
  • 1
    poster
    TI
    plié
    au choix :
    • format
      ANSI-D
      (55,9×86,4 cm²)
      :
      TI-73 Explorer
    • format
      A1
      (59,4×84,1 cm²)
      :
      TI-89 Titanium
    • format
      55,75×83,5 cm²
      :
      TI-Nspire CX
      ,
      TI-Nspire CX CAS
  • 1
    clé
    USB
    TI
    au choix :
    • clé USB
      T3 France
      bleue -
      2 Go
      de capacité nominale
    • clé USB
      TI-Primaire Plus
      -
      4,01759 Go
      de capacité réelle
    • clé USB
      TI-Innovator Rover
      -
      4,01813 Go
      de capacité réelle
    • clé USB
      TI-83 Premium CE
      avec lanière -
      4,01811 Go
      de capacité réelle
    • clé USB
      TI-83 Premium CE
      avec chaînette -
      4,01811 Go
      de capacité réelle
    • clé USB
      TI
      rouge -
      1 Mo
      de capacité nominale
      (promotion
      TI-Primaire Plus
      défectueuse)
  • 1
    autocollant
    TI
    ou
    décalcomanie
    TI
    ou
    pochette
    CD
    TI
    ou
    lunettes
    TI
    au choix
  • 1
    cahier
    TI-83 Premium CE
    au choix

Aperçus de quelques
cahiers d'activités
TI-83 Premium CE Python
au choix:
11782130651306613067130641306313062130611304913050130431304411533130561307413085130861308713088130811308213073130831308413077130781308313084130721306913070
1
casquette
Xcas
ou
tapis de souris
Xcas
ou
autocollant
Xcas
  • 1
    autocollant
    TI-Planet
    au choix
  • 1
    autocollant
    Planète Casio
  • 1
    compte premium
    TI-Planet
1161411615




Le
Léviathan
, le serpent à pattes.

Au fin fond de la grotte du défi de
Quetzalcóatl
, ton excavatrice perce une dernière paroi et tombe sur le cratère d'un volcan. Tu as à peine le temps de sauter sur une corniche, qu'elle tombe déjà au fond du cratère et disparaît dans la lave en fusion.

Autour de ce cratère donc plusieurs corniches, reliées par des passerelles. Mais avec toutes ces émanations volcaniques, tu n'y vois pas à deux pas.

Heureusement, ton véhicule semble avoir eu le temps de télécharger un dernier script sur ta calculatrice.

Une étude de ce script montre que plusieurs dangers et péripéties te guettent sur ces corniches :
  • le
    Léviathan
    , monstre mythologique ici incarné, niche sur une de ces corniches, et mieux vaut ne pas aller le déranger
  • certaines corniches non peuplées ne sont pas sûres pour autant, dissimulant un puits qui te précipitera directement prendre ton dernier bain
  • des chauves-souris géantes dorment sur certaines corniches ; elles ne sont pas mortelles en elles-mêmes, mais si tu les réveilles elles se saisiront de toi et t'emporteront sur une autre corniche sans te demander ton avis, et pas forcément sur une corniche sûre...
  • une de ces corniches donne sur la porte de sortie, hélas verrouillée
  • la clé de la porte est également présente sur une de ces corniches

Le script dispose de tout un système de détection, et t'indique ce qu'il y a à proximité de toi :
  • le
    Léviathan
    est tellement nauséabond qu'il est détectable jusqu'à 2 passerelles de distance
    (corniches actuelle, voisines, ou voisines des voisines)
  • la clé ainsi que les puits pour leur part ne sont détectables que jusqu'à 1 passerelle de distance
    (corniches actuelle ou voisines)
  • les chauve-souris ainsi que la porte de sortie par contre ne sont détectables qu'une fois arrivé sur la corniche concernée

Une
IA
(
I
ntelligence
A
rtificielle)
est également présente dans le script, mais visiblement ton véhicule n'a pas dû avoir le temps de la télécharger au complet, il n'y a pas grande intelligence dedans.

Ton but est donc d'améliorer l'
IA
fournie afin qu'elle ait les meilleures chances de te faire sortir sain·e et sauf·ve du cratère.

Nous te fournissons 3 scripts
Python
:
  • polycal3.py
    , bibliothèque de compatibilité graphique gérant pas moins de 13 environnements
    Python
    graphiques sur calculatrices, officiels ou non
  • web.py
    , définissant tout ce qui concerne le cratère du volcan et que nous te laissons le loisir de découvrir
  • webtest.py
    , une
    IA
    parfaitement fonctionnelle mais totalement stupide, ne tenant compte d'aucun avertissement et ne réfléchissant pas, bref ne comprenant rien à la situation et décidant de ses actions au hasard

Les plateformes
Python
ici gérées sont les :

Les
TI-83 Premium CE Edition Python
/
TI-84 Plus CE-T Python Edition
ne sont pas gérées cette fois-ci.

Le code est en théorie compatible, mais ici très conséquent.

Nous avons fait des efforts surhumains, pendant plusieurs jours, avons réussi à réduire la consommation de tas mémoire
Python
un peu en-dessous de
32K
et donc à la faire tourner sur
NumWorks
avec l'appli
Python
officielle, l'appli
KhiCAS
tierce en mode
Micropython
, et même l'appli
KhiCAS
tierce dans le mode de compatibilité
Python
un peu plus gourmand.

Malheureusement les
TI-83 Premium CE Edition Python
et
TI-84 Plus CE-T Python Edition
n'offrent que
16K
de mémoire de tas
Python
, et malgré plusieurs astuces tentées nous n'avons pas réussi ici à y faire tourner nos scripts sans erreur de mémoire.

Il te suffit donc d'améliorer la fonction ia(corniche, voisines, taille, capteurs, evenements).

Le tout démarre en appelant alors :
Code: Select all
from webtest import *
parcourir_selon(ia)


La fonction
ia()
sera ensuite appelée régulièrement, à chacun de tes déplacements, et te permettra d'en apprendre davantage sur la configuration de ce cratère :
  • taille
    : le nombre de corniches présentes dans ce cratère
    (ne varie pas au cours d'une même partie)
    , et qui seront numérotées de
    0
    à
    taille - 1
  • corniche
    : numéro de la corniche sur laquelle tu te trouves actuellement
  • capteurs
    : informations sur ce qui est détecté à partir de cette corniche :
    • capteurs & m_b indique la présence d'une chauve-souris sur la corniche actuelle
    • capteurs & (2 * m_b) indique en prime que la chauve-souris est prête à se saisir de toi
    • capteurs & m_d indique la présence de la porte de sortie sur la corniche actuelle
    • capteurs & m_k indique la présence de la clé sur les corniches voisines
    • capteurs & m_p alerte de la présence d'un ou plusieurs puits sur les corniches voisines
    • capteurs & m_l alerte de la présence du
      Léviathan
      sur les corniches voisines ou voisines des voisines
  • evenements
    :
    • evenements & (2 * m_k) indique que tu as ramassé la clé de la sortie
    • evenements & m_a indique que tu disposes d'une flèche et es donc capable de tirer
    • evenements & (2 * m_l) indique que la flèche que tu as tirée a touché mortellement le
      Léviathan

La fonction
ia()
doit retourner une action à travers 2 valeurs :
  • un numéro de corniche voisine
  • l'action désirée :
    • 0
      pour aller sur la corniche en question
    • 1
      pour tirer ta flèche vers la corniche en question

Pour te permettre d'y voir clair, voici la fonction d'
IA
fournie par défaut commentée :
Code: Select all
def ia(corniche, voisines, taille, capteurs, evenements):
  # Nous sommes dans un cratere de volcan.
  # Il y a un nombre {taille} de corniches.
  # Les corniches sont numerotees de 0 a {taille - 1}.

  # Nous sommes sur la corniche numero {corniche}.
  if capteurs & m_b:
    # Une chauve-souris dort sur cette corniche. Elle se reveillera des que tu
    # seras parti.e au prochain tour !
    pass
  if capteurs & m_d:
    # Cette corniche donne sur la porte de sortie.
    pass
  if capteurs & m_p:
    # Une des corniches voisines dissimule un puits. Progresse prudemment !
    pass
  if capteurs & m_k:
    # Une des corniches voisines emet de la lumiere. La cle de la sortie doit
    # y etre !
    pass
  if capteurs & m_l:
    # Le Leviathan gronde. Il est a 2 pas ou moins d'ici. S'il n'est pas dans
    # une des corniches voisines, il est sur une voisine d'une voisine...
    pass
  if evenements & (2 * m_k):
    # Bravo, tu as trouve la cle de la porte de sortie !
    pass
  if evenements & m_a:
    # Tu peux tirer une fleche vers une des corniches voisines.
    pass
  if evenements & (2 * m_l):
    # Le Leviathan a ete touche mortellement, il ne pose plus de danger !
    pass
  if evenements & (2 * m_b):
    # Une chauve-souris t'as attrape.e, et t'emmene sur une autre corniche
    # sans te demander ton avis. Tu ne peux pas choisir ta destination !
    return None, 0

  # renvoie 2 valeurs :
  # * la corniche choisie parmi les voisines
  # * l'action relative desiree :
  #   - 0 pour aller sur cette corcniche
  #   - 1 pour tirer une fleche vers cette corcniche
  return voisines[randint(0, len(voisines) - 1)], 0


Ta calculatrice marquera ici une pause après chaque appel à cette fonction, afin de te laisser le temps de prendre connaissance de l'état affiché, attendant l'appui sur une touche pour demander à l'
IA
son coup suivant.
Dans le cas des calculatrices
Casio
, c'est obligatoirement la touche
AC/ON
qu'il te faut presser.

Aucune initiative n'est a priori interdite.

Tu es libre de définir et utiliser tout ce que tu veux
(fonctions, variables globales, autres scripts...)
mais ton code ne doit effectuer aucun accès en lecture ou écriture à des éléments de
web.py
autres que la fonction précédente à appeler, ni interférer avec leur fonctionnement.
Tu es également libre de modifier les scripts
polycal3.py
et
web.py
fournis si cela peut t'aider, mais note bien que ton script sera testé avec les scripts tels que téléchargés chez nous. Donc attention à ce que tout reste bien fonctionnel.

Note que l'
IA
fournie par défaut est ici parfaitement fonctionnelle, et arrive à gagner de temps en temps. Tu es parfaitement libre de ne rien coder et de participer avec notre
IA
aléatoire.

Une fois ton script prêt, il te suffira de nous l'envoyer par courriel à
info@tiplanet.org
, avec :
  • en objet : 
    défi du Léviathan
  • une adresse courriel personnelle valide, si différente de l'adresse utilisée pour l'envoi de la participation
  • ton adresse postale complète avec nom et prénom(s)
  • si tu le souhaites, ton pseudonyme sur
    TI-Planet
    ou
    Planète Casio

    (la liste des participants publiée en fin de concours utilisera les pseudonymes si fournis, et à défaut seulement les prénoms et initiales des noms)
  • si tu le souhaites, sans conséquence sur ta victoire ou ton choix de lot, les badges à afficher dans notre classement à côté de tes participations :
    • l'équipe que tu soutiens :
      TI-Planet
      ou
      Planète Casio
    • la guilde que tu soutiens :
      Casio
      ,
      Hewlett Packard
      ,
      Lexibook
      ,
      NumWorks
      ,
      Symbolibre
      ou
      Texas Instruments
  • un numéro de téléphone personnel valide
    (utilisé uniquement dans ton intérêt en cas d'urgence - par exemple en cas de problème avec une participation ou un choix de lot et qu'il reste peu de temps pour participer/répondre)


    Note que les participations seront évaluées :
    • en faisant tourner les
      IA
      reçues sur un grand nombre de parties
    • en regardant le nombre de fois où elles auront réussi à sortir du volcan sans dommages
    • et en tenant compte du nombre de coups moyen qui aura été nécessaire dans ce cas



  • Ressources
    :




    Mises à jour
    :


    Emulation / simulation
    :


    Transfert de données
    :

    • tutoriel
      (
      Graph 90+E / Graph 35+E II / fx-CG50
      )

    Aide à l'utilisation :
    1. Transférer les 3 fichiers
      polycal3.hpprgm
      ,
      web.hpprgm
      et
      webtest.hpprgm
    2. Editer et fermer le programme
      polycal3
    3. Editer et fermer le programme
      web
    4. Editer et fermer le programme
      webtest
    5. Aller dans la calculatrice
      CAS
    6. Taper parcourir_selon(ia)
    7. Taper une touche pour passer chaque action de l'
      IA



    Emulation / simulation
    :


    Transfert de données et mises à jour
    :




    Mises à jour nécessaires
    :


    Emulation / simulation + transfert de données
    :

    • TI-Nspire CX CAS
      +
      TI-Nspire CX
      version
      5.2
      édition enseignant pour /
      (période d'essai gratuite sans engagement de 90 jours)
    • TI-Nspire CX CAS
      version
      5.2
      édition élève pour /
      (période d'essai gratuite sans engagement de 30 jours)
    • TI-Nspire CX
      version
      5.2
      édition élève pour /
      (période d'essai gratuite sans engagement de 30 jours)
    • TiLP-II
      version
      1.18
      pour / /
      (gratuit)

    Emulation / simulation
    :


    Aide à l'utilisation :



    Ajouts relatifs au Python
    :


    Emulation / simulation
    :


    Transfert de données
    :

    • TI-Nspire Computer Link
      version
      3.9
      pour /
      (gratuit)
    • tutoriel
      TI-Nspire Computer Link
    • TI-Nspire CX CAS
      +
      TI-Nspire CX
      version
      5.2
      édition enseignant pour /
      (période d'essai gratuite sans engagement de 90 jours)
    • TI-Nspire CX CAS
      version
      5.2
      édition élève pour /
      (période d'essai gratuite sans engagement de 30 jours)
    • TI-Nspire CX
      version
      5.2
      édition élève pour /
      (période d'essai gratuite sans engagement de 30 jours)
    • TiLP-II
      version
      1.18
      pour / /
      (gratuit)


    Liens
    :


    Référence
    :
    https://www.planet-casio.com/Fr/forums/ ... athan.html

    Lancement bêta-test public NumWorks v15

    New postby critor » 04 Nov 2020, 20:29

    13196Aujourd'hui grand événement,
    NumWorks
    nous lance le bêta-test public de sa nouvelle version
    15
    .
    Mais quel autre constructeur te sort 15 mises à jour en 3 ans ? Et encore c'est sans compter les versions intermédiaires...

    Tu peux donc si tu le souhaites mettre à jour dès maintenant ta calculatrice en version
    15.0.0
    , et profiter en avant-première des nouveautés.

    Et quelles nouveautés ! Au menu de cette mise à jour encore et toujours gratuite, un éventail grand ouvert que nous allons découvrir ensemble :
    ImageImageImageImageImageImageImage




    1) Application Paramètres

    Go to top

    1319513194Et voici déjà une première nouveauté qui nous saute littéralement aux yeux.

    En fin de mise à jour la calculatrice redémarre et nous demande notre langue, comme d'habitude, et puis surprise elle veut également connaître notre pays. :o

    Nous allons avoir tout le loisir de nous pencher là-dessus puisque ce même nouveau réglage est également disponible dans l'application
    Paramètres
    , avec au choix :
    • Allemagne
    • Canada
    • Espagne
    • Etats-Unis
    • France
    • International
    • Italie
    • Pays-Bas
    • Portugal
    • Royaume-Uni


    En effet jusqu'à présent, certaines fonctionnalités de la calculatrice étaient impactées par le choix de la langue. On peut citer le mode examen néerlandais interdisant l'application
    Python
    (pour les
    Pays-Bas
    dont la réglementation interdit l'accès à tout éditeur de texte)
    qui n'était disponible qu'en langues anglaises ou néerlandaise.

    On pouvait aussi reprocher hors de nos frontières une méthode de calcul des quartiles utilisant une définition spécifique à la France.

    Bref, des désagréments d'utilisation dans un contexte international, lier des fonctionnalités à la langue n'était pas une bonne chose, pour les élèves des lycées français à l'étranger, ou plus généralement toute personne préférant utiliser une autre langue que la langue officielle du pays réglementant sa scolarité.

    Désormais fini les problèmes, l'option langue ne contrôle comme son nom l'indique que la langue des messages affichés.

    C'est le seul choix du pays, comme sur ordinateur, qui influe sur le fonctionnement, avec entre autres :
    • le mode examen néerlandais qui n'est disponible que si on choisit les
      Pays-Bas
    • le calcul des quartiles dans l'application
      Statistiques
      qui utilise la méthode française si l'on choisit la
      France
      , et sinon désormais la méthode internationale pour tout autre choix de pays
    • pour les calculs avec unités dans l'application
      Calculs
      , les conversions d'unités automatiques qui dans le cas des
      Etats-Unis
      privilégieront les unités du système impérial, et les mettront également en avant dans les résultats additionnels


    • et enfin l'organisation des applications à l'écran d'accueil, qui dans le cas des
      Etats-Unis
      ne met plus en avant l'application
      Python
      :


    La
    NumWorks
    a dorénavant de quoi s'adapter non seulement aux réglementations et usages de chaque pays, mais également aux besoins et préférences de chaque utilisateur dans un contexte de mobilités internationales,
    une calculatrice pour les gouverner toutes
    ! :bj:

    Peut-être que cette option serait justement l'occasion de réactiver le formidable moteur de calcul littéral qui avait été supprimé à compter de la version
    11.2
    , justement à cause de réglementations d'examens interdisant cette fonctionnalité au-delà des frontières françaises, et de recommencer à le faire évoluer... une calculatrice littérale à seulement
    80€
    ce serait fantastique, n'est-ce pas ? :D




    2) Application Calculs et boîte à outils

    Go to top

    Ici dans l'application
    Calculs
    nous sommes littéralement gâtés, c'est
    Noël
    avant l'heure.

    Comme nous l'avons déjà abordé dans la partie précédente, une nouveauté déjà est l'ajout de la gestion des unités du système impérial. Tu les retrouveras dans la boîte à outils avec les autres unités : :)
    • directement dans la catégorie
      Superficie
      (
      acre
      )
    • dans les catégories
      Distance
      ,
      Volume
      et
      Masse
      , en 1er ou 2ème niveau selon ton choix de pays :
      • Distance
        :
        • in
          (pouce)
        • ft
          (pied)
        • yd
          (yard)
        • mi
          (mile)
      • Volume
        :
        • tsp
          (cuillère à café)
        • tbsp
          (cuillère à soupe)
        • floz
          (once fluide)
        • cup
          (tasse)
        • pt
          (pinte)
        • qt
          (quart)
        • gal
          (gallon)
      • Masse
        :
        • oz
          (once)
        • lb
          (livre)
        • shtn
          (tonne courte)
        • lgtn
          (tonne longue)

        De nouvelles unités de température bien plus usuelles que le
        Kelvin
        sont également rajoutées, les degrés
        Celsius
        et
        Fahrenheit
        . :bj:

        Une petite nouveauté non négligeable est que tu ne perds plus le calcul en cours de saisie si tu sors de l'application
        Calculs
        , par exemple pour aller copier-coller une donnée présente dans une autre application, très pratique ! :bj:

        Grande nouveauté, la calculatrice gère maintenant le calcul vectoriel. Une nouvelle entrée est disponible en ce sens dans la boîte à outils avec les fonctions dédiées : :bj:
        • dot(,)
          (produit scalaire)
        • cross(,)
          (produit vectoriel)
        • norm()
          (norme)
        Attention, ne sont reconnues en tant que vecteurs et donc acceptées par ces fonctions que les seules matrices colonne, pas les matrices ligne. C'est d'ailleurs dommage pour l'intuitivité.

        Le calcul matriciel bénéficie quant à lui de deux nouvelles fonctions :
        • ref()
          (forme échelonnée)
        • rref()
          (forme échelonnée réduite)
        Précisions que les résultats matriciels bénéficient à leur tour de résultats additionnels calculés automatiquement :
        • déterminant
        • inverse
        • forme échelonnée
        • forme échelonnée réduite
        • trace

        Les fonctions
        gcd(,)
        et
        lcm(,)
        te permettaient jusqu'à présent de calculer les
        PGCD
        et
        PPCM
        de seulement 2 nombres. Au-delà, tu devais imbriquer plusieurs appels.

        Désormais les fonctions
        gcd()
        et
        lcm()
        acceptent autant de paramètres que tu veux ! :bj:




    3) Application Fonctions

    Go to top

    Un objectif clairement affiché de la calculatrice
    NumWorks
    c'est l'intuitivité. Par exemple dans l'application
    Fonctions
    :
    • tu bénéficiais d'un réglage automatique des bornes verticales de la fenêtre
    • dans le cas de fonctions trigonométriques, tu bénéficiais même en prime d'un réglage automatique des bornes horizontales
    L'objectif visé était de te garantir une bonne visibilité graphique de tous les éléments pertinents à étudier, sans que tu aies à régler toi-même les bornes de la fenêtre.

    Mais voilà, cela ne produisait pas tout-le-temps des résultats optimaux. Notamment en dehors des fonctions trigonométriques l'intervalle sur lequel la fonction était représentée restait par défaut figé sur [-10;10], ce qui pouvait écraser, déformer, ou même rejeter hors fenêtre plusieurs éléments remarquables.

    Désormais l'onglet
    Graphique
    dispose d'une toute nouvelle barre de menu, avec par défaut une option
    Auto
    qui tentera d'ajuster au mieux aussi bien les bornes horizontales que verticales de la fenêtre ! :bj:
    Fantastique, on pourrait commencer à se permettre de parler d'intelligence artificielle, et tout ça dans une calculatrice. :o


    Si tu souhaites corriger d'éventuelles distortions, tu pourras également choisir d'orthonormer le repère d'une seule touche via ce même menu. :)


    Jusqu'à présent, tes possibilités de naviguer rapidement dans la représentation graphique d'une fonction étaient peu intuitives et donc en pratique assez contraintes.

    Outre le réglage manuel d'une nouvelle fenêtre, la méthode la plus évidente était de faire suivre la courbe par le curseur, et la fenêtre s'adaptait alors automatiquement lorsque ce dernier en sortait.
    Le parcours de la courbe prenait donc du temps, et tes possibilités de navigation étaient contraintes par la sortie du curseur de la fenêtre, ce qui n'était pas toujours possible verticalement.

    Tu avais mieux mais dans la fort mal nommée option
    Zoom
    .

    Plus besoin de réglage fastidieux de la fenêtre ni de curseur pour explorer la représentation graphique désormais, de façon maintenant évidente l'option
    Zoom
    est renommée
    Naviguer
    .

    Tu pourras ici immédiatement faire défiler la fenêtre horizontalement ou verticalement à l'aide des touches fléchées, et toujours zoomer avec les touches
    +
    et
    -
    . :bj:




    4) Application Suites

    Go to top

    L'application
    Suites
    bénéficie déjà des nouvelles possibilités de fenêtrage automatique décrites précédemment dans la partie
    Fonctions
    .

    Grande nouveauté, comme cela avait déjà été fait avec les fonctions, les suites définies dans l'application
    Suites
    sont maintenant accessibles et utilisables depuis les autres applications. :bj:

    Tu pourras les consulter et saisir en écriture naturelle via la touche
    var
    , ou encore y faire appel directement sous l'écriture parenthésée.
    Une belle intégration multipliant les libertés de recherche et résolution de problèmes. :D

    Lorsque tu saisissais les expressions pour définir une suite, il t'était possible de faire référence au terme de rang
    n
    ou
    n+1
    de la même suite ou d'une autre suite.

    Toutefois la vérification syntaxique était très stricte, et t'empêchait d'utiliser un terme utilisant un autre rang de
    n
    (
    n+2
    , ...)
    et même pire un terme de rang fixe, particulièrement embêtant dans l'initialisation de certaines suites récurrentes.

    La vérification syntaxique a été corrigée, tu as maintenant toute liberté d'utilisation de terme de suites dans tes définitions de suites. :bj:




    5) Application Statistiques

    Go to top

    L'application
    Statistiques
    bénéficie elle aussi sur son onglet
    Graphique
    des nouvelles possibilités de fenêtrage automatique de l'application
    Fonctions
    .

    Dans l'application
    Statistiques
    , il t'est désormais possible de trier les colonnes de valeurs ou effectifs dans l'ordre croissant. :)

    Pour cela il te suffit juste de sélectionner le nom de la colonne avec les touches fléchées, puis de taper
    OK
    pour accéder au menu contextuel.




    6) Application Régressions

    Go to top

    L'application
    Régressions
    bénéficie également de la nouvelle possibilité de trier les colonnes, ainsi que des nouvelles possibilités de fenêtrage automatique. Mais ce n'est pas tout.

    Quand tu réalisais une régression linéaire, tu avais droit au calcul du coefficient de détermination
    te permettant de juger de l'adéquation au modèle de régression en question.

    Toutefois, le coefficient
    n'était pas calculé lorsque l'on choisissait un modèle de régression autre que linéaire.

    Désormais, le coefficient
    est bien calculé pour l'ensemble des modèles de régression gérés. :)




    7) Application Python

    Go to top

    Comme sur d'autres modèles, l'application
    Python
    était un peu à part dans le système de la calculatrice. Elle utilise par définition même un système de notation différent de toutes les autres et ne permettait que peu le partage de données, gênant ainsi le processus de recherche et résolution d'un problème, particulièrement dans le cadre des tâches complexes mobilisant diverses compétences et faisant appel à différentes applications.

    Pour importer des données dans ton application
    Python
    , tu avais la possibilité de copier-coller.

    Mais voilà, avec les différences de notation, tu pouvais obtenir des erreurs de syntaxe ou pire des résultats complètement différents et donc faux. :mj:

    Et bien bonne nouvelle, cet écueil a été corrigé. :bj:

    Les différences de notation sont maintenant corrigées de façon totalement automatique et transparente lors de l'opération de collé
    (symboles de multiplication, puissance, racine, ...)
    .


    Inversement, si tu souhaitais exporter les données de ton application
    Python
    par copié-collé, tu rencontrais le même genre de difficultés. :mj:

    Et ici encore bonne nouvelle, la transcription automatique est également gérée dans ce sens-là désormais ! :bj:




    Une fois de plus
    NumWorks
    nous signe là une superbe mise à jour, améliorant encore et toujours gratuitement les possibilités de ta calculatrice favorite, félicitations ! :bj:

    Nous en profitons pour remercier les contributeurs bénévoles ayant aidé à l'élaboration de cette mise à jour :

    Lien
    :
    Mise à jour
    (demander l'installation de la version bêta, puis suivre les instructions)
    Link to topic: Lancement bêta-test public NumWorks v15 (Comments: 26)

    Solar, le système Solaire en Python sur NumWorks, TI, Casio

    New postby critor » 09 Nov 2020, 14:50

    Si d'une façon ou d'une autre tu es passé·e dans un collège ou lycée au milieu des années 1990, peut-être te souviens-tu du logiciel également connu sous le nom de
    Orbits : voyage à travers le système solaire
    , la banque de données sur le système solaire, dont on retrouvait une copie sur la plupart des ordinateurs
    286/386/486
    laissés en accès libre.

    Sorti en 1991, le logiciel était distribué en France par
    Nathan Logiciels
    , éditeur qui s'était popularisé la décennie précédente sous le nom de
    Cédic Nathan
    dans le contexte du plan
    IPT
    (
    I
    nformatique
    P
    our
    T
    ous)
    avec les microordinateurs
    Thomson MO5
    et
    TO7
    .

    Il s'agissait en fait d'une francisation du logiciel américain
    Orbits : Voyage Through the Solar System
    par
    WinterTech
    .

    13197
    Jil Saint-Martin
    et
    Emmy Vadon
    débutent l'enseignement de spécialité spécialité
    NSI
    (
    N
    umérique et
    S
    ciences
    I
    nformatiques)
    en Première au lycée
    Louis Pasteur
    d'
    Avignon
    .

    Leurs enseignants exigeants leur ont déjà demandé de concevoir et rendre pour les congés de Toussaint un premier projet
    Python
    complet sur calculatrice
    NumWorks
    .

    Grâce à
    Jil
    et
    Emmy
    , voici donc dès maintenant la nouvelle référence à installer sur toutes les calculatrices
    NumWorks
    :
    Solar :
    une brève navigation dans l'espace sur Python
    ! :bj:

    Solar
    est donc une banque de données sur le système solaire, comparable à
    PC Univers
    .

    Elle bénéficie toutefois d'une bien meilleure intuitivité et interactivité. Pas d'horrible menu de haut d'écran à dérouler et lire ici, tout se contrôle avec les touches fléchées du clavier, avec un retour visuel immédiat.
    Flèches gauche et droite pour choisir son étoile ou planète alors mise en surbrillance, et flèches haut et bas pour en faire défiler les différentes propriétés.

    Près de 30 ans après
    Solar
    a également le gros avantage de bénéficier de données à jour, c'est-à-dire que
    Gil
    et
    Emmy
    se sont donné la peine de supprimer tout ce qui concernait
    Pluton
    . :troll:


    Non plus sérieusement
    aux âmes bien nées la valeur n'attend point le nombre des années
    , toutes nos félicitations à
    Jil
    et
    Emmy
    qui ont su relever des défis ambitieux et développer de belles capacités et compétences. On peut retenir entre autres : :bj:
    • déjà de base des qualités artistiques et graphiques indéniables
    • une belle maîtrise du codage des couleurs
      RVB
      , superbement exploitée ici dans le contexte des dégradés
    • un beau travail de recherche sur le tracé de cercles dans le contexte de la géométrie et du théorème de
      Pythagore
      (aucune fonction en ce sens n'étant actuellement fournie par la bibliothèque de tracé par pixels
      kandinsky
      de la
      NumWorks
      )
      , basé sur le travail de
      Philippe Moutou
      , avec des fonctions soigneusement calibrées pour ne pas laisser de trous dus aux arrondis lors du remplissage d'un disque en dégradé
    • et toute la logique algorithmique permettant d'afficher tout ça, notamment en terme de boucles
    N'hésite pas à aller consulter leur compte-rendu pour plus d'informations.

    Mais peut-être n'as-tu pas de
    NumWorks
    ? :'(

    13198Et bien ne t'inquiète pas car n'étant pas sectaires et afin que personne ne soit privé, nous nous sommes de notre côté occupés de la compatibilité universelle de
    Solar
    , grâce à la bibliothèque
    polycalc
    que nous avons créée dans le cadre de notre concours
    Python
    de rentrée
    2020
    et que nous avons fait évoluer ici avec de nouvelles fonctions, notamment pour la détection des touches clavier.

    Le chef-d'œuvre de
    Jil
    et
    Emmy
    est dès maintenant disponible sur
    TI-Nspire CX II
    ! :bj:

    Ce fut l'adaptation la plus facile, nous avons juste eu à effectuer les connexions à notre bibliothèque et ça marche tout seul. :)

    13199
    La compatibilité
    Casio Graph 90+E / fx-CG50
    fut plus compliquée. Le gros défaut à ce jour de leur solution
    Python
    est qu'elle ne fournit pas de fonction pour tester les appuis de touches clavier. La seule touche que l'on peut détecter c'est la touche
    AC/ON
    , en interceptant et détournant l'exception d'interruption qu'elle génère.


    Nous avons donc ici dû adapter le fonctionnement ; il faut taper
    AC/ON
    pour passer à la planète ou étoile suivante, et les différentes propriétés défilent automatiquement.

    13200
    Mais bon, ce n'était rien ça encore... La compatibilité
    TI-83 Premium CE Edition Python
    et
    TI-84 Plus CE-T Python Edition
    fut hautement plus complexe. L'ennui étant que le script original est conçu pour exploiter une mémoire de tas
    Python
    de
    32K
    , et ici nous nous disposons que de
    16K
    ...


    Ce ne fut pas facile, mais heureusement le code de
    Jil
    et
    Emmy
    était encore grandement optimisable. Données dupliquées, fonctions de tracé remplacées par les appels natifs lorsque disponibles, variables globales effacées une fois utilisées... Après plusieurs heures de casse-tête eurêka ça marche ! :bj:

    Nous faisons d'ailleurs profiter rétroactivement de nos adaptations précédentes de ce code optimisé.

    Et pour les curieux, petite comparaison contextualisée des performances :

    1. 4s
      -
      TI-Nspire CX II
      : avec un affichage en
      double buffering
      et nombre de fonctions de tracé natives :bj:
    2. 12s
      -
      NumWorks
      : pas de
      double buffering
      , et les fonctions de tracé natives sont extrêmement réduites, juste de quoi remplir un rectangle ce qui ne nous aide pas ici, les cercles et disques sont donc dessinés dans le code pixel par pixel :)
    3. 1min49s
      -
      Casio Graph 90+E / fx-CG50
      : affichage en
      double buffering
      , mais pas de fonctions de tracé natives en dehors de l'allumage de pixels isolés :(
    4. 2min36s
      -
      TI-83 Premium CE Edition Python / TI-84 Plus CE-T Python Edition
      : pas de
      double buffering
      , riche bibliothèque de fonctions de tracé natives, mais la communication à chaque appel de fonction graphique entre le coprocesseur
      Python Atmel
      et le processeur principal historique
      eZ80
      s'occupant de l'écran fait office de goulot d'étranglement :mj:


    Téléchargements
    :

    • Solar
      (pour
      NumWorks
      - original)
    • Solar
      (pour
      NumWorks
      et )
    • Solar
      (pour
      TI-Nspire CX II
      )
    • Solar
      (pour
      TI-Nspire
      avec + )
    • Solar
      (pour
      Casio Graph 90+E / fx-CG50
      )
    • Solar
      (pour
      TI-83 Premium CE Edition Python / TI-84 Plus CE-T Python Edition
      )
    Lien
    :
    https://nsi.xyz/Une-breve-navigation-da ... sur-python

    Prototype TI-84 Plus CE révélant connexions puces

    New postby critor » 10 Nov 2020, 11:44

    Pour la rentrée 2020,
    Texas Instruments
    a sorti 2 nouveaux coloris pour ses calculatrices
    TI-84 Plus CE
    , dont le
    Totally Teal
    (totalement sarcelle)
    représenté ci-contre.

    Dans plusieurs articles précédents nous t'avions également parlé de alias
    mr womp womp
    et de ses formidables trouvailles autour des prototypes de calculatrices
    Texas Instruments
    , et de sa formidable collection.

    Voici aujourd'hui une de ses dernières trouvailles, un nouveau prototype ajouté à sa collection, justement une
    TI-84 Plus CE
    aux couleurs bien reluisantes.

    Son caractère de prototype est indiqué par l'étiquette apposée au dos :
    Sample for New color

    B1.3
    evaluation


    Petit problème toutefois, cette
    TI-84 Plus CE
    ne s'allume pas. Et en effet, les contacts de la batterie sont manquants...

    Précisons en effet que les prototypes conçus par
    Texas Intruments
    sont de différents types :
    • engineering sample
      :
      Ces prototypes très rares car bien souvent détruits par le contructeur, sont destinés à ses propres ingénieurs développant le produit et peuvent inclure des particularités logicielles ou matérielles remarquables.
    • marketing sample
      :
      Ces prototypes bien plus fréquents et habituellement très proches des modèles de production, ciblent l'utilisation. Ce sont ceux fournis aux équipes
      marketing
      du constructeur afin de pouvoir être présentés et manipulés lors de divers événéments, et ceux auxquels nous avons accès de temps en temps.
    • display sample
      :
      Plus rares, ces prototypes n'ont pas vocation à être manipulés mais juste exposés lors de divers événements. Ils ne sont donc pas forcément fonctionnels

    Il s'agit donc ici d'un prototype
    display sample
    et donc non fonctionnel de la
    TI-84 Plus CE
    bleue métallique
    , potentiellement prévu par
    Texas Instruments
    pour être testé en interne et/ou exposé sur une étagère ou dans une vitrine lors d'un événement éducatif lors d'une rentrée scolaire.

    En fait, on se rend compte après ouverture que ce ne sont pas juste les contacts de la batterie qui manquent. :#roll#:

    Toute la couche électronique est ici manquante, la carte électronique est entièrement nue, rien n'a été soudé dessus. :o

    L'occasion pour toi de découvrir comme jamais le circuit électronique ainsi que pour la première fois au monde le détail des connexions des puces
    Flash
    et surtout
    ASIC
    . :bj:

    La référence de carte
    SG93/F/T-10-1
    nous est inconnue. A ce jour nous avons référencé :
    • SG92A/F-10-2
      ; jusqu'à la révision matérielle
      A
      ; assemblées jusqu'en
      juillet 2015
    • SG92A/F/AT-11
      ; révision matérielle
      B0
      ; assemblées en
      novembre 2015
    • SG92A/F/AT-12
      ; révisions matérielles
      C
      à
      E
      ; assemblées de
      mars 2016
      à
      mars 2017
    • SG93/F/T-13
      ; révision matérielle
      I
      ; assemblées de
      mars 2017
      à
      août 2017
    • SG93/F/T-14
      ; révision matérielle
      L
      ; assemblées de
      février 2018
      à
      mai 2019
    • SG95/F/T-10-2(2L)
      ; à partir de la révision matérielle
      M
      ; assemblées à partir d'
      avril 2019
    Il semble s'agir d'un prototype des nouvelles cartes
    SG93
    ayant été utilisées à compter de la révision matérielle
    I
    , une révision majeure puisque remplaçant parallèlement l'ancien
    ASIC
    ET-2015
    par le
    ET-2017
    .

    Résultat du concours de rentrée 2020 - Défi Python de Xuanwu

    New postby Lephe » 10 Nov 2020, 20:14

    Salut à la communauté TI-Planet ! On se retrouve aujourd'hui pour analyser et classer les participations à notre Défi Python de Xuanwu, le premier défi de du concours de rentrée 2020 ! :)


    Nous avons reçu
    154 participations de 28 personnes
    , le plus grand nombre de personnes individuelles et second plus grand nombre de participations toutes éditions confondues. Là-dedans, 6 personnes se sont placées dans la guilde Planète Casio et 16 dans la guilde TI-Planet. Merci à tous ! o/

    Image

    L'objectif de cette épreuve était de parcourir un labyrinthe en consommant le minimum d'énergie à l'aide d'un véhicule programmable. Les modalités ont été détaillées par Hackcell dans un topic d'entraide si vous voulez voir les détails ; les principaux éléments sont les suivants :

    • Les contrôles disponibles sont de la forme avancer, tourner à gauche et tourner à droite.
    • Il y a un coût fixe pour chaque action.
    • Il y a aussi un coût sur le nombre de décimales des valeur spécifiées : avancer(1.3937) coûte plus cher que avancer(1.4).
    • Il y avait plusieurs chemins et les chemins plus longs recevaient un petit bonus pour équilibrer.

    Voyons voir ce que vous avez réussi à trouver avec ces règles ! Nous avons rédigé quelques commentaires pour chacune de vos participations, n'hésitez pas à ajouter des détails sensationnels et autres techniques secrètes dans les commentaires. :D


    Le classement



    26.
    Image
    KikooDX
    (ImageImage) :
    320011.24538193
    (Programme : x37.py)

    Notre première participation est de bien des façons également la meilleure. Voyez-vous, il y a un secret dans ce labyrinthe. Si vous tournez de 2⁹ radians vers la droite tout en avançant de 1337 pas entre chaque rotation, vous serez emmené·e tout droite à la sortie ! Définitivement la méthode la plus élégante !

    Au fond cette technique reflète bien l'usage quotidien des calculatrices de niveau Lexibook, et ça se voit puisque le score final s'approche du rapport prix/qualité de la machine. x3

    Image


    25.
    Anonyte
    (Image) :
    161.84356628353
    (Programme : x18.py)

    La participation suivante nous vient d'Anonyte. Personne n'a eu de mal à situer, vu le calcul du score, que les chemins ayant le moins de segments seraient les moins chers à autres facteurs égaux. On attaque donc avec un chemin de longueur 11, des angles et longueurs ajustés à la main - les angles au dixième, parfois au centième.

    Ce score de 161 représente une amélioration de 99.949% par rapport à la participation précédente, la plus grosse séparation de toute l'épreuve. :troll:

    Image


    24.
    Image
    OulanB
    (Image) :
    138.59776036691
    (Programme : x38.py)

    En ajustant les longueurs au dixième également, OulanB évite les collisions avec les murs, qui sont lourdement pénalisées sur le score. On gagne immédiatement 23 points sur le résultat. Dans l'ensemble tout le monde a fait attention à ne pas croiser les murs quitte à s'arrêter au milieu des couloirs.

    Image


    23.
    Image
    Arm234
    (Image) :
    132.33617133049
    (Programme : x84.py)

    Le programme d'Arm234 est le premier à utiliser un chemin de 10 segments. Les longueurs sont ajustées au centième, ce qui ajoute entre 10 et 20 points, mais l'économie d'un segment (une orientiation à 5 points et un mouvement à 8 points, plus les décimales) permet de compenser. Ce qui montre bien que la première étape devait être de trouver le chemin le plus court sans se soucier du calcul des décimales. ;)

    Image


    22.
    M4x1m3
    (Image) :
    105.42754591515
    (Programme : x20.py)

    Ce parcours de M4x1m3 est certainement le plus tordu de toutes les soumissions ! Malgré un bon détour, il atteint un score de 105 points. J'admets ne pas être certain de comment il en arrive là. :lol:

    Image


    21.
    Image
    Robin M.
    :
    104.18973099423
    (Programme : x107.py)

    Le chemin emprunté par Robin M. est le seul à passer par la ligne supérieure. C'est un passage que j'avais envisagé en ajoutant le bonus pour les chemins plus longs. Il n'est pas très compétitif (malheureusement ce problème laisse peu d'espace aux variations sur le chemin), mais ça reste une bonne approche qui s'avance très près de la barre de 100 points.

    Image


    20.
    Image
    Darks
    (ImageImage) :
    91.41917680793
    (Programme : x52.py)

    Avec Dark Storm on arrive au point du classement où tout le monde utilise la même technique de sortie. Ce zig-zag final permet d'éviter des tours et cache encore une surprise que le top 13 a su s'approprier. C'est aussi la dernière participation à 10 segments et la première en-dessous de 100 points. Le point d'équilibre parfait !

    Image


    19.
    Image
    CaptainLuigi
    (ImageImage) :
    81.601629520489
    (Programme : x146.py)

    C'est ce chemin qu'on découvre avec CaptainLuigi, à 9 segments, qui est utilisé par le plus de participants : 10 en tout. On est tout juste avant la limite de 80 de score et l'optimisation s'apprête à descendre dans les fins détails de distance, de décimales sur les angles, et de décimales sur le score.

    Image


    18.
    Image
    bebertii
    (ImageImage) :
    76.379566366772
    (Programme : x123.py)

    Avec le même chemin que le CaptainLuigi, mais 4 décimales de moins dans la spécification des angles et des longueurs, bebertii inaugure la catégorie 70-79 de score, qui est la dizaine finale. Aucun chemin soumis ne produisait un score en-dessous de 72 (décimales non comprises). De là à vous dire si c'est possible ou non... je vous laisse émettre les hypothèses.

    Image


    17.
    Afyu
    (ImageImage) :
    76.000906078003
    (Programme : x64.py)

    Ce chemin est l'alternative à 9 segments. La plupart des meilleurs scores se sont battus entre cette version et celle des deux soumissions précédentes. La différence n'est pas énorme, mais c'est intéressant de voir alterner les formes au fur et à mesure qu'on monte en score. J'ai tenté d'équilibrer le score pour qu'il y ait plus d'un chemin optimal mais ce sont les deux qui tiennent la compétition.

    Si vous avez regardé le code de génération, c'est ce que Wikipédia appelle le fusion aléatoire de chemins sauf qu'on continue de retirer des murs une fois le labyrinthe connexe, justement pour qu'il y ait plus de solutions.

    Afyu nous a même donné une explication de sa méthode. ^^

    Afyu wrote:Effectivement, j'ai tout fait moi même, mais sans décortiquer le script, donc j'ai raté l'astuce des angles à une seule décimale.
    Pendant mes recherches, au début, j'ai choisi des arrondis, mais pas forcément au dixième

    Code: Select all
    distance[a]=int(100*distance[a]+1)/100

    simplement parce que l'écriture avec un grand nombre de 9 après la virgule (dû à la méthode de calcul en binaire des ordi) des nombres déterminés par mon algorithme me dérangeait "esthétiquement". :p
    J'ai effectivement le "bon" chemin (aux ajustements d'angles et de distances près) et j'ai également longuement travaillé sur le chemin finalement également choisi par Pavel. J'avais trouvé l'astuce de mettre une dernière distance hors bornes pour améliorer le score, mais ça n'a pas suffi.
    (message original)

    Image


    16.
    Image
    Dubs
    (ImageImage) :
    74.750056119786
    (Programme : x139.py)

    La participation de Dubs est la seule rendue sur HP Prime. Pour rappel, le calcul des collisions et du score est fait purement formellement, et n'est pas impacté par l'affichage. Donc la notation est indépendante du modèle (sauf cas pathologiques de résultats de calcul en flottant). Notez qu'on revient au premier chemin de 9 segments.

    Image


    15.
    Image
    cent20
    (Image) :
    73.04042664132
    (Programme : x102.py)

    Alors qu'on se rapproche de la barre fatidique des 72, on repasse sur le chemin alternatif de 9 segments. À ce stade tout le monde limite au maximum l'utilisation des décimales, que les solutions soient optimisées à la main ou pas.

    L'idée de compter les décimales vous surprendra peut-être. L'intuition c'est que si on autorise des nombres quelconques sans pénalité, il devient beaucoup plus facile, une fois qu'on a une idée générale du chemin à prendre, de calculer les angles et les longueurs qui optimisent la distance parcourue, le total d'angle parcouru, ou à peu près n'importe quelle métrique de votre choix.

    De façon générale, les problèmes sur les réels sont
    plus faciles
    que les problèmes sur les entiers. Cette contrainte visait à vous empêcher de calculer les optimaux avec un programme en trois clics. Même si, vous le verrez à la fin du classement, ça s'est retourné contre moi puisque la pénalité était trop forte et du coup le nombre de valeurs viables (à 0.1 près) était faible, ce qui a permis à certains candidats de faire du brute-force.

    Image


    14.
    Image
    grandben49
    (Image) :
    73.003909873986
    (Programme : x137.py)

    Vous remarquerez que tout le monde ne fait pas le zig-zag final de la même façon. Certains le prennent de façon plus serrée, comme grandben49, alors que d'autres en font des paquets pour faire le long aller-retour possible. Ça vient du bonus attribué aux chemins les plus longs. Il n'y a de coût que pour utiliser les fonctions et spécifier des décimales. Une fois le nombre de segments fixé, c'est plus rentable de parcourir le plus de longueur possible pour minimiser le score.

    Image


    13.
    Image
    Ne0tuX
    (ImageImage) :
    72.747717453626
    (Programme : x150.py)

    Ne0tux est le premier dans ce classement à avoir utilisé le bonus de longueur (qu'il a remarqué de justesse) lors de la sortie du labyrinthe. Voyez-vous, pour une raison complètement intentionnelle que j'avais absolument prévue et validée durant les tests, le programme continue de vous faire avancer une fois que vous avez passé la sortie. :sry:

    Du coup, si vous prenez un angle rasant pour sortir du labyrinthe le plus à l'horizontal possible, le chemin peut se prolonger sur un bon paquet de cases avant d'atteindre le mur fixé en bas de l'écran. Tout ce parcours supplémentaire s'ajoutant bien entendu au bonus de longueur, ce qui permet de réduire le score final.

    Bravo à tous ceux qui s'en sont rendus compte à la lecture du code. ^^

    Ne0tux wrote:J'ai procédé de façon un peu originale ; une réminiscence des défis de dessin des années précédentes. J'ai commencé par lire le code puis confirmer certaines intuitions via la GUI de Pavel. Puis j'ai téléchargé le code sur mon smartphone et imprimé le labyrinthe sur papier, avant de partir pour 15 jours de congés sans PC ni Wifi. Avec mon bout de papier, une règle, un rapporteur et la volonté de faire un nombre minimal de traits les plus longs possibles et passant par le centre des "portes", j'ai pu tracer une sorte de "couloir des possibles".

    J'en ai testé plusieurs sur smartphone (sans GUI) et validant ma solution finale via la version Oméga en ligne. Comme comparer était fastidieux depuis mon petit écran, je n'ai pas cherché plus loin que le 1e digit pour la rotation (ça tombe bien, il fallait le moins de digit possible). Sauf sur l'un des premiers points, ce qui explique que je sois resté à 72. Pour la longueur des segments c'était moins drôle car la mesure sur mon papier ne correspondait pas : souvent on pouvait approcher un mur, augmenter la longueur et quand même diminuer le score. J'ai bien faillit ne pas le voir !

    La seule "optimisation" scriptée pour moi concernait la longueur et l'orientation des deux derniers segments, pour aller chercher un x en dehors du labyrinthe le plus loin possible.
    (message original)

    Image


    12.
    jacobly
    (Image) :
    71.056893450111
    (Programme : x31.py)

    Une autre participation qui se démarque est celle de jacobly, qui n'utilise... que des entiers. Vous avez bien entendu : un peu d'imagination, une bonne heure de recherche et une calculatrice lui ont visiblement suffit pour passer sous la barre des 72. Je vous cache pas que je m'y attendais pas à celle-là. :whistle:

    jacobly wrote:Not much to say about my method, just spent about an hour finding the shortest path with the original program, and couldn't be bothered optimizing floating-point error for the update.
    (message original)

    Image


    11.
    Image
    Filoji
    (ImageImage) :
    71.018891561397
    (Programme : x96.py)

    Certains de ces commentaires sont très complets donc je vous laisse avec les explications. :)

    Filoji wrote:
    1 - Découverte

    C'était la catastrophe, entre le topic d'entraide et les calculs incompréhensibles, je me disais que c'était peine perdue... Mais j'ai persévéré, et ai trouvé enfin le premier chemin ! (142 pts)
    Bon, après j'ai continué et j'ai trouvé mieux (120 pts)

    2 - Le sub 100

    Je rejoins PC et Casio pour avoir la meilleur équipe (Parce que Lexibook :E)
    Grâce à Bzh, j'ai trouvé le bon chemin (Il avait fait ça à l'arrache sur Gimp), et je trouve mes 1ers sub 100 !!! (88 pts)
    Ensuite, Pavel nous partage son outil pour améliorer notre score, et je m’améliore encore (75 pts, 72 pts)

    3 - La course aux décimales

    C'est bon, j'ai compris la technique... Mais quelques heures trop tard !
    J'arrive ex aequo avec toute les personnes de ce rang, et je cherche alors à faire le moins augmenter mon score pour pouvoir trouver un score unique
    Ça y est, j'ai trouvé, Merci Pavel, j'ai séché ton programme pour enfin trouver les 71,01889156139690 et les 200 unités de déplacement pour optimiser le plus ma consommation

    Fin, voilà, c'est pas extraordinaire, mais c'est moi qui l'ai fait ^^
    (message original)

    Image


    10.
    Image
    TIny_Hacker
    (Image) :
    71.000399584431
    (Programme : x151.py)

    Pas mal de gens ont utilisé l'interface graphique de Pavel pour faire leurs tests. Critor et moi avions une version SDL2 de polycalc.py pour tester rapidement sur PC (... même si Critor a enduré la mise en compatibilité avec tous les modèles), mais Pavel a carrément créé un outil interactif pour explorer le labyrinthe. Alors tout de suite les scores sont descendus pas mal. :p

    Voilà une image de l'explorateur interactif de Pavel, puis l'explication de TIny_Hacker.

    Image

    TIny_Hacker wrote:Honestly, I only did this well because of Pavel's GUI, which allowed me to test my ideas faster than manually typing them out, and to tweak things as I went. I started by figuring out on paper what path had the fewest number of segments and went from there. Eventually, I discovered that shortening the decimal on turns would decrease the score, and finally that adding a 0.000049999 (or something like that) could decrease the score without changing the path itself. Afterward, I just messed around till I got as low of a score as I could. That's about all there was to it!
    (message original)

    Image


    9.
    dvon
    (Image) :
    71.000243500836
    (Programme : x152.py)

    Pour sa part, dvon a utilisé un algorithme aléatoire, visiblement en déplaçant au hasard les angles de quasi-multiples de 2π le long du chemin pour obtenir un meilleur score. Le sujet imposait des limitations pour éviter ce genre de méthode, bravo pour les avoir contournées ! :)

    Cette participation est la première à utiliser des variations d'angle et de distance inférieures à 10⁻⁵. En effet, à cause de différences de calcul d'une machine à l'autre, il a fallu faire pas mal de compromis sur l'évaluation du nombre de décimales. Un de ces compromis était d'arrondir à 5 chiffres après la virgule... ce que les participants observateurs se sont empressés d'utiliser à leur avantage.

    dvon wrote:For my solution, I started with the GUI shared by Pavel. I added code to try to automatically tweak argument values to get lower scores. But this didn't help, because (as I figured out eventually) the best scores were always from the values with only one digit after the decimal point.

    In the end I used a version of the GUI modified just a little bit. I added code to output a record of scores for everything I tried a long a path, so that I could make sure I was doing at least as well in the current attempt as in previous attempts, and I made it possible to tweak angle and distance arguments by +-0.000004 units (and not round
    the tweak away), since this slight difference wouldn't affect the part of the score based on the number of characters needed to represent the value. Also, for each turn I experimented with adding or subtracting a full rotation (i.e., about 2pi but not exactly because of the 1/10 increments) and was able to avoid using any angles that would be treated as 4-character values in that part of the scoring.
    (message original)

    Image


    8.
    Ruadh
    (ImageImage) :
    71.000066133741
    (Programme : x112.py)

    Déjà top 8, et on arrive sur la première optimisation à coup de sinus. Un des problèmes des toutes premières versions du script c'est que seul le coût des déplacements était pris en compte. Ce coût est entier, il n'y a donc rien à exploiter entre 71 et 72... ce qui aurait fait beaucoup trop d'égalités.

    Du coup j'ai proposé de faire la modification arbitraire d'ajouter au score le sinus de la somme des longueurs et angles utilisés durant le parcours. C'est fourbe parce que comme les participations sont limitées à peu de décimales, il n'est pas facile d'atteindre les valeurs minimales du sinus, qui se situent sur des demi-multiples de π. Par chance, 11 est presque égal à 3.5π donc il était possible d'avoir un sinus de presque -1 et donc d'arriver à presque 71. :)

    Ruadh wrote:En lisant le programme, j'ai pu apprendre qu'il fallait :
    - minimiser le nombre de virages
    - ne pas foncer dans les murs
    - parcourir une distance d'au moins 200
    - utiliser des distances et angles avec au plus une décimale

    J'ai donc cherché manuellement un chemin qui respecte toutes ces propriétés et j'ai obtenu un score aux alentours de 72. J'ai ensuite remplacé certaines rotations afin de minimiser le sinus (tourner à gauche de α revient à tourner à droite de -α) et j'ai obtenu le score 71,00001411857056 que beaucoup de personnes avaient déjà obtenu. J'ai donc à nouveau modifié les rotations pour avoir un score plus élevé.
    (message original)

    Image


    7.
    Image
    Alice
    (ImageImage) :
    71.000014118571
    (Programme : x88.py)

    Hackcell résume superbement l'intégralité des règles et techniques utilisées jusqu'ici. ^^

    Hackcell wrote:Alors, j'ai vraiment procédé étape:

    - Premier jet à la R.A.C.H.E (iso-1664) qui me donne dans les 150 points
    -Lecture du code et écriture d'un topic sur ce dernier, je me rend donc compte qu'il faut minimisé le nombre de virage et maximiser la distance (dans la limite des 200 unité arbitraire)
    - j'obtient donc un score d'environ 93.
    - je me rends compte que l'on peut continuer une fois sortit du labyrhinte, ce qui facilite la maximisation de la distance, je descend a un score de ~83 (si continuer ainsi n'avais pas été possible, l'epreuve aurait sans doute été beaucoup plus challenging, mais c'etait fun quand même)
    - grâce a ma connaissance du code, je me rends compte que le seul moyen de descendre c'est de supprimé un virage ou faire disparaitre les décimales. Or le meilleur score actuel est de 72 ce qui correspond au score que j'obtiendrait si j. supprimais ces decimales, je recherche donc de ce cotés, et bingo, 77, puis le fameux 72.
    - enfin presque, entre temps il y a une régles en plus, on reçoit des points en fonction du sinus d'une fonction assez simple a manipuler, le seul probléme c'est que pour supprimé les décimales on se retrouve a se balader de 0.1 en 0.1 sur cette fonction, ce qui n'est pas l'idéal pour la minimiser, je test donc plusieur valeurs , change des virages a droite de theta par des a gauche de -theta, tente de continuer aprés la sortie pour explorer cette fonction en restant dans les conditions optimales (9 virages, pas plus d'une décimale) et finis avec un 71,000…
    Je décide alor de m'arreter là jusqu'a ce qu'un score qui signifirais 8 virages soit trouvé, ce qui n'est pas arrivé.
    (message original)

    Image


    6.
    Image
    Ti64CLi++
    (ImageImage) :
    71.000013644375
    (Programme : x153.py)

    Malgré l'utilisation d'un bon vieux sinus pour tenter de faire sortir des scores différents à tout le monde, Ti64CLi++ s'est retrouvé plusieurs dans la situation de devoir ajuster ses scores pour éviter de créer des égalités (qui étaient interdites). Les plus rapides y trouvent leur compte... cela dit je veut bien donner un cookie à qui saura produire une égalité sur le défi du Léviathan sans se concerter ! :E

    Ti64CLi++ wrote:Alors, j'ai vraiment tout fais à la main.

    J'ai commencé par tester le programme et voir quel score je pouvais obtenir comme premier jet, et c'est ainsi que j'ai envoyé mon premier score de 148.

    Ensuite, j'ai vite compris que moins il y avait de segment, et plus ceux-ci étaient long tout en minimisant le chemin, meilleur le score était. Après plusieurs essais, j'ai donc obtenu les scores de 133 puis 99 puis 80. Entre temps, j'ai du donc changé de chemin pour descendre à 9 segments.

    Là j'ai commencé à bloqué, puis une première lecture du code m'a permise de me rendre compte que les chiffres significatifs jouaient un rôle important dans le calcul du score. J'ai donc cherché un moyen de passer à un unique chiffre après la virgule. J'ai ainsi baissé mon score à 74 puis 73 puis 72.

    Encore une fois, j'ai un peu galéré, mais après 1h de différents tests sur le même chemin, j'ai enfin passé la barre fatidique des 72. Il restait encore quelques améliorations à faire, mais après quelques changements minimes, je suis arrivé à mon score de 71.000014.
    Tout ça pour me rendre compte plus tard dans la journée après mise à jour des participation, que Tituya avait envoyé le même score quelques 40 minutes plus tôt.
    J'ai donc baissé mon score du minimum que je pouvais, et j'ai envoyé mon 71.00554.

    Je suis resté sur ce score jusqu'à ce que _iPhoenix_ descende en dessous de moi, et me propose de m'aider si vraiment je coince. Il me dit donc de regarder attentivement la fonction cout, à laquelle je n'avais pas vraiment fait gaffe.
    Après quelques réflexions et tests avec Python, je me suis aperçu que je pouvais encore baisser mon score en jouant sur les chiffres à 5 ou plus positions de la virgule à droite.
    J'ai donc aisément réussi à baisser mon score en appliquant cette technique et j'ai obtenu 71.0000139, parce que comme un débile je n'ai appliqué ça qu'aux distances et non aux angles. Tout ça pour me rendre compte que, encore une fois, Tituya, n'avait lui pas fait cette erreur, et par la suite avais soumis un score de 71.0000136.

    Enfin, quelques heures (pratiquement 2h tout pile) avant la fin du concours, j'ai retrouvé un peu de motivation, et me suis donc assuré la 6ème place en appliquant cette fois-ci la méthode aux angles. J'ai donc envoyé mon score de 71.00001364437452.
    (message original)

    Image


    5.
    Image
    Tituya
    (ImageImage) :
    71.000013644375
    (Programme : x141.py)

    Le top 5 est excessivement complet dans ses explications, donc je leur laisse la parole !

    Tituya wrote:On commence doucement avec une première tentative à 152. Ce score a bien chuté depuis :lol:

    Image

    À la toute première approche je n'ai absolument rien testé de précis, j'essaye simplement de voir à la main ce que je peux produire et comment contrôler cette
    machine mystique
    .

    Un peu de lecture, ça ne fait pas de mal :


    Je comprends cependant très vite que nous devons améliorer le nombre de virages pour changer la valeur du score. Je remarque en même temps que l'instruction `a_gauche` semble être plus rentable que sa compère `a_droite`.
    Et en effet, cela me permet bien de diminuer mon score.

    Je continue ma lecture du code. Nous avons une
    distance maximale possible de 200
    . Qui donne un bonus considérable sur le score final, il faut donc maximiser celui-ci !

    L'art du bourrinage :


    Dans une envie soudaine, je programme un code de bruteforce me permettant de trouver théoriquement le meilleur score possible. Je me rends vite compte que la vitesse de python et le nombre de calculs à faire rend juste impossible cette procédure :E

    Je lance quand même ce script pour optimiser les 3 premiers virages. Qui me donne des résultats plus que corrects !
    Je lance ainsi de suite des optimisations grâce à ce script d'une succession de virages. Ce qui m'amène à ce fameux score assez commun de
    71,00001411857056


    Puis je bloque.


    Je pars en freestyle pour voir ce que ça donne :


    Mais au bout d'un moment je me demande si je ne peux pas rajouter des 0 ou des 9 un peu partout sans aucune logique peut me permettre de descendre.
    Dans ma tête, le principe est simple :

    Il faut limiter au maximum la distance totale tout en gardant le score[6] à 200.

    J'essaye, ça marche correctement... Super ! :p

    Puis j'essaye des valeurs de plus en plus précise pour voir si ça change quelque chose, je me rends compte qu'en dessous de x.x99995, mon score descend.
    J'optimise donc à la main chaque virages pour enfin arriver à mon score final :
    71,00001364437450


    Des tentatives théoriques


    À partir de là, un peu de théorique. La précision des virgules est géré par le total (virage + distance). Je calcule alors ce que je dois enlever pour obtenir un score maximal.

    Je n'ai cependant jamais réussi à trouver ce score... Peut-être qu'il est d'ailleurs impossible à avoir :@
    Donc j'arrive avec ce magnifique score qui me donne la chance d'être 5e dans ce concours !
    (message original)

    Image


    4.
    Image
    LeGmask
    (Image) :
    71.000009639162
    (Programme : x149.py)

    LeGmask wrote:Spoiler: j'ai tout fait a la main
    Dans les faits la plupart de mes outils mon fait perdre plus de temps qu'autre chose, après nombreuse tentative je suis descendu a 100 et des brouettes et y suis resté bon nombre de temps, j'ai fini par craquée et est demandée des indices a _iPhoenix_ :)
    C’est là que le massacre commence, de 1 j’avais pas le bon chemin, et de 2 j’avais des angles a 2 décimales …

    Après quelque heure de recherche je finis finalement par descendre a 71,…14… sauf que spoiler, vu que je m’y suis pris encore une fois 3 mois après la course, le score était pris :notlikethis:
    À ce point obligé de détériorer mon score afin de publier pour la première fois mon résultat.

    Le cours de philo qui suit ne ma pas porter conseille et encore une fois _iPhoenix_ ma sauvée la mise avec un précieux indice, j’avais compris le code de l’arrondis, mais pas totalement vu que je n’avais pas pensée au tout petit décimal qui pourrait optimiser le tout encore plus 😊

    Finalement je descends et me place en 6e position, là j’ai beau essayée tout ce que je peux je ne comprends pas, comment descendre beaucoup plus, puis encore une fois un indice sur le sinus par _iPhoenix_ ma remis sur le pied de guerre, j’ai donc cherché et vu qu’on pouvait descendre sur le sinus de 11 beaucoup plus proche de -1, la avec les décimaux j’ai pu descendre mon score et me placer 4e
    Dans tous les cas je remercie grandement _iPhoenix_ pour tous ces petits conseils, sans lui je ne saurais sans doute pas là, et je reste une grande arnaque 😊.
    (message original)

    Image


    3.
    Image
    _iPhoenix_
    (Image) :
    71.000009399186
    (Programme : x134.py)

    _iPhoenix_ wrote:After getting the opencv2 script from commandblockguy, I tried getting a path that worked, not thinking too much about scoring- I ended up with a score that was around 470 or so, not so great: (click any image to enlarge)

    Image

    After realizing that turning and moving had a fixed cost in addition to their distance, I tried to reduce the number of segments:

    Image

    Image

    This got me to around 86 or so. (One interesting trick I employed was lengthening the last segment out of bounds)

    This all happened within an hour or so of me having the code, so I didn't really write or use any tools at this point- there was no need.

    I eventually wrote a function that would let me give it points- this took me longer than I would care to admit (my trig is quite rusty). Here it is, in all of its glory:

    Code: Select all
    def move_to(x, y):
      cur_x, cur_y, cur_angle = state[0:3]
      a_gauche(round(cur_angle - atan2((y - cur_y), (x - cur_x)), 1))
      avancer(round(sqrt((x - cur_x) ** 2 + (y - cur_y) ** 2), 1))

    I modified the functions for turning and for moving so they would dump code I could submit into a file- this was a really simple change and was extremely convenient.

    For brute-forcing, I just defined a noise function that was easy for me to tweak (for example, changing it to a Gaussian distribution or tweaking the parameters). I mostly used brute-forcing to eliminate decimal places.

    Code: Select all
    def noise():
      return (random() - 0.5)/10

    Throughout this process, commandblockguy was extremely helpful. I did feel a little guilty asking for help, but I made sure to at least drop hints to anyone who asked me in return (which ended up being a decent number of people) :)
    (message original)

    Image


    2.
    Image
    Pavel
    (ImageImage) :
    71.000009399186
    (Programme : x86.py)

    Pavel wrote:Voici une explication de mon approche pour trouver une solution à ce défi.

    J'ai commencé par essayer de comprendre comment la consommation est calculée. Voici les parties du code Python montrant tous les composants des calculs de consommation:

    Code: Select all
    def fix_angle(a):
      return a * 2 * asin(1) / pi

    def a_gauche(a):
      global state
      state[7] += a
      state[5] += 5 + cout(a)

    def avancer(l):
      global state
      state[7] += l
      state[5] += 8 + cout(l)
      while(l > 0):
        l -= .25
        state[6] += (state[6] < 200)

    def aller_selon(f):
      global state
      state = [0, .5, 0, 0, .5, 0, 0, 0]
      f()
      state[5] += sin(fix_angle(state[7])) - state[6] // 2
      print('Consommation : ' + str(state[5]))

    Apparemment, la consommation se compose des trois éléments suivants:

    • `state[5]` = consommation de base
    • `state[6]` = distance totale parcourue multipliée par quatre
    • `state[7]` = angle total + distance totale

    Ensuite, j'ai testé la fonction 'cout()' qui est utilisée dans les calculs de consommation:

    Code: Select all
    >>> from laby import *
    >>> cout(5)
    3
    >>> cout(0.5)
    3
    >>> cout(0.05)
    4
    >>> cout(5e-3)
    5
    >>> cout(5e-4)
    6
    >>> cout(5e-5)
    7
    >>> cout(5e-6)
    3

    Il semble donc que la consommation puisse être minimisée en combinant les éléments suivants:

    • minimiser la quantité de manoeuvres
    • minimiser 'sin(state[7])'
    • maximiser la distance totale parcourue
    • ne pas utiliser plus d'un chiffre décimal après la virgule décimale
    • essayer d'exploiter le faible coût du 'cout(5e-6)'

    Pour minimiser 'sin(state[7])', j'ai utilisé le code Python suivant pour créer un tableau montrant les valeurs de la fonction 'sin()' pour différents angles avec un seul chiffre décimal après la virgule décimale:

    Code: Select all
    from math import pi, sin

    l = []

    for i in range(-10, 11):
      a = round(-pi/2 + 2 * pi * i, 1)
      l.append((a, sin(a)))

    l.sort(key=lambda e: e[1])

    for e in l:
      print('a = %5.1f -> sin(a) = %f' % e)

    Voici le résultat:

    Code: Select all
    a = -64.4 -> sin(a) = -0.999996
    a = -26.7 -> sin(a) = -0.999994
    a =  11.0 -> sin(a) = -0.999990
    a =  48.7 -> sin(a) = -0.999986
    a =  42.4 -> sin(a) = -0.999934

    De petites valeurs de 'state[7]' sont donc nécessaires pour une faible consommation. Vu que 'state[7]' est la somme des angles et des distances et que les distances ne peuvent pas être négatives, alors les valeurs des angles passés à la fonction 'a_gauche()' doivent être négatives.

    Une fois que tout ça est devenu plus ou moins clair, j'ai modifié le code laby.py pour en faire une version qui peut être contrôlée comme un jeu vidéo avec les touches haut/bas/gauche/droite sur le clavier: https://gitea.planet-casio.com/Pavel/labygui

    En utilisant cette approche, j'ai obtenu la solution suivante:

    Code: Select all
    from laby import *

    def chemin():
      for e in [(-6.6, 2.3), (-7.3, 6.3), (-5.2, 4.6), (-4.8, 4.1), (-7.3, 6.3), (-8.3, 3.8), (-5.1, 3.8), (-2.3, 4.3), (9.1, 13.3)]:
        a_gauche(e[0])
        avancer(e[1])

    aller_selon(chemin)

    La consommation correspondant à cette solution est de 71.0000097934493.

    À ce stade, je n'ai toujours pas exploité le faible coût du 'cout(5e-6)'. J'ai donc essayé d'ajouter ou de soustraire 5e-6 des distances et des angles. La solution qui m'a donné le score le plus bas (71.00000939918644) était la suivante:

    Code: Select all
    from laby import *

    def chemin():
      for e in [(-6.6, 2.3), (-7.3, 6.3), (-5.2, 4.6), (-4.8, 4.1), (-7.3, 6.3), (-8.3, 3.8), (-5.1, 3.8), (-2.3, 4.3), (9.1, 13.3)]:
        a_gauche(e[0] - 5e-6)
        avancer(e[1] - 5e-6)

    aller_selon(chemin)

    Au moment où j'ai trouvé cette solution, elle était déjà soumise par commandblockguy et j'ai dû trouver la deuxième meilleure solution (71.00000939918645) en ajoutant de très petites valeurs aux angles et aux distances:

    Code: Select all
    from laby import *

    def chemin():
      for e in [(-6.6, 2.3), (-7.3, 6.3), (-5.2, 4.6), (-4.8, 4.1), (-7.3, 6.3), (-8.3, 3.8), (-5.1, 3.8), (-2.3, 4.3), (9.1, 13.3)]:
        a_gauche(e[0] - 5e-6 + 1e-13)
        avancer(e[1] - 5e-6 + 1e-13)

    aller_selon(chemin)
    (message original)

    Image


    1.
    commandblockguy
    (Image) :
    71.000009399186
    (Programme : x75.py)

    commandblockguy wrote:As for my strategy, I basically found a path through the maze by hand that had as few points as possible, without worrying about my score too much. I made sure to take a very shallow angle when exiting so that the path would be long enough to get the maximum score.

    I then tested every single combination of angles and distances that would put me within some distance (if I remember correctly, about 1.5 tiles, though I changed it several times) of my original points, while still allowing me to get the maximum score. This was feasible because you get points off for each digit after the first decimal place, or before the units place, which means that there are only 100 angles and 100 distances to try for each point. The exception for this is the last point, which has to be more than 10 units away in order to meet the length requirement. This took a few hours to run in its entirety, and I was left with a few thousand paths. Prior to the scoring change, all of these paths would have left me with a score of 72, but after the scoring change it was now possible to get a fractional score.

    Image
    A "heatmap" of all the paths I found. The color of each point represents the last "target" point it was able to get to, with purple being the final point, outside of the maze.

    The fractional part of the score was determined based on the sine of the sum of the angles and distances, which means that the input to sin() could be no more precise than to the tenths place. For the range of numbers that this sum could possibly be without adding a full point to my score, the tenth whose sine is closest to -1 is 11.0, and sin(11) is = -0.999990207.

    Unfortunately, none of the few thousand paths that I had found added up to 11.0. However, I realized that I was only calling a_droite() in my path, and that if I replaced a_droite(x) with a_gauche(-x), x would be subtracted from the sum rather than added to it, without actually changing the validity of the path. I tried out every combination of a_droite and a_gauche calls for each of my few thousand paths, and found one that added up to 11.0, giving me a score of 71.0000097934493.

    Here's the code that I used to find this path.

    You'll notice that this is still very slightly off from my actual score - I realized that I could slightly decrease sin(sum) by slightly decreasing sum, and that I could slightly decrease sum by subtracting a tiny amount from each distance and angle. Normally, this would cause my score to increase by several full points because of the decimal places after the tenths place, but because the score is rounded to 5 decimal places before the length of the number is calculated, if the difference is less than 0.000005, you aren't penalized. So, I subtracted 0.0000049999... from each distance, to get a sum of 10.99991, a sine of -0.99999060081, and a final score of 71.00000939918644. I believe that this is within a floating-point error of the ideal solution.

    Here's the solution that I submitted, for reference.

    I actually tested all of this on a computer, as I didn't have my EP with me. I ported polycalc to use cv2 for drawing stuff.

    I also tried to submit a few, uh, let's call them
    gimmicky
    , solutions. My first instinct was to try an integer overflow, but to my disappointment, Python doesn't actually have those. The numbers, they just keep
    going
    .

    After that, I tried subclassing the float class so that it would return an empty string. Technically, this wasn't modifying the internal state of laby.py :p . I could have also returned a custom string class with a modified __len__ method, but in CPython __len__ must return a positive integer, which also gets converted into a regular integer, not one that I could subclass. Interestingly, MicroPython allows you to return a negative length for __len__, so I could have probably gotten a score of negative infinity if the admins didn't shut that idea down :p .

    Finally, I also found a solution that's far better than the others that I decided not to submit since I was already in first. Here's the link if you want to give it a try for yourself.
    (message original)

    Image


    Conclusion



    Ce sujet de labyrinthe était assez simple dans son ensemble, mais avec pas mal de subtilités qui ont bien fait ressortir ce qu'on espérait - des solutions de tous niveaux, avec des approches presques toutes différentes et pas mal de fun à la clé d'après vos témoignages. :)

    Mon regret personnel sur cet énoncé c'est l'existence d'une solution unique. J'ai eu plusieurs retours expliquant que l'attrait d'un des défis les plus populaire du concours de rentrée (le défi de Python consistant à constituer une équipe de Pokémon efficace) est l'existence de multiples solutions même au voisinage des meilleurs scores. On a modifié à ce moment-là le deuxième sujet en introduisant un état, la vitesse du ballon. Chaque ordre se construit sur le précédent et donc on ne peut pas optimiser les ordres un à la fois, ce qui rend plus pénible l'exploration de tout l'espace de solutions.

    Mais le sujet qui arrive vraiment à éviter ça est le défi du Léviathan puisque l'espace de solutions est formé de programmes et là les solutions seront vraiment toutes uniques. Ce défi est toujours en cours d'ailleurs, allez y jeter un oeil ou deux ! :)

    Un immense merci à tous les participants. J'espère que cet exercice vous aura plus, et on se retrouve bientôt pour les résultats du défi du Quetzalocoatl ! ;)

    CPUID adapté pour TI-Nspire Ndless - les détails du CPU

    New postby critor » 13 Nov 2020, 17:34

    Depuis leur sortie en 2007, les
    TI-Nspire
    utilisent un processeur
    32 bits
    de type
    ARM9 / ARMv5
    . Malgré cela ce dernier a subi plusieurs accélérations au cours du temps, en moyenne tous les 3 ans:
    • 2007
      -
      90 MHz
      :
      TI-Nspire
      monochromes
    • 2010
      -
      120 MHz
      :
      TI-Nspire
      monochromes
      (mises à jour
      2.1+
      )
    • 2011
      -
      132 MHz
      :
      TI-Nspire CX
      /
      TI-Nspire CM
    • 2015
      -
      156 MHz
      :
      TI-Nspire CX
      (générations
      CR4+
      / révisions matérielles
      W+
      )
    • 2019
      -
      396 MHz
      :
      TI-Nspire CX II

    Mais s'agit-il juste du même processeur accéléré à diverses reprises, ou bien y a-t-il eu des changements d'architecture là-dessous ?

    La puce
    ASIC
    renfermant ce processeur a en effet changé de référence ou même format à de nombreuses reprises.

    ZephRay
    te propose aujourd'hui de répondre à la question, venant de terminer l'adaptation de
    CPUID
    dans une édition
    TI-Nspire
    :

    Comparons donc de suite :
    13201 13202


    Outre la fréquence vue plus haut, on note effectivement une autre légère amélioration avec le passage des
    TI-Nspire
    monochromes aux
    TI-Nspire CX
    couleur. Le cœur
    armv5tej
    utilisé passe en effet de la révision
    4
    à la révision
    5
    .

    Mais par contre non, désolé, rien de neuf à l'arrivée des
    TI-Nspire CX II
    ,
    Texas Instruments
    a réutilisé exactement le même cœur. :'(

    Rendez-vous donc en 2022-2023 pour la prochaine amélioration matérielle majeure si le rythme se maintient, en espérant que tu ne seras pas déçu·e... ;)

    Téléchargement
    :
    archives_voir.php?id=2648144
    Code source
    :
    https://github.com/zephray/cpuid-nspire
    Source
    :
    https://www.cncalc.org/thread-24740-1-1.html

    -
    Search
    -
    Social
    -
    Featured topics
    Comparaisons des meilleurs prix pour acheter sa calculatrice !
    Découvre les nouvelles fonctionnalités en Python de l'OS 5.2 pour les Nspire CX II
    Découvre les nouvelles fonctionnalités en Python de l'OS 5.5 pour la 83PCE/84+C-T Python Edition
    Omega, le fork étendant les capacités de ta NumWorks, même en mode examen !
    1234
    -
    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.
    562 utilisateurs:
    >538 invités
    >17 membres
    >7 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)