Curriculum and Labs for Engineering Education

cancel
Showing results for 
Search instead for 
Did you mean: 

Challenge mathématique #46 : immeubles pyramidaux

 

NIDays vient de s’achever ! C’est avec plaisir que j’ai pu rencontrer certains d’entre vous et discuter entre autres des challenges. Maintenant c’est l’heure pour décembre de reprendre nos petits défis LabVIEW !

 

Voici donc une histoire d’ancienne Égypte. Dans l’antiquité les immeubles en forme de pyramides étaient courants (c’est bien connu). Les numéros d’étages commençaient par le haut de la pyramide et les appartements étaient numérotés comme ci-dessous :

 

     1

   2 3 4

5 6 7 8 9

Cette notation problématique a été abandonnée (heureusement) car comment retrouver le numéro de l’appartement juste au dessus du votre en cas de soirée un peu bruyante de son voisin ?

 

Dans une telle situation, avec l’aide de LabVIEW, je vous propose de retrouver le bon numéro d’appartement qui est juste au dessus de n’importe lequel. Il est évident que certains appartements n’ont que le ciel (ces chanceux n’auront pas de tapages au dessus d’eux).

 

Par exemple pour le n° 8 c’est le n°4 qui est sur le 2e étage. Mais qu’en est-il pour le n° 2017 ?

 

Vous relevez le défi ?

 

Pour participer vous devez me renvoyer un code LabVIEW avec en entrée une commande numérique du numéro d’appartement actuel et en sortie un indicateur numérique avec le numéro d’appartement du dessus et un tableau d’indicateurs numérique avec tous les numéros d’appartements agencés en pyramide, ceci pour une confirmation par les étages.

 

Indications :

- Tous les ciels sont notés 0 et les étages dans le tableau commencent à l’indice 1.

- Le nombre d'appartements maximal ne dépasse pas le Million (ils étaient nombreux à l'époque)

 

 

Voici un exemple de face-avant LabVIEW (et en pièce jointe en version LabVIEW 2012+) qui peut servir de base pour votre code :

 

Face avant pyramides.png

 

Il y a des tonnes de moyens de résoudre ce problème (mathématiquement et avec un peu d’observation) et de simplifier le code. Je vous laisse gérer les optimisations… et votre créativité.

 

Envoyez votre code nommé Ch46_pyramide_votre pseudo.vi (s'il y a des sous-VI faire un ZIP) à emmanuel.roset@ni.com avant le 8 Janvier. Et postez s’il vous plait sur la communauté un message « code envoyé » ou équivalent pour vérifier la boite Email en cas de non réception ou de congés…

 

Le gagnant sera tiré au sort (avec un jeu de hasard officiel) parmi les bonnes réponses avec un code fonctionnel. Ce mois de décembre il recevra un Goodies surprise (c’est Noël).

 

 

 

 

 

 

Les codes seront publiés et surtout partagés à la fin du mois

Bonnes fêtes de fin d’année

 

[Mise à jour 10 janvier] : Publication des codes résultats

 

Comments
cristov222
Member
Member
on

Code envoyé

emmanuel-fr
Member
Member
on

Merci cristov222, code fonctionnel

PhilB58
Active Participant
Active Participant
on

Code envoyé 😉

Julien_V.
Active Participant
Active Participant
on

Bonjour,

 

Code envoyé :-).

Cordialement,

Julien V.

[FIRST]

[LabVIEW Programming]


[FIRST]

LucG
Member
Member
on

Bonjour, Je crois qu'il y a une petite incohérence entre le texte et la face-avant proposée dans l'énoncé. Dans la formulation actuelle du texte, le numéro de l'étage du dessus doit être une entrée du VI. Or dans le VI envoyé en pièce jointe le numéro de l'étage du dessus est un indicateur (donc une sortie du VI). Quelle information faut-il prendre en considération? Le texte ou le VI fourni? Merci d'avance pour les éclaircissements. Bonne journée.

PhilB58
Active Participant
Active Participant
on

Je pense qu'il faut lire:

"Pour participer vous devez me renvoyer un code LabVIEW avec en entrée une commande numérique du numéro d’appartement actuel et en sortie un indicateur numérique avec le numéro d’appartement du dessus ainsi que le numéro de l’étage du dessus et un tableau d’indicateurs numérique avec tous les numéros d’appartements agencés en pyramide, ceci pour une confirmation par les étages."
Si je ne me trompe pas 😉

emmanuel-fr
Member
Member
on

Ah ben oui en effet, il y a eu un dérapage sur un bout de phrase en trop lors de la préparation. C'est corrigé dans l'énoncé. Juste une seule commande est nécessaire bien sur ! Le numéro de l'appartement qui entend tous les bruits de pas au dessus de chez lui Smiley Wink

 

Merci pour le retour !

LucG
Member
Member
on
Merci pour la correction. 😉
Julien_V.
Active Participant
Active Participant
on

Bonjour,

 

Nouveau code envoyé.

Cordialement,

Julien V.

[FIRST]

[LabVIEW Programming]


[FIRST]

emmanuel-fr
Member
Member
on

Merci Julien_V pour l'ajout de la pyramide en couleur avec la palette Picture, c'est encore plus clair

