Partage
  • Partager sur Facebook
  • Partager sur Twitter

Trouver la/les bonnes additions ...

Trouver la/les bonnes additions ... remplir un espace avec des élément

    12 février 2017 à 19:28:44

    Bonjour,

    Je travaille actuellement sur un projet visant à générer une rue ou une avenue.
    Cette avenue est composé de plusieurs blocs. Ces derniers sont composés d'un certain nombre d'immeubles pris dans une collections existante. Ils ont des largeurs prédéterminées : 12, 15, 20, 24, 30 ,40, 70 m
    Ces immeubles doivent avoir des magasins à leur 1er niveau .
    Les magasins ont des largeurs prédéterminées également : 3,4,5,6,7,10 mètres.

    Quelles solution s'offre à moi pour mettre les bons magasins à la base des immeubles sachant qu'un magasin ne peut pas chevaucher deux immeubles.
    Par exemples, pour un immeubles de 15m, je pourrais mettre des magasins tel que : 4,3,4,4.

    Je sèche totalement sur la façon de procéder.

    Merci de bien vouloir m'orienter.


    P.S. : Le soft que j'utilise possédant un langage propriétaire se rapprochant du C, j'ai aussi posté dans cette partie du forum

    • Partager sur Facebook
    • Partager sur Twitter
      12 février 2017 à 20:45:55

      Bonsoir,

      Hum pas tout compris là....

      "Par exemples, pour un immeubles de 15m, je pourrais mettre des magasins tel que : 4,3,4,4" Tu voulais vraiment dire ça?

      Pourrais on résumer ton problème comme ça:

      Tu à un segment de base, de 12, 15, 20, 24, 30 ,40 ou 70 m. Tu dois compléter ce segment avec d'autre de longueur  3,4,5,6,7 ou 10 ?

      La longueur est bien le seul critère?

      Question:

      1)Est ce que chaque segment de base (chaque immeuble) doit être remplis? genre un immeuble de 15 m pourra pas contenir un magazin de 10 et un magazin de 4.

      2)Est ce que le remplissage des magasins dans les immeubles se fait de manière aléatoire? 

      Sans info on pourra pas t'aider ^^

      • Partager sur Facebook
      • Partager sur Twitter
        12 février 2017 à 23:17:00

        Il manque en effet une contrainte à l'énoncé : le but est-il d'avoir les plus gros magazins possibles (en moyenne) ? Y'a-t'il une contrainte quelconque sur le nombre et/ou la taille des magazins ? Ou leur répartition ?

        • Partager sur Facebook
        • Partager sur Twitter
        Zeste de Savoir, le site qui en a dans le citron !
          13 février 2017 à 9:34:26

          Effectivement, j'ajoute quelques précisions.
           - Chaque segment doit être rempli. il ne doit rester aucun vide.
           - Le remplissage se fait de manière aléatoire.
           - Point de vue contrainte, j'aimerais que les immeubles les plus grands est de plus larges magasins.
          Je commence à me renseigner sur la récursivité. Ca a clairement l'air d'être la marche à suivre.

          • Partager sur Facebook
          • Partager sur Twitter
            13 février 2017 à 13:05:46

            Comme ça, d'un point de vu python, je te dirais d'utiliser la bibliothèque random de python  pour remplir les immeuble de manière aléatoire

            Après si tu veux que les immeubles plus grand ai des magazin plus larges, tu peut faire en sorte que ta fonction random ignore les magazin de 3 ou 4 m dans le cas d'immeuble de 70 m.

            • Partager sur Facebook
            • Partager sur Twitter
            Anonyme
              13 février 2017 à 13:21:31

              C'est même un boulot pour itertools

              >>> from itertools import product
              >>> for i in range(2, 8):
              ...     for res in product([3, 4, 5, 6, 7, 10], repeat=i):
              ...         if sum(res) in (12, 15, 20, 24, 30 ,40, 70):
              ...             print("{} -> {}".format(res, sum(res)))
              

              -
              Edité par Anonyme 13 février 2017 à 13:46:27

              • Partager sur Facebook
              • Partager sur Twitter

              Trouver la/les bonnes additions ...

              × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
              × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
              • Editeur
              • Markdown