elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Curso de javascript por TickTack


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Generar números aleatorios sin que se repitan ... en C++
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Generar números aleatorios sin que se repitan ... en C++  (Leído 27,988 veces)
drawiz

Desconectado Desconectado

Mensajes: 1


Ver Perfil
Generar números aleatorios sin que se repitan ... en C++
« en: 22 Febrero 2011, 00:52 am »

Hola, foreros!

Estoy iniciándome con este asunto de la programación y me han puesto un ejercicio en el cual me piden lo siguiente:

"Hacer un programa que llene 2 arreglos unidimensionales de 10 elementos con valores aleatorios de 1 a 15. En cada arreglo no puede existir el mismo número repetido, pero si puede existir en el otro arreglo.

Cuando termina de llenar los vectores debe mostrar su contenido uno a la par del otro. Luego deberá sumar los resultados en un tercer arreglo tomando el primer elemento del arreglo 1 y sumarlo con el último elemento del arreglo 2.

Al finalizar la suma de los elementos debe mostrar el resultado del tercer vector."



Pues bien, ya comencé a desarrollar el código para resolver este ejercicio, pero, cuando llego a la parte donde debo comprobrar si un elemento se repite en un arreglo (por el momento solamente he declarado 1 arreglo) ya no sé qué hacer para crear la recursividad que me permita saber si el elemento está o no repetido.

Agradecería mucho si podéis ayudarme a resolver esto. Os dejo el código que he desarrollado hasta el momento.

//Inicia el codigo

#include <iostream>
#include <iomanip>
#include <cstdlib>
#include <time.h>
using namespace std;

int main () {

        int tamanno = 10;
        int arreglo1[tamanno]; //declaro un arreglo de 'tamanno' elementos.
        int contador = 1;
        int aux = 0;

        //Voy a sembrar una 'semilla' para luego usar numeros aleatorios en
        //el arreglo que utilizare posteriormente.
        srand(time(NULL));

        //Esto inicializa en '0' a los elementos del arreglo.

        for ( int i = 0; i < tamanno; i++ ) {
        arreglo1 = (rand() % 10) + 1; //Genera numeros aleatorios entre 0 y 10
        }

        // Aqui deberia haber algo que permita crear una recursion para saber
        // si un elemento del arreglo esta repetido. De ser asi deberia crear
        // otro elemento en esa posicion, comprobar de nuevo si esta repetido
        // y si no lo esta entonces pasar a la siguiente posicion repetiendo
        // esta accion hasta que todos los numeros no esten repetidos.

        //Ahora voy a mostrar el encabezado de donde estara el arreglo.

        cout << "Elemento" << setw(13) << "Valor" << endl;

        cout << "Elemento" << setw(13) << "Valor" << endl;

        //Esta sección de codigo es la que muestra a los elementos del
        //arreglo.
        for ( int i = 0; i < tamanno; i++ )
                cout << setw(7) << i << setw(13) << arreglo1 << endl;

        return 0;


// Finaliza el codigo


En línea

Garfield07


Desconectado Desconectado

Mensajes: 1.121


¡Este año voy a por todas! JMJ 2011


Ver Perfil WWW
Re: Generar números aleatorios sin que se repitan ... en C++
« Respuesta #1 en: 22 Febrero 2011, 01:17 am »

http://foro.elhacker.net/programacion_cc/generar_numeros_aleatorios_sin_repeticionc-t315014.0.html
http://foro.elhacker.net/programacion_cc/como_crear_numeros_aleatorios_sin_que_se_repitan-t268765.0.html

Hay más en Códigos interesantes, post interesantes... Etc.

Suerte!


En línea



* Quiero cambiar el mundo, pero estoy seguro de que no me darían el código fuente.
* No estoy tratando de destruir a Microsoft. Ese será tan solo un efecto colateral no intencionado.
* Si compila esta bien, si arranca es perfecto.

¡Wiki elhacker.net!
Un saludo
BlackZeroX
Wiki

Desconectado Desconectado

Mensajes: 3.158


I'Love...!¡.


Ver Perfil WWW
Re: Generar números aleatorios sin que se repitan ... en C++
« Respuesta #2 en: 1 Junio 2011, 04:12 am »

.
puedes traducir este codigo:

http://foro.elhacker.net/programacion_visual_basic/src_crndnumbersnr_generar_numeros_aleatorios_sin_repetir_veryfast-t328967.0.html

El algoritmo es súbitamente rápido ya que no emplea bucles en la creación de números aleatorios.

Dulces Lunas!¡.
.
En línea

The Dark Shadow is my passion.
miri_nenyta

Desconectado Desconectado

Mensajes: 1


Ver Perfil
Re: Generar números aleatorios sin que se repitan ... en C++
« Respuesta #3 en: 26 Febrero 2016, 09:37 am »

NECESITO AYUDA, SOY PRINCIPIANTE EN ESTE TEMA Y NO PUEDO CON UNA TAREA, ME PIDE LO SIGUIENTE:

Diseña un programa que genere números aleatorios entre 0 y 10000 e imprima el valor del número
generado, el programa se debe de ejecutar constantemente ( es decir en forma repetitiva) y se
debe detener, solo cuando el numero generado se encuentre en el rango de (4000 a 6000)

#include <stdio.h>
#include <stdlib.h>
#include <time.h>


main()
{
int num,i;

srand(time(NULL));
num=rand()%1;
num=rand()%10000;
printf("Numero aleatorio es: \n", num);
printf("%i\n", num);

HASTA AHI ME DA NUMEROS ALEATORIOS PERO NO LOGRO MAS AYUDA POR FAVOR URGEEEE
En línea

Mecanma

Desconectado Desconectado

Mensajes: 8


Ver Perfil
Re: Generar números aleatorios sin que se repitan ... en C++
« Respuesta #4 en: 17 Octubre 2019, 07:46 am »

perdon por responder a algo muerto. y por el codigo

Código:
#include <iostream>
#include <stdlib.h>
#include <time.h>

using std::cout;
using std::endl;

int main(){
const int Max = 10000, Limite =10001;

srand(time(NULL));

int aux;


do{
aux =0 + rand()%(Limite - 0);

if((aux > 4000) && (aux < 6000)){
cout<<"Ultimo: "<<aux<<endl;
return 0;
}
else{
cout<<aux<<endl;
}
}while((aux < 4000) || (aux >6000));



return 0;
}
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines