Problema con Algoritmo de Probabilidades.

diegoossa

Lanero Regular
11 Mar 2009
1
Hola Comunidad de Laneros:

El problema es el siguiente:

El sistema monetario colombiano incluye denominaciones de monedas de 50,
100, 200 y 500 pesos; las denominaciones de billetes son de 1000, 2000,
5000, 10000, 20000 y 50000 pesos. Se tiene, ademas, un conjunto de 10000
datos, organizados en registros; cada registro contiene
una cantidad entera de dinero, X (múltiplo exacto de 50), y un tipo
de denominación T (1 = moneda, 2 = billete).
Los valores solo se pueden generar con monedas o con billetes (No mixto)
Elaborar un algoritmo que efectúe los siguientes procesos:

a) Generar una de las posibles combinaciones necesaria para formar el valor.

Entonces:

Generé 2 vectores de 10000 posiciones, uno para los valores aleatorios entre
50 y 10000 que habia que generar, el cual tenia que ser multiplo de 50;
y el otro vector para definir el tipo ( si era monedas o billetes)

Luego hice la probabilidad mas facil de realizar, la cual era tomar el valor y dividirlo por
la moneda o billete de menor denominación.

Asi se obtiene una de las posibles combinaciones para formar el valor.

El código en Java es el siguiente:

import java.util.Random;

public class monedas {


public static void main(String[] args) {
Random valor = new Random();
int[] VecMon = new int[10000];
int[] VecTipo = new int[10000];
int a,b,c,mon=0;
for(int i=0;i<10000;i++)
{
a=(valor.nextInt(10000));
b=a%50;
VecMon=a-b;
c=VecMon;
if((c%1000)==0)
{
VecTipo=2;
}
else
{
VecTipo=1;
}

if(VecTipo==1)
{
mon = VecMon/50;
System.out.println(i + " -- " + VecMon+ " -- " + VecTipo+ " :");
System.out.println(" "+mon + " Monedas de 50");
}
else if(VecTipo==2)
{
mon = VecMon/1000;
System.out.println(i + " -- " + VecMon+ " -- " + VecTipo+ " -- ");
System.out.println(" "+mon + " Billetes de 1000");
}

}

}

}

Hasta ahi voy bien.

Pero luego el profesor nos dice que ahora generemos:

TODAS las posibles combinaciones entre los valores y las mostremos.

Entonces si el Valor a calcular es por ejemplo 9550 tenemos que generar todas
las posibles combinaciones de monedas para este valor:

Por ejemplo: 191 monedas de 50
95 monedas de 100 y una de 50.
19 monedas de 500 y una de 50.
etc... etc,,,, etc.....


TODAS las probabilidades, que son muuchas.

Lo malo es que este problemas es mas de estadistica que de programacion y
no he podido aplicar formulas para resolverlo.

Piensen a ver si pueden ayudarme un poco con el algoritmo, para generar todas
las probabilidades.


MUCHAS GRACIAS

:)