2016-08-05 1 views
-1

J'essaie de calculer la taille d'un grand rectangle nécessaire pour emballer les plus petits. Le petit rectangle a une taille fixe et le grand rectangle a une largeur fixe.déterminer la taille de la boîte nécessaire

Dans l'image, le rectangle 6 peut s'adapter au grand rectangle dans lequel le w initial et la hauteur h1. Maintenant, si plus petit rectangle donne, comment puis-je déterminer la hauteur h2, h3, h4. J'ai d'abord utilisé la voie d'emballage de la poubelle, mais cela n'a pas vraiment aidé car elle se concentrait principalement sur le nombre de petits rectangle qui peuvent en contenir un grand, mais j'ai besoin de la taille (hauteur) nécessaire pour une certaine quantité de petites boîtes.

sample image sample image sample image

Comment puis-je trouver les hauteurs h2, h3 et h4.

w = largeur du rectangle d'origine h1 = hauteur du rectangle d'origine

w et h1 est donnée dire 300, 400 bh = faible hauteur rectangles bw = petits rectangles largeur

bh et pc est la même chose pour tous les rectangles et est donné par exemple 40, 40

sb = nombre de petites boîtes

trois ensembles différents sont prévus dans cette ex ample, pour chaque ensemble la hauteur requise de la boîte nécessaire pour maintenir les petits rectangles doit être calculé

  • pour la première série qui a sb comme 6, je dois trouver h2
  • pour le deuxième ensemble qui a sb comme 7, je dois trouver h4
  • pour le troisième set qui a sb comme 8, je dois trouver h3
+1

Je ne comprends pas complètement. Vous ne voulez probablement pas dire juste 'h = bh * ceil (numberOfBoxes/floor (w/bw))'? S'il vous plaît clarifier votre problème. Quelles sont les entrées, quelle sortie attendez-vous? –

+0

J'ai fait quelques explications, voir si l'édition aide – Smith

+0

Pourquoi la première rangée de petites boîtes ne compte pas dans 'sb'? Comment distinguer "h3" et "h4", c'est-à-dire pourquoi la dernière case n'est pas dans la rangée avant? –

Répondre

1

It `s encore un peu clair pour moi. Mais voici un essai pour répondre à votre question.

Le nombre de cases qui correspondent à une seule rangée est:

boxesInRow = floor(w/bw) 

Pour adapter n boîtes, vous devez disposer du nombre suivant de lignes:

rows = ceil(n/boxesInRow) 

Et la hauteur de cette grosse boîte est alors juste:

height = rows * bh 

Maintenant vient la partie où je ne suis pas sûr. Vous dites que sb est le nombre de boîtes. Cependant, pour la première image (h2), vous dites que sb devrait être 6, mais je compte 9 cases. Donc, apparemment, vous ignorez la première rangée. Si c'est vraiment le cas, la formule finale est:

height = bh * (rows + 1) 
     = bh * (ceil(sb/floor(w/bw)) + 1) 
+0

Oui 'sb' est 6 pour la première boîte, parce que le grand rectangle (conteneur) est le rectangle noir qui a une hauteur' h1', maintenant la question pour le premier l'image est si 3 petites boîtes ont été ajoutées sur le dessus du récipient comme c'est le cas, quelle serait la nouvelle hauteur requise 'h2', got it? – Smith

+0

Non, pas vraiment. Quel paramètre stocke le 3? –