Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: JOSE23 en 21 Febrero 2011, 18:10 pm



Título: Como empezar?
Publicado por: JOSE23 en 21 Febrero 2011, 18:10 pm
HOLA, ALGUIEN ME PUEDE INDICAR COMO EMPEZAR ESTE EJERCICIO?


Generar e imprimir ternas de números aleatorios (los dos primeros entre 0 y 50, y el tercero entre 0 y 100, inclusive), hasta que la suma de los dos primeros números sea igual al tercero. Entonces, el programa nos dirá en cuántas de las ternas generadas la suma de los dos primeros números (de cada terna) era mayor que 50.


Título: Re: Como empezar?
Publicado por: drift_bit en 21 Febrero 2011, 23:30 pm
Dividir para conquistar pues amigo :)
Te ayudare con una parte.. generar numeros entre 0-50
para eso usas el operador Modulo %, y la funcion rand().

Ejemplo: array[0] = rand()%51.
Con eso hacemos que el primer elemento de nuestro arreglo genere un numero entre 0 y 50, suerte en tu ejercicio!


Título: Re: Como empezar?
Publicado por: JOSE23 en 23 Febrero 2011, 01:18 am
ESTO ES LO QUE E PODIDO REALIZAR,

#include <stdio.h>
#include <stdlib.h>
// Función Principal
main ()
{
int numero1,numero2,numero3,ternas=0,condicion=0;

while(!condicion){
                  numero1 = rand () %50;
                  numero2 = rand () %50;
                  numero3 = rand () %100;
                 
                 
                  printf ("\n La suma de los numeros 1 y 2 es igual a numero3");
                  }

fflush(stdin);
getchar();
}


Título: Re: Como empezar?
Publicado por: N0body en 1 Marzo 2011, 02:10 am
Primero que nada es más que obvio que tu bucle es indefinido, ya que la variable condicion no se modifica en el while...
Creo que lo que te propones hacer es:
-O dadas n iteraciones, cuantas veces de n los dos numeros <=50 suman exactamente el otro numero <=100...
-O hacer el proceso, HASTA que se cumpla 1 vez esta condición que mencionas e ir contando cuantas iteraciones fueron necesarias.

Obviamente que deberias realizar muchas pruebas para elaborar una conclusión (inductiva) estadística precisa...
Si quieres calcular las probabilidades que esto suceda te recomendaría hacerlo de manera deductiva (matemáticamente).

También te recomiendo analizar que posibles números te puede dar por resultado x=(n%50) y te darás cuenta que x (entero) pertenece al rango [0;49]

También creo que no sabés precisamente y con claridad que quieres de entrada y que quieres de salida, así como te falta comprensión tanto de lo que hace tu código como del enunciado en sí...
Y usa las etiquetas GeSHi para el código.

No querría ser grosero, pero me huele a clásica tarea.
Perdón si a veces prejuzgo a la gente, espero que lo puedas resolver...