Título: Problema con srand() y rand() Publicado por: JonaLamper en 14 Enero 2014, 23:45 pm Se acabó, no aguanto más. Llevo 35 minutos intentando solucionar esto y no veo dónde está el fallo. Lo único que quiero conseguir es generar números aleatorios mediante un procedimiento Void. Y no sé por qué, siempre me genera el mismo número, soy incapaz de ver el maldito error.
Código
Gracias y ojala me ayudéis porque me estoy volviendo loco (seguro que después es una tontería, para variar...) Pd: ignorar los comentarios :xD Título: Re: Problema con srand() y rand() Publicado por: xiruko en 15 Enero 2014, 00:01 am Citar Se acabó, no aguanto más. Llevo 35 minutos... Si quieres seguir en esto me parece que tendrás que aprender a tener un poco más de paciencia... xD Y bueno en cuanto al código, no sé de que te sorprendes si nunca cambias el valor de la variable 'codigo'. O imprimes dentro de la función la variable local 'num', o pasas la variable 'codigo' por referencia a la función para así poder modificar su valor. Esta última opción te quedaría así: Código
Aunque hacer una función para eso pues como que tampoco haría falta... Pero bueno eso ya es cosa tuya. Saludos. Título: Re: Problema con srand() y rand() Publicado por: JonaLamper en 15 Enero 2014, 00:34 am Muchas gracias. No veía el ponerle un parámetro por referencia al procedimiento :-\
Ya... pero son las normas de la práctica xD Oye, cómo haces para que al insertar un código, reconozca que se trata de C++ (por ejemplo)? Título: Re: Problema con srand() y rand() Publicado por: xiruko en 15 Enero 2014, 00:38 am De nada.
Respecto a lo del código en colores, cuando editas un mensaje tienes una pestaña con el nombre de GeSHi que despliega todas las etiquetas para varios lenguajes de programación. En el caso de C++ tendrías que pegar el código entre las etiquetas [ code=cpp] ... [ /code], sin espacios claro. Saludos. Título: Re: Problema con srand() y rand() Publicado por: JonaLamper en 21 Enero 2014, 17:20 pm Pongo aquí mi duda para no abrir otro tema.
Es posible generar un número con srand (en mi caso, de longitud 4 e intervalo [0,5]) y asegurarse de en esos 4 dígitos, no hay ninguno repetido? He pensando en guardar el valor anterior generado y compararlo con el nuevo... pero no sé si es una buena idea, porque dicho número generado va dentro de un array. Título: Re: Problema con srand() y rand() Publicado por: ivancea96 en 21 Enero 2014, 17:46 pm Recuerda que Srand no genera número aleatorio. Pone la semilla para Rand.
Si te quieres asegurar, deberás hacerlo a mano, con una función, por ejemplo. Citar de longitud 4 e intervalo [0,5] Longitud 4 e intervalo 0,5 el qué? Título: Re: Problema con srand() y rand() Publicado por: JonaLamper en 21 Enero 2014, 21:46 pm Recuerda que Srand no genera número aleatorio. Pone la semilla para Rand. Si te quieres asegurar, deberás hacerlo a mano, con una función, por ejemplo. Longitud 4 e intervalo 0,5 el qué? El código generado (mediante una función que contiene un For, por ejemplo). Título: Re: Problema con srand() y rand() Publicado por: xiruko en 21 Enero 2014, 23:39 pm Longitud 4, números entre [0,5] y sin repetir? Te refieres a números tipo: 1234 5432 etc? Es que no queda muy claro tal y como lo dices pero diría que es eso.
Si es así, podrías hacer un array de enteros con todas las posibilidades tipo: Código
Y luego para generar un número u otro podrías hacer: Código
Claro que también podrías rellenar el array con un par de ciclos for para ahorrárte el escribirlos a mano. O también podrías declarar el array de enteros dentro de la función y así te ahorras esos parámetros... En fin, era solo una idea. Saludos. Título: Re: Problema con srand() y rand() Publicado por: JonaLamper en 22 Enero 2014, 00:17 am Uh... no se me había ocurrido la idea de hacer un array con todas las posibilidades. Buena idea ^^
Título: Re: Publicado por: ivancea96 en 22 Enero 2014, 09:10 am Son 360 posibilidades. Mejor haz una funcion que lo verifique.
Enviado desde mi ST21i mediante Tapatalk Título: Re: Publicado por: amchacon en 22 Enero 2014, 11:46 am Son 360 posibilidades. Mejor haz una funcion que lo verifique. Con 4 cifras son 24 posibilidades (4 x 3 x 2 x 1).En cuanto al tema en cuestión te dejo otra propuesta más generica: Código
No lo he probado pero debería funcionar. Tienes que pasarle el vector que quieres que te rellene, el numero de cifras y el máximo/menor (no inclusivo) valor que puede coger cada cifra. En este caso el maximo sería 10 porque quieres números del 0-9 supongo. Por cierto: Código
Los "=" son son argumentos por defecto. Si no le dices nada el compilador te los rellena automaticamente: Código
Título: Re: Publicado por: ivancea96 en 22 Enero 2014, 14:28 pm Con 4 cifras y 6 posibilidades, son 360. 6*5*4*3.
Enviado desde mi ST21i mediante Tapatalk Título: Re: Publicado por: amchacon en 22 Enero 2014, 15:13 pm Con 4 cifras y 6 posibilidades, son 360. 6*5*4*3. Huy es verdad, menudo despiste :silbar:Título: Re: Publicado por: ivancea96 en 22 Enero 2014, 16:34 pm Con 4 cifras son 24 posibilidades (4 x 3 x 2 x 1). En cuanto al tema en cuestión te dejo otra propuesta más generica: Código
No lo he probado pero debería funcionar. Tienes que pasarle el vector que quieres que te rellene, el numero de cifras y el máximo/menor (no inclusivo) valor que puede coger cada cifra. En este caso el maximo sería 10 porque quieres números del 0-9 supongo. Por cierto: Código
Los "=" son son argumentos por defecto. Si no le dices nada el compilador te los rellena automaticamente: Código
También puedes hacer una función más genérica, pasándole un array con las cifras permitidas, y un int con el número de cifras del número que quieres generar. |