Java - Visualizar la matriz inicial de ventas, el vector de probabilidad inicial y final

 
Vista:
Imágen de perfil de jonathan

Visualizar la matriz inicial de ventas, el vector de probabilidad inicial y final

Publicado por jonathan (4 intervenciones) el 17/05/2015 07:59:37
[b][b]muy buenas noches en este momento intento crear una cadena de markov en java IDE Netbeans la idea del enunciado es esta

calcular una matriz de transición en n-pasos, y calcular la probabilidad al cabo de k etapas.
Con ayuda de un generador de números pseudo-aleatorios simular las ventas realizadas por cinco
vendedores de una empresa cualquiera, en los cinco primeros meses del año anterior.
Permitir al usuario de la aplicación calcular mediante una cadena de Markov cual sera el porcentaje de
ventas al cabo de k meses. Donde k es ingreso por el usuario.
Visualizar la matriz inicial de ventas, el vector de probabilidad inicial

mi progreso hasta ahora va en la creacion de la matriz 5x5 la cual debe ser aleatoria y generada en el rango de 0 y 100 no repetidos ahora debo tomar en las cinco pimeras filas el total y promediarlas y luego igualmente las cinco columnas

este el codigo que llevo hasta ahora la dicultad que me genera es poder multiplicar la matriz resultante por ella misma y luego hacerlo dos veces mas osea potencia de 4 si alguien me puede orientar gracias le agradeceria muchisimo


//codigo


package m1;

import java.util.Random;

public class Matriz {


private int matriz [][];
private int matriz2 [][];
private int matriz3 [][];
private Random random;
private int totalf=0;
private int totalc=0;
private double promedio = 0;
private double p;



public Matriz(){
matriz = new int[5][5];
random = new Random();
//matriz2 = new int[5][5];
}

public void llenarMatriz(){
try{
for(int i = 0;i<matriz.length;i++){
for (int j = 0;j<matriz.length;j++){
matriz[i][j] = random.nextInt(100);

}
}
}catch(Exception e){
System.out.println(e.getMessage());
}
}

/**public void multimatriz(){ //metodo nultiplicar matriz

{ // abre primer ciclo for
for ( int j=0;j<matriz.length; j++)
{ // abre el segundo ciclo for
for ( int i=0;i< matriz.length ; i++ )
matriz2 = matriz[i][j]*matriz[i][j];
}
}
}*/


public void imprimirMatriz() {


for(int f=0;f<matriz.length;f++) {
double promediofila = 0;

for(int c=0;c<matriz[f].length;c++) {
System.out.print(matriz[f][c]+" ");
totalf = totalf + matriz[f][c];
totalc = totalc + matriz[c][f];
promediofila = promediofila + matriz[f][c];

for(int m=0;m<matriz.length;m++){
double procol =0;
for(int n=0;n<matriz[c].length;n++){


procol = procol + matriz[c][f];
}
}
}
System.out.println(" su total en el 1mes es: "+totalf +" su promedio en filas es: "+(promediofila/matriz[f].length)+" su total en columnas es: "+totalc+" su promedio en columna es: ");

totalf = 0;
totalc = 0;
}
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de jonathan

Visualizar la matriz inicial de ventas, el vector de probabilidad inicial y final

Publicado por jonathan (4 intervenciones) el 18/05/2015 00:48:03
bueno en mi progreso de este algoritmo llevo esto solo me falta multiplicar la resultante por n veces leido por teclado y posterior de esta matriz multiplicarla por un vector

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
package matrices;
 
import java.text.DecimalFormat;
 
public class Matriz {
 
    public int[][] matriz;
    public float[][] matrizTransicion;
    public float[][] matrizInicial;
    String linea = "";
    DecimalFormat decimales;
 
    public Matriz() {
        matriz = new int[6][6];
        matrizTransicion = new float[5][5];
        matrizInicial = new float[5][5];
        decimales = new DecimalFormat("0.00");
    }
 
    public void llenarMatriz() {
        int aleatorio;
        for (int i = 0; i < 5; i++) {
            for (int j = 0; j < 5; j++) {
                aleatorio = (int) (Math.random()*10);
                matriz[i][j] = aleatorio;
            }
        }
    }
 
    public void imprimir() {
        for (int i = 0; i < 5; i++) {
            for (int j = 0; j < 5; j++) {
                if (j == 4) {
                    linea = linea + " " + matriz[i][j] + " " + sumarHorizontal(i);
                } else {
                    linea = linea + " " + matriz[i][j];
                }
            }
            System.out.println(linea);
            linea = "";
        }
        System.out.println(sumarVertical());
    }
 
    private int sumarHorizontal(int i) {
        int suma = 0;
        for (int j = 0; j < 5; j++) {
            suma = suma + matriz[i][j];
            // System.err.println("la matriz vale "+matriz[i][j]);
        }
        return suma;
    }
 
    private String sumarVertical() {
        int suma = 0;
        int sumaTotal = 0;
        String sumar = "";
        for (int j = 0; j < 5; j++) {
            for (int i = 0; i < 5; i++) {
                suma = suma + matriz[i][j];
            }
            sumaTotal = sumaTotal + suma;
            sumar = sumar + " " + suma;
            suma = 0;
        }
        return sumar + " " + sumaTotal;
    }
 
    public void imprimirMatrizTransicion() {
        for (int i = 0; i < 5; i++) {
            for (int j = 0; j < 5; j++) {
                linea = linea + " " + decimales.format(matrizTransicion[i][j]);
            }
            System.out.println(linea);
            linea = "";
        }
    }
 
    public void llenarMatrizTransicion() {
        for (int i = 0; i < 5; i++) {
            for (int j = 0; j < 5; j++) {
                matrizTransicion[i][j] = (float) matriz[i][j] / sumarHorizontal(i);
            }
        }
    }
 
    public void multiplicarMatriz() { //solo me falta multiplicar la resultante por n veces leido por teclado 
        int suma=0;
        for (int i = 0; i < 5; i++) {
            for (int j = 0; j < 5; j++) {
                for (int k = 0; k < 5; k++) {
 
 
                }
            }
        }
    }
 
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar