Challenges LabVIEW et documents

annuler
Affichage des résultats de 
Rechercher plutôt 
Vouliez-vous dire : 

Challenge mathématique #51 : rechercher le sous-marin

 

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 :

  • Il va vers le nord de 1km si le chiffre des unités est 0
  • Il va vers l’est de 1 km si le chiffre des unités est 1
  • Il avance de 1 km dans la même direction que précédemment dans les autres cas (Nord pour la valeur initiale)

 

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

 

sous marin.png

 

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 Smiley heureux

 

Commentaires
Active Participant PhilB58
Active Participant

Bonjour Emmanuel,

tout d'abord merci pour ce nouveau challenge Smiley clignant de l'œil

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 Smiley très heureux
Pourais-tu préciser le fond de ta pensée pour ce calcul pseudo aléatoire?

Merci Smiley clignant de l'œil

Active Participant ML927
Active Participant

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 Smiley heureux

CLAMaxime -- Kudos are a great way to say thank you
Active Participant ML927
Active Participant

@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 ?

CLAMaxime -- Kudos are a great way to say thank you
Active Participant PhilB58
Active Participant

Salut ML927,

je résonne comme toi, tout haut Smiley heureux

 

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 Smiley heureux
Mais je viens de comprendre Smiley heureux je prenais la partie entière du modulo et pas le reste, tout est dit Smiley heureux
Merci

Active Participant ML927
Active Participant

En effet, le modulo donne le reste et non la partie entière de la division Smiley clignant de l'œil

CLAMaxime -- Kudos are a great way to say thank you
Active Participant ML927
Active Participant

Je trouve Nord = 18 km et Est = 30km après 6 jours. Quelqu'un pour confirmer/infirmer ? Smiley heureux

 

 

CLAMaxime -- Kudos are a great way to say thank you
Active Participant PhilB58
Active Participant

je confirme, après correction de mon erreur sur le modulo (quel idiot je fais Smiley frustré) je trouve pareil que toi Smiley heureux

Member emmanuel-fr
Member

@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 Smiley très heureux

Active Participant ML927
Active Participant

@Emmanuel : Merci pour ta confirmation. Profite bien de tes vacances Smiley heureux

 

@Phil : Merci pour la validation !

 

Code envoyé Smiley heureux

CLAMaxime -- Kudos are a great way to say thank you
Member kpele
Member

code envoyé Smiley heureux

Cordialement,

Kevin
Associate developer
Active Participant Julien_V.
Active Participant
Bonjour, Code envoyé.
Cordialement,

Julien V.

[FIRST]

[LabVIEW Programming]

Member Chpere
Member

Codé envoyé Smiley heureux

Member LGC
Member

 Bonjour, bonjour,

Code envoyé !

Active Participant PhilB58
Active Participant

Code envoyé Smiley clignant de l'œil
(et je laisse ma place au tirage du gagnant Smiley clignant de l'œil )

Active Participant lulu44
Active Participant

Code envoyéSmiley heureux

Cordialement
L.MICOU
Member Kaythul_PK
Member

Code envoyé!

Member guillaumeMa
Member

Bonjour ,code envoyé même valeur que ML927.

Active Participant Bilsix
Active Participant

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.
Active Participant ML927
Active Participant

Bilsix,

 

Prevois-tu de faire une interpolation particulière entre tes points ou juste afficher la position Nord vs Est ?

 

CLAMaxime -- Kudos are a great way to say thank you
Member emmanuel-fr
Member

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é.

Member JFI
Member

Code envoyé Smiley tirant la langue

Active Participant PhilB58
Active Participant

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 Smiley clignant de l'œil

Un grand merci à lui pour son implications et ses propositions!!!!

Active Participant Bilsix
Active Participant

@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... Smiley heureux

Bilsix.
Member atchuuum
Member
Code envoyé Smiley heureux
Member emmanuel-fr
Member

bonjour Atchuuum, je n'ai rien reçu par email pour info

Member ghost67
Member

Salut à tous 

Code envoyé Smiley très heureux avec erreur de nom jai mis ghost67280

Member Didier_Bleses
Member

Code envoyé.

Trusted Enthusiast
Trusted Enthusiast

Code envoyé.

--------------------------------------------------
The best way to say thanks is to give kudos!
Active Participant Bilsix
Active Participant

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 !

Bilsix.
Member emmanuel-fr
Member

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.Smiley heureux

 

 

Member guillaumeMa
Member

Est il possible que je poste un petit défi de manipulation d image pour juin ?

Trusted Enthusiast
Trusted Enthusiast

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

--------------------------------------------------
The best way to say thanks is to give kudos!
Member emmanuel-fr
Member

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 Smiley heureux

Active Participant ML927
Active Participant

Je me desiste, ayant déjà gagné le mois dernier Smiley clignant de l'œil 

 

Merci pour le partage de code ! 

CLAMaxime -- Kudos are a great way to say thank you
Active Participant PhilB58
Active Participant

Pareil je me désiste aussi, on laisse place à ceux qui n'ont pas encore gagné Smiley clignant de l'œil

Trusted Enthusiast
Trusted Enthusiast

Je me désiste également, bonne chance aux participants!

--------------------------------------------------
The best way to say thanks is to give kudos!
Active Participant Bilsix
Active Participant

Merci les amis, c'est noble !

Bilsix.
Member emmanuel-fr
Member

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.

Member atchuuum
Member

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.

Member LabAJO
Member
Bonjour,
Pas de challenge mathématique #52 en perspective ? L'occasion peut-être de gagner le livre récemment sorti "Programmation et applications - Introduction à LabVIEW NXG" Smiley heureux

 

Bonne journée !

Member emmanuel-fr
Member

Pour le moment les challenges sont mis en attente car on est dans la période des NIDays

Contributeurs