Ver Mensaje Individual
  #1 (permalink)  
Antiguo 11/01/2013, 07:20
reethok
 
Fecha de Ingreso: abril-2011
Mensajes: 224
Antigüedad: 13 años
Puntos: 8
Números pseudoaleatorios más avanzados.

Bueno, ya que me estoy acomodando con el manejo de gráficos, se me ocurrió hacer un generador de imágenes aleatorias, les pongo el código fuente:

Código C++:
Ver original
  1. #include <SFML/Graphics.hpp>
  2.  
  3. #include <ctime>
  4. using std::time;
  5.  
  6. #include <string>
  7. using std::string;
  8.  
  9. #include <sstream>
  10. using std::ostringstream;
  11.  
  12. int main()
  13. {
  14.     sf::Randomizer azar;
  15.     azar.SetSeed(time(0));
  16.  
  17.     sf::Image imagen;
  18.     sf::Color color;
  19.  
  20.     ostringstream convert;
  21.  
  22.     string path;
  23.  
  24.     int w = 640;
  25.     int h = 480;
  26.  
  27.     int i = 1;
  28.  
  29.     imagen.Create(640, 480);
  30.  
  31.     while(true)
  32.     {
  33.         for(int x = 0; x < w; x++)
  34.         {
  35.             for(int y = 0; y < h; y++)
  36.             {
  37.                 color.r = azar.Random(0, 255);
  38.                 color.g = azar.Random(0, 255);
  39.                 color.b = azar.Random(0, 255);
  40.  
  41.                 imagen.SetPixel(x, y, color);
  42.             }
  43.         }
  44.  
  45.         convert << i;
  46.         path = convert.str() + ".png";
  47.  
  48.         convert.str("");
  49.  
  50.         imagen.SaveToFile(path);
  51.         i++;
  52.     }
  53.  
  54.     return EXIT_SUCCESS;
  55. }

La cosa es que... las imágenes casi como gráficas me muestran lo poco aleatorios que son esos números aleatorios.

Les muestro algunas imágenes generadas:





Como verán son... bastante similares. Y así he enerado cientos y cientos, y nada cambia, de hecho, sí inclinas un poco el monitor (sólo si es LCD) se puede distinguir una especie de cuadrícula que supongo es la que describe el algoritmo de generación pseudoaleatorio.

Me gustaría que me dieran una idea para generar imágenes con una aleatoriedad más real, y que así fueran más interesantes de ver...

Saludos.