Arrière-plan
Lego produit de la X-Large Gris plaque de base, qui est un grand bâtiment de la plaque qui est de 48 crampons de large et 48 crampons de haut, résultant en une surface total de 2304 crampons. Être un Lego fanatique, j'ai modélisé un peu de mosaïque de style des dessins qui peuvent être mis sur ces plaques de base et puis peut-être accroché sur les murs ou dans un affichage (voir: Android, Dream Theater, L'Empire Galactique, Pokemon).
Le Défi
Mon défi, c'est maintenant pour obtenir le plus bas coût d'achat de ces modèles. Achat 2304 personne 1x1 plaques peuvent coûter cher. À l'aide de BrickLink, essentiellement, une boutique pour les Lego, je peux trouver des données pour déterminer ce que le moins cher des pièces pour les couleurs. Par exemple, un 1x4 plaque à 0,10 $(ou 0,025 $par stud) serait moins cher qu'un 6x6 plaque à $2.16 (ou 0,06 $par stud). Nous pouvons également déterminer une liste de toutes les plaques qui peuvent être utilisés pour assembler une image:
1x1
1x2
1x3
1x4
1x6
1x8
1x10
1x12
2x2 corner!
2x2
2x3
2x4
2x6
2x8
2x10
2x12
2x16
4x4 corner!
4x4
4x6
4x8
4x10
4x12
6x6
6x8
6x10
6x12
6x14
6x16
6x24
8x8
8x11
8x16
16x16
Le Problème
Pour résoudre ce problème, supposons que nous avons une liste de toutes les plaques, leur couleur(s), et un "poids" ou le coût pour chaque plaque. Par souci de simplicité, on peut même supprimer les pièces de coin, mais ce serait un défi intéressant à relever. Comment voulez-vous trouver le moins cher des composants pour créer le 48x48 image? Comment voulez-vous trouver la solution qui utilise le moins de composants (pas nécessairement le moins cher)? Si nous devions ajouter les pièces de coin, comme admissibles morceaux, comment voulez-vous de les prendre en compte?
Nous pouvons supposer que nous avons une certaine maîtrise liste qui est obtenu en interrogeant BrickLink, l'obtention de la moyenne des prix d'une brique dans une couleur donnée, et en ajoutant que comme un élément dans la liste. Donc, il n'y aurait pas noir 16 x 16 plaque simplement parce qu'il n'est pas fait ou pour la vente. Le 16x16 Vert Vif de la plaque, cependant, aurait une valeur de $3.74, en passant par le courant disponible prix moyen.
J'espère que mon écriture-up du problème est assez succinct. C'est quelque chose que j'ai pensé depuis quelques jours maintenant, et je suis curieux de savoir ce que vous en pensez. J'ai marqué comme "interview-questions" parce que c'est difficile, non pas parce que je l'ai eu grâce à une interview (même si je pense que ce serait un plaisir question!).
MODIFIER
Voici un lien vers la 2x2 coin de la pièce et à l' 4x4 coin de la pièce. La réponse n'a pas nécessairement besoin de prendre en compte la couleur, mais il doit être extensible pour couvrir ce scénario. Le scénario serait que pas toutes les plaques sont disponibles dans toutes les couleurs, imaginez donc que nous avons un tableau d'éléments qui permettent d'identifier une plaque, sa couleur, et le coût moyen de la plaque (un exemple ci-dessous). Merci à Benjamin pour fournir un bounty!
1x1|white|.07
1x1|yellow|.04
[...]
1x2|white|.05
1x2|yellow|.04
[...]
Cette liste n'aurait PAS l'entrée:
8x8|yellow|imaginarydollaramount
C'est parce qu'un 8x8 plaque jaune n'existe pas. La liste elle-même est trivial et ne doit être pensé comme fournissant des références pour la solution; il n'a pas d'incidence sur la solution elle-même.
EDIT2
Modifié le texte pour plus de clarté.