Bonjour,
Voici le défi LabVIEW de mai !
Un de vos sous-marins allié se déplace dans l’océan sans communications et afin de ne pas se faire repérer il remonte à la surface à intervalle fixe toutes les 3 heures mais à des endroits presque aléatoires. Le but sera de trouver sa position à un moment donné pour un rendez-vous prévu dans 6 jours exactement.
Ses déplacements sont régis par un générateur pseudo aléatoire fait maison dont vous connaissez la formule :
N <- (137 x N +187) Modulo 256, avec N donné comme valeur initiale au départ sur le port, elle-même arbitraire.
Toutes les 3 heures le générateur pseudo aléatoire fournit une nouvelle valeur. Suivant le résultat il se déplacera suivant cette règle :
Prévoir donc sa position en Km (Nord, Est) dans 6 jours exactement sachant que la valeur initiale peut être arbitraire.
Pour une valeur initiale de 30 voici un exemple :
Heure Nord Est N
0 0 0 30
3 1 0 201
6 1 1 76
9 1 2 103
Par exemple ici dans 9 heures pour N=30 il sera à 1 km au nord et 2 km à l’est
Le défi est d’écrire un code LabVIEW qui possède en entrée une commande pour la valeur initiale N et en sortie 2 indicateurs avec les coordonnées Nord et Est en km correspondant à la rencontre dans 6 jours.
Libre à vous ensuite d’ajouter d’autres graphiques ou indicateurs pour par exemple les tableaux aléatoires ou la trajectoire…
Exemple pour 9 heures
Pour participer envoyez simplement votre code LabVIEW (peu importe la version) appelé Ch51_Sous-Marin_Votre pseudo.vi avant le 1er Juin 2018 sur mon adresse emmanuel.roset@ni.com
(Les sous-vi sont possibles à ce moment mettez les dans un fichier ZIP)
Un gagnant sera tiré au sort (suivant un jeu de hasard) parmi les bonnes réponses et il gagnera des goodies (tel que décapsuleur, clé USB en forme de cRIO, calculatrice, tapis de souris LabVIEW, etc…)
Pour vérification des mails, pouvez-vous mettre un commentaire sur la communauté (Ex : « code envoyé » lors de l’envoi. Merci.
Publication des codes à la fin du mois en pièce jointe dans l’énoncé pour la communauté.
Bonnes vacances a ceux qui font les ponts
Bonjour Emmanuel,
tout d'abord merci pour ce nouveau challenge 😉
J'ai un petit soucis avec les N successifs, si je tiens compte du calcul pseudo-aléatoire (comme je le comprends), je trouve:
N0 = 30
N1 = (137 x 30 + 187) % 256 = 16 (tenant compte de la priorité de la multiplication par rapport à l'addition et prenant N-1 en compte dans le calcul, soit 30)
N2 = (137 x 16 + 187) % 256 = 9
N3 = (137 x 9 + 187) % 256 = 5
et ainsi de suite, je ne trouve pas les mêmes valeurs que toi pour les N successifs.
J'ai donc dû comprendre quelque chose de travers, ça devient une habitude
Pourais-tu préciser le fond de ta pensée pour ce calcul pseudo aléatoire?
Merci
Salut Phil,
Je tombe bien sur les mêmes résultats qu'Emmanuel.
Pour moi l'ordre des priorité est le suivant : A = 137 * N-1 ; B = A + 187 ; N = B % 256.
En tout cas je vérifie ce résultat par deux méthodes : directe et par étapes.
Mais peut-être que je dis une bêtise 🙂
@Emmanuel : Que se passe-t-il si le N de départ termine par autre chose que 0 ou 1 ? Il doit suivre la même direction que précédemment mais est-ce le Nord ou l'Est ?
Salut ML927,
je résonne comme toi, tout haut 🙂
A = 137 x N-1 soit A = 137 x 30 = 4110 (premier pseudo aléatoire avec N-1 = 30)
B = A + 187 soit B = 4110 + 187 = 4297
N = B % 256 soit 4297 % 256 = 16 (+ reste)
A moins que modulo 256 ne signifie pas la même chose pour moi, je pense que c'est la division de N par 256 🙂
Mais je viens de comprendre 🙂 je prenais la partie entière du modulo et pas le reste, tout est dit 🙂
Merci
En effet, le modulo donne le reste et non la partie entière de la division 😉
Je trouve Nord = 18 km et Est = 30km après 6 jours. Quelqu'un pour confirmer/infirmer ? 🙂
je confirme, après correction de mon erreur sur le modulo (quel idiot je fais ) je trouve pareil que toi
@maxime, bien vu pour le N. Si le modulo donne une valeur autre que 0 ou 1 au départ alors on dit Nord pour la valeur initiale. Désolé je suis en congés et la tête ailleurs
@Emmanuel : Merci pour ta confirmation. Profite bien de tes vacances 🙂
@Phil : Merci pour la validation !
Code envoyé 🙂
code envoyé 🙂
Codé envoyé
Bonjour, bonjour,
Code envoyé !
Code envoyé 😉
(et je laisse ma place au tirage du gagnant 😉 )
Code envoyé
Code envoyé!
Bonjour ,code envoyé même valeur que ML927.
Code envoyé !
Pour l'instant ce n'est qu'une version 1.0, mais j'aimerais bien me pencher sur la création d'un graph suivant la trajectoire... Si j'ai le temps, je m'y mets !
Bilsix,
Prevois-tu de faire une interpolation particulière entre tes points ou juste afficher la position Nord vs Est ?
Pour information, nombreux sont ceux qui ont ajouté la trajectoire du sous-marin avec même un fond en image de mer !
En ce qui concerne les codes, je crois pas qu'il en ai d'identique. Ce qui démontre qu'il y a énormément de méthodes pour arriver au même résultat... Avec plus ou moins d'optimisations forcément. Les méthodes de chacun pourrons encore bénéficier à la communauté.
Code envoyé
Encore une fois, Emmanuel apporte une réelle motivation à avancer dans la connaissance de LV avec du partage de tous les participants à ses challenges bien sympathiques 😉
Un grand merci à lui pour son implications et ses propositions!!!!
@ML927, de prime abord, je pensais essayer de faire une interpolation entre chaque point obtenu toutes les 3h, c'est plus sympa de voir la trajectoire !
J'ai toujours eu du mal avec les graphs, ce n'est pas mon point fort, c'est pour ça que j'aimerais m'exercer... 🙂
bonjour Atchuuum, je n'ai rien reçu par email pour info
Salut à tous
Code envoyé 😄 avec erreur de nom jai mis ghost67280
Code envoyé.
En marchant dans la rue, j'ai croisé par hasard un agent de la Police des Jeux Sans Gagnants. Il m'a indiqué qu'il avait à l'oeil le Challenge Mathématique LabVIEW n°51, et qu'il voulait nous donner un premier PV pour retard dans la désignation d'un vainqueur. J'ai gagné du temps en invoquant la préparation des NI Days 2018, mais je ne sais pas si ça tiendra éternellement. Emmanuel, sauve nous !
Oui en effet, NIDays 2018 et de nouvelles responsabilités plus larges ne me permettent plus en ce moment de me concentrer sur les challenges autant que je le voudrait.
Je vais trouver du temps pour finaliser le challenge de Mai et pour le vainqueur du sous marin. Et surtout publier les codes avec les animations !
Par contre il n'y aura pas de challenge pour Juin voir juillet. Mais restez connectés, je donne pas mon dernier mot.
Est il possible que je poste un petit défi de manipulation d image pour juin ?
Je me suis permis de poster un challenge non-officiel pour le mois de Juin. Si vous êtes intéressés vous pouvez le trouver sur la page du forum de Discussion au sujet de NI LabVIEW.
Ben64
Ca y est enfin, les codes ont été publiés. Ben64 a passé du temps dessus avec images, un radar et du son !
Voici la liste des participants pour le tirage au sort de ce soir 18 juin.
Attributions des boules du Loto, première boule compte (à moins d'un désistement alors c'est la suivante car j'ai mis tout le monde...)
Nombre de participants : 14
Ch51_Sous-Marin_ML927 => 1,2,3,
Ch51_Sous-Marin_kpele => 4,5,6,
Ch51_Sous-Marin_Julien_V => 7,8,9,
CH51_Sous-Marin_Chpere => 10,11,12,
Ch_51_Sous-marin_LGC => 13,14,15,
Ch51_Sous-Marin_PhilB58 => 16,17,18,
Ch51_Sous-Marin_lulu44.vi => 19,20,21,
Ch51_Sous-Marin_Kaythul_PK => 22,23,24,
Ch51_Sous-Marin_guillaumeMa.vi => 25,26,27,
Ch51_Sous-Marin_Bilsix => 28,29,30,
Ch51_Sous-Marin_JFI => 31,32,33,
ch51_Sous-Marin_atchuuum => 34,35,36,
Ch51_Sous-Marin_Bleses => 37,38,39,
Ch51- Ben64 => 40,41,42,
bonne chance et bravo à tous 🙂
Je me desiste, ayant déjà gagné le mois dernier 😉
Merci pour le partage de code !
Pareil je me désiste aussi, on laisse place à ceux qui n'ont pas encore gagné 😉
Merci les amis, c'est noble !
Suite au tirage de Lundi 18, nous avons dans l'ordre 34,2,7,13,44, chance 8.
Le gagnant est donc : atchuuum
Merci a tous pour votre participation à ce défi, tout le monde a trouvé la position du sous-marin.
Super ! Maintenant que j'ai suivi les formations labview, j’espère pouvoir donner des codes plus jolis.
J'ai encore du chemin à parcourir pour atteindre le niveau de certains participants.
Bonne journée !
Pour le moment les challenges sont mis en attente car on est dans la période des NIDays
Bonjour,
Pas de nouveaux challenges en perspective ?
C'est une bonne question, je crois bien que notre activité locale ne permet plus pour l'instant d'aminer ces défis, je le regrette aussi. Si j'ai des nouvelles on en fera la promotion immédiatement !