Curriculum and Labs for Engineering Education

cancel
Showing results for 
Search instead for 
Did you mean: 

Challenge mathématiques #27 : Décomposer un nombre en un nombre minimum de carrés

Pour ce mois-ci un défi proposé par Nico_emc : Décomposer un nombre en un nombre minimum de carrés.

Le but concret serai de regrouper les icônes sur notre bureau en carrés. La question, c’est combien de carrés faut-il pour tous les caser ?

Souvent, on prend le plus grands carré possible, et on continue avec ce qu’il reste.

Par exemple, pour 21, on fait un carré de 4, puis un de 2, puis un de 1 (le dernier icône). 21 = 4²+2²+1².

Ça devient plus compliqué pour 32 par exemple. Si on prend la méthode précédente, on obtient 32 = 5²+2²+1²+1²+1², alors qu’on peut le décomposer en 32 = 4²+4², plus court.

Donc pour ce défi il faut utiliser le VI fourni avec une valeur entière en entrée et de retourner un tableau d'entiers en sortie qui correspond à la décomposition par ordre décroissant de la gauche vers la droite. Il faut impérativement créer un code pour obtenir des valeurs de carré optimisés.

Retourner moi votre code à emmanuel.roset@ni.com avec le nom générique Challenge27_Votre Pseudo.vi

Un code est mis en pièce jointe pour avoir une base de départ identique (Un entier en entrée et un tableau d'entiers en sortie)

Un vainqueur sera désigné parmi un tirage au sort sur les bons codes (pour que tout le monde puisse avoir une chance et participer)

Le gagnant de ce défi pourra gagner une certification LabVIEW de son choix ou au moins les honneurs de la communauté !

Bon défi mathématique

Maj 02/11/2015 :

Pas de vainqueur pour cette optimisation d'algorithme mathématiques.Mais tout le monde était proche du bon résultat

Download All
Comments
Nico_EMC
Member
Member
on

Merci Emmanuel d'avoir publié mon challenge

emmanuel-fr
Member
Member
on

De rien, j'ai créé aussi un post pour mettre les défis issus de la communauté : Challenge mathématiques : Vos propositions de futurs défis LabVIEW

Nico_EMC
Member
Member
on

Juste pour le fun (pour comparer ma solution avec les autres), code envoyé.

jl_legrand
Member
Member
on

Code envoyé

Xalbeht
Member
Member
on

code envoyé

emmanuel-fr
Member
Member
on

Il est temps d'analyser les résultats. Ce n'était pas un défi très facile si on regarde de plus près. en effet décomposer les valeurs par optimisations était le vrai challenge. un tel agorithme peut prendre beaucoup de temps CPU si les valeurs augmentent.

Par exemple : 67 = 7²+3²+3²  et 72 = 6²+6²

Voici les résulats qui ont été envoyés pour :

67 = 8²+1²+1²+1²  ou  7²+4²+1²+1²

72 = 8²+2²+2²

Donc il n'y a pas de vainqueur cette fois-ci sauf celui qui à proposé le défi mais c'est normal il a eu plus de temps pour travailler dessus (a priori)

Si cela vous dit, vous pouvez toujours améliorer votre code plus tard, ce peut être utile d'avoir un algortihme qui optimise l'espace de travail par exemple

Je met les réponses dans en pièce jointe pour étudier tout ca

Merci d'avoir réfléchi à ce défi

Contributors