vdparter
Member
Member
on
Bien le bonjour, Code envoyé !
Olivier_Labo
Member
Member
on

Code envoyé

LucG
Member
Member
on
Code envoyé! 🙂
emmanuel-fr
Member
Member
on

Merci pour les derniers codes. En les analysant je constate que tout le monde utilise des méthodes différentes, c'est vraiment bien pour le partage au final car cela implique l'utilisation de toutes sortes de VI.

beno72
Member
Member
on

Bonjour,

code envoyé

Loone
Member
Member
on
Code envoyé. Hâte de voir les différentes solutions pour voir les améliorations que je n'ai pas vu.
emmanuel-fr
Member
Member
on

Voici en gros les méthodes utilisées depuis le lancement du défi. Ça peux aider ceux qui veulent se lancer.

- Utilisation des fonctions mathématiques natives et presque sans tableaux

- Utilisation majeure des tableaux dès le départ et fonctions de recherche

- Nœuds d'expression mathématiques

- Tout en registres à décalage imbriqués

- Optimisation mathématique pur avant l'implémentation

 

Smiley Happy

Loysse
Member
Member
on

Bonjour, code envoyé!

 

Bonne fêtes de fin d'année à tous.

HuntSeeker
Member
Member
on

Bonjour,

Étant encore novice de LabVIEW, je m'entraine en faisant certains challenges et en comparant avec les VI de réponses, puis j'ai vu celui ci en cours, je me suis dit pourquoi pas!

Par conséquent : code envoyé!

Bonne fêtes à tous!

emmanuel-fr
Member
Member
on

Eh bien c'est exactement ce qu'il faut faire Smiley Happy

Code bien reçu est très efficace.

 

Je rappelle que de toute façon on ne juge pas les codes ici et que ce qui compte c'est participer. Je dis ça pour les autres qui n'ont pas encore participé !

JG30340
Member
Member
on

Bonjour,

Code envoyé.

Jérôme

lulu44
Active Participant
Active Participant
on

Bonjour,

Code envoyé.

Ludovic

Cordialement
L.MICOU
emmanuel-fr
Member
Member
on

Bonjour à tous, il est temps de finaliser les résultats. Tous les codes ont été mis en pièce jointe dans l'énoncé. En version 2012 et toutes versions reçues brutes.

 

Voici la liste des participants :

1 Ch46_pyramide_cristov222   OK
2 Ch46_pyramide_PhilB58.vi   OK
3 Ch46_pyramide_Julien_V.vi   OK
4 Ch46_pyramide_vdparter.vi   OK
5 Ch46_pyramide_Olivier_L.vi   OK
6 Ch46_pyramide_LucG   OK
7 Ch46_pyramide_beno72   OK
8 Ch46_pyramide_Loone   OK
9 Ch46_pyramide_Loysse.vi   OK
10 Ch46_pyramide_HuntSeeker   OK
11 12 - Ch46_pyramide_jg30340   OK
12 Ch46_pyramide_lulu44   OK
X Ch46_pyramide_yopYyop.vi   Manque tableau de pyramide

 

Comme vous êtes 12, ci-dessous la répartition des attributions des boules du Loto par pseudo afin de gagner des Goodies. Prochain tirage ce soir mercredi 10 janvier sur fdj.fr. On regardera la première boule qui tombe et le gagnant sera désigné parmi les attribution de chiffres ! (cette fois 4 chacun)

Bonne chance !

 

Nombre de participants : 12

Ch46_pyramide_cristov222    =>   1,2,3,4,
Ch46_pyramide_PhilB58.vi    =>   5,6,7,8,
Ch46_pyramide_Julien_V.vi    =>   9,10,11,12,
Ch46_pyramide_vdparter.vi    =>   13,14,15,16,
Ch46_pyramide_Olivier_L.vi    =>   17,18,19,20,
Ch46_pyramide_LucG    =>   21,22,23,24,
Ch46_pyramide_beno72    =>   25,26,27,28,
Ch46_pyramide_Loone    =>   29,30,31,32,
Ch46_pyramide_Loysse.vi    =>   33,34,35,36,
Ch46_pyramide_HuntSeeker    =>   37,38,39,40,
12 - Ch46_pyramide_jg30340    =>   41,42,43,44,
Ch46_pyramide_lulu44    =>   45,46,47,48,

 

Merci a tous de votre participation. J'ai reçu un récapitulatif récemment du nombre de connectés et de vues qui se comptent par milliers. Donc n'hésitez pas à participer aussi aux prochains défis et à poster vos commentaires Smiley Happy il n'y a pas de codes mal fait !

 

emmanuel-fr
Member
Member
on

Bonjour,

 

Résultats du tirage de Mercredi 10 Janvier dans l'ordre de sortie :

7 49 18 9 16

 

Donc le gagnant des Goodies ce mois-ci est : PhilB58 !

 

Merci à tous pour les codes qui sont à présent publiés sur la communauté et pourront donner des nouvelles idées et méthodes !

 

PhilB58
Active Participant
Active Participant
on

Yes, merci le tirage du Loto Smiley Very Happy
et merci Emmanuel pour m'avoir donné le bon numéro Smiley Wink
Ça me donne envie d'essayer une grille à l'Euromillion, serais-je dans une période de chance??!!??

Contributors