Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Cálculo de Probabilidades

Estas en el tema de Cálculo de Probabilidades en el foro de C/C++ en Foros del Web. Hola a todos, lo primero de todos es avisar de antemano que llevo aprendiendo C++ sólo un mes, y aún estoy bastante pez, tengo cantidad ...
  #1 (permalink)  
Antiguo 21/04/2012, 07:19
 
Fecha de Ingreso: abril-2012
Mensajes: 2
Antigüedad: 12 años
Puntos: 0
Cálculo de Probabilidades

Hola a todos, lo primero de todos es avisar de antemano que llevo aprendiendo C++ sólo un mes, y aún estoy bastante pez, tengo cantidad de dudas jeje.
El caso es que quiero hacer un programa que genere, por ejemplo, 1000 numeros aleatorios del 1 al 10, y luego me diga qué porcentaje ha salido de cada uno. También quiero que tanto ese 1000 como ese 10 se puedan variar.

He conseguido llegar a un programa que funciona bastante bien, para un número menor de 15 iteraciones. En cuanto le pongo 16, el programa "casca". Entendería que funcionase bien o mal, pero no que funcione bien hasta 15 y que luego no funcione.

¿Alguien me ayuda? Gracias

Éste es el código hasta el que conseguí llegar:


#include <iostream>
#include <stdlib.h>

using namespace std;

float porcentaje(float a[], int b, int c){
int i,d=0;
for(i=0;i<b;i++){
d=d+a[i];
}
d=a[c]/d*100;
return d;
}

int main(){
srand(time(NULL));
int a, b, c, i;

cout << "Numero de variables a probar: " << endl;
cin >> a;
cout << "Numero de iteraciones a realizar: " << endl;
cin >> b;

float resultados[a];
float k;

for(i=0;i<b;i++){
resultados[i]=0;
}
for(i=0;i<b;i++){
c=rand()%(a);
resultados[c]++;
}
for(i=0;i<a;i++){
cout << "Variable " << i+1 << ": " << resultados[i] << " Porcentaje: " << porcentaje(resultados,b,i) << "%" << endl;
}

cin.get();cin.get();
return 0;
}
  #2 (permalink)  
Antiguo 21/04/2012, 09:15
 
Fecha de Ingreso: abril-2012
Mensajes: 2
Antigüedad: 12 años
Puntos: 0
Respuesta: Cálculo de Probabilidades

Al final me respondo yo solo, tenía muy mal hecha la función de calcular el porcentaje que representa un elemento dentro de una cadena (no sé como me compliqué tanto), además de otros fallos de programación por no haber escrito antes el algoritmo en un papel ¬¬......
A la quinta me salió^^
Un saludo a todos

P.D: supongo que a nadie le importe pero este ya funciona:


#include <iostream>
#include <stdlib.h>
#include <conio.h>

using namespace std;

//FUNCIÓN QUE INDICA QUÉ PORCENTAJE DE LA MUESTRA REPRESENTA CADA ELEMENTO DE LA MISMA
float porcentaje(float a[], int b, int c){
float d=a[c]/b*100;
return d;
}

int main(){
srand(time(NULL));
int a, b, c, i=0,w=1;

while(w==1){
cout << "Numero de variables a probar: " << endl;
cin >> a;
cout << "Numero de iteraciones a realizar: " << endl;
cin >> b;

float resultados[a];

for(i=0;i<a;i++){
resultados[i]=0;
}
for(i=0;i<b;i++){
c=rand()%a;
resultados[c]++;
}
for(i=0;i<a;i++){
cout << "Variable " << i+1 << ": " << resultados[i] << " Porcentaje: " << porcentaje(resultados,b,i) << "%" << endl;
}
cout << endl << "Repetir? (Tecla 1: SI Otra tecla: NO)" << endl;
cin >> w;
}

cin.get();cin.get();
return 0;
}

Etiquetas: funcion, int, programa, variables
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 01:55.