Вы находитесь на странице: 1из 4

/** En la fabricacion de bonbillos la empresa ha estimado una vida util

de 100 h por bonbillo


* y se ha detectado cuatro fuentes de falla: La bonba, El bulbo, El
filamento y El casquete,
* cada una de ellas presenta una distribucion de duracion, se desea
saber:
* a= cual es la vida promedio de los lotes de fabricacion.
* b= porcentaje de bonbillos que culple el estandar y porcentaje de
fallos
* c= porcentaje de fallos de cada parte.
* d= Que recomendacion la harian a la empresa?
*
* Nota= El programa responde los puntos a,b y c, el usuario ingresa la
cantidad de bonbillos a probar.
* **/
import java.util.Scanner;
public class p_dos {
static
static
static
aleatorios.
static
aleatorios.

int t=0; // Var a ingresa por teclado bonbillos a probar.


float x=0;// var para guardar los numeros de distNormal
float R1=((float) Math.random());// var R1 para los nmeros
float R2=((float) Math.random());// var R1 para los nmeros

// Metodo para la distNormal.


public static float[] distNormal(int media, int desvest){
media=100; desvest=5; // Media y desviacion para la distNormal
Inicializado.
float sumalea=1; // variable para sumar los numeros aleatorios.
float[] VecDistNormal=new float [t]; // vector guardar Numeros
aleatorios con distNormal.
// ciclo para hacer la sumatoria de los aleatorios
for (int s=0;s<=12;s++){ // ciclo for hasta n ya que son 12 numeros
sumalea+=R1;// sumo todos aleatorios del vector para la
formula
}
x=(float)(media+desvest*(sumalea-6));// aplico la distNormal a los
numeros.
for (int i = 0; i < t; i++){
VecDistNormal[i]=x; // lleno el vector de los # aleatorios
con distNormal.
}
return VecDistNormal;
}// fin para metodo distNormal
//Metodo para la distribucion Exponencial
//Metodo para distExponencial.
public static float[] distExponencial (float media){
media=100; // media para la distExponeccial.
float VecDistExponencial[]=new float [t]; // vector guarda #
aleatorios con distNormal.
for (int i = 0; i < t; i++) {

x= (float) (-media*Math.log(1-R1)); // aplico la


distExponencial a los numeros.
VecDistExponencial[i]=x; //Lleno el vector con #
aleatorios con distExponencial
}
return VecDistExponencial;
}// fin metodo distExponencial.
//Metodo para la distUniforme
//Metodo para la Dsitribucion Uniforme
public static float [] distUniforme(float a, float b){
a=95; b=105; // Valores quemados para la distUniforme
float VecDistUniforme[]=new float [t]; // vector guarda #
aleatorios con distUniforme.
for (int i = 0; i < t; i++) {
x=(float) (a+(b-a)*R1); // aplico la distExponencial a
los numeros.
VecDistUniforme[i]=x; //Lleno el vector con #
aleatorios con distExponencial
}
return VecDistUniforme;
}// Fin de metodo distUniforme.
//Metodo para la Distribucion Triangular
//Metodo para la distTriangular.
public static float[] distTriangular(float a, float b, float c){
a=90;b=100; c=110; // Valores quemados para la distribucion
triangular
float VecDistTriangular[]=new float [t]; // vector guarda #
aleatorios con distUniforme.
for (int i = 0; i < t; i++) {
if(R1<((b-a)/(c-a))){ // condicion de disTriangular
x=(float) (Math.sqrt(R2)*((b-a)+a)); // aplico la
distTriangular a los numeros.
VecDistTriangular[i]=x;//Lleno mi array segun la
condicin
}else{
x=(float)(c-(c-b)*(Math.sqrt(R2)));
VecDistTriangular[i]=x; //Lleno mi array segun la
condicin
}
}
return VecDistTriangular;
}// fin de metodo distTriangular.
//Metodo para la vida promedio.
public static void NumeroMenorDist (float VecDistNormal[], float
VecDistExponencial[],float VecDistUniforme[], float VecDistTriangular[]){
for (int j = 0; j < t; j++) {
float menorormal=0;
float menorExpo=0;

float menorTriangular=0;
float menorUniforme=0;
float bomba=0,bulbo=0,filamento=0,casquete=0;
if (VecDistNormal[j]<VecDistExponencial[j] &&
VecDistNormal[j]<VecDistUniforme[j] &&
VecDistNormal[j]<VecDistTriangular[j]){
VecDistNormal[j]=menorormal;
bomba++;// cantidad de fallas por bomba
System.out.println();
}
if (VecDistExponencial[j]<VecDistNormal[j] &&
VecDistExponencial[j]<VecDistUniforme[j] &&
VecDistExponencial[j]<VecDistTriangular[j]){
VecDistExponencial[j]=menorExpo;
bulbo++;// cantidad de fallas por bulbo
}
if (VecDistUniforme[j]<VecDistNormal[j] &&
VecDistUniforme[j]<VecDistExponencial[j] &&
VecDistUniforme[j]<VecDistTriangular[j]){
VecDistUniforme[j]=menorUniforme;
casquete++;// cantidad de fallas por casquete
}
if (VecDistTriangular[j]<VecDistNormal[j] &&
VecDistTriangular[j]<VecDistExponencial[j] &&
VecDistTriangular[j]<VecDistUniforme[j]){
VecDistTriangular[j]=menorTriangular;
filamento++;// cantidad de fallas por filamento
}
}

// fin metodo NumeroMenorDist

//Metodo para ver cuantos cumplen el estandar y cuantos no.

public static void main(String[] args) {


Scanner teclado=new Scanner(System.in); // Libreria lee el
teclado
System.out.println("ingrese la cantidad de bombillos a
probar");//pantalla
t= teclado.nextInt();// guado en a lo que entra por teclado
//System.out.println(R1);
// metodo para imprimir los valores de la distribucion
Exponencial.

System.out.println("Numeros aleatorios con distribucion


Exponencial para el bulbo");
float[] vectorDisExponencial=distExponencial(100);
for (float f : vectorDisExponencial)
{System.out.print("["+f+"]");}

//Metodo para imprimir los valores de la distribucion


Uniforme.

System.out.println("\nNumeros aleatorios con distribucion


Uniforme para el Casquete");
float[] vectorDisUniforme=distUniforme(95,105);
for (float f : vectorDisUniforme)
{System.out.print("["+f+"]");}
Triangular.

//Metodo para imprimir los valores de la distribucion

System.out.println("\nNumeros aleatorios con distribucion


Triangular para el Filamento");
float[] vectorDisTriangular=distTriangular(90,100,110);
for (float f : vectorDisTriangular)
{System.out.print("["+f+"]");}
Uniforme.

//Metodo para imprimir los valores de la distribucion

System.out.println("\nNumeros aleatorios con distribucion


Normal para La bomba");
float [] vectorDisNormal=distNormal(100,5);
for (float f : vectorDisNormal)
{System.out.print("["+f+"]");}
}// Fin del Main

Вам также может понравиться