Partage
  • Partager sur Facebook
  • Partager sur Twitter

Problème avec des algorithmes basés sur le Random

6 août 2015 à 2:53:24

Bonjour à tous !

Voila cela fait plusieurs fois que j'ai le même soucis lorsque je veux utiliser du random quelque part.

Je vais partir d'un exemple assez simple : je veux faire apparaitre des cubes 3D dans une aire à des emplacements randoms.
Par contre je veux que ces mêmes cubes soit espacés avec leurs voisins d'au moins x unités.

Donc de là je pars sur un algorithme qui me fait une position random et qui check si la position est valide ... ce qui est extrêmement pourri car on peut tester plein de fois pour essayer de rentrer un cube ...

Du coup à chaque fois pour limiter le temps passé à trouver une position (ou si carrément elle ne peut exister) : je fais un compteur et si ce compteur depasse une valeur et bha je met quand même mon cube quitte a ne pas avoir la bonne distance respecté.




N'y a t-il pas de solution efficace pour ce genre de problème ?
  • Partager sur Facebook
  • Partager sur Twitter
6 août 2015 à 8:50:37

Lu'!

L'aire en question est elle discrète ? La taille des cubes est elle également aléatoire ?

  • Partager sur Facebook
  • Partager sur Twitter

Posez vos questions ou discutez informatique, sur le Discord NaN | Tuto : Preuve de programmes C

6 août 2015 à 9:31:55

Est ce qu'il ne serait pas plus judicieux de définir les endroits où tu peux mettre ton cube et d'utiliser la fonction random une seule fois pour choisir un endroit là où c'est possible.

Genre tu définis plusieurs zones simples où tu peux mettre ton cube, tu choisis une des zones avec random tout en assurant que la probabilité de choisir une zone soit proportionnelle à sa surface et ensuite  tu choisis un point dans cette zone ou placer ton cube.

bon là tu utilise 2 fois random mais au moins c'est un nombre fini ^^

-
Edité par Guigz12 6 août 2015 à 9:32:38

  • Partager sur Facebook
  • Partager sur Twitter
6 août 2015 à 13:04:30

Alors la zone est continue et les aires des cubes sont fixes.

J'avais pensé à "mapper" toute mon aire (qui est est de taille quelconque et sera par la suite créée procéduralement ) en specifiant une liste de points où le cube pourrait apparaitre toutes les X positions. Puis selectionner aléatoirement un de ces points et le rétirer de la liste des points.

Le problème c'est que si x devient petit je vais devoir faire beaucoup de point d'apparition et ça risque de couter cher en terme de temps/espace mémoire ....

-
Edité par Driiade 6 août 2015 à 14:14:09

  • Partager sur Facebook
  • Partager sur Twitter