0 votos
por (20 puntos) en Java

Muy buenas tardes me han pedido en mi universidad realizar un programita que permita
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  y  finalmente  el  vector  de probabilidades.

//este es el codigo hasta ahora que llevo la duda es como calculo el vector dentro del porcentaje

package usamultiplicacion;
import java.util.Scanner;

 public class Multiplicacion

{                 // Abre clase Multiplicacion

    //Si se quiere multiplicar matrices de distinta dimension
    //solo hay que cambiar los valores de M, N y P
    private int M = 2;
    private int N = 2;
    private int P = 2;
  
    private int Matriz1[][] = new int[N][M];
    private int Matriz2[][] = new int[M][P];
    private int Matriz3[][] = new int[N][P];

        Scanner entrada = new Scanner(System.in);

    public Multiplicacion() {
        this.numeses = new int numeses[0];
        
    }


    //Metodo Recibe_Entradas1
    public void Recibe_Entradas1()
            
          int[] numeses;

    { // Abre metodo Recibe_Entradas1
       
          
    System.out.printf("\nEste programa multiplica una matriz de %d columnas y %d renglones", M, N);
    System.out.printf(" con una de %d columnas y %d renglones\n\n", P, M);
    
    System.out.print("\nAqui se reciben las entradas de la primera matriz " );
    System.out.printf("de %d filas y %d columnas.\n", M, N );


    for ( int i = 0; i < N; i++ )
    for ( int j = 0; j < M; j++ )

    { // Abre for
    System.out.printf("\nIntroduzca el numero de meses que desea calcular: \n\n  ");
    System.out.printf("Introduzca el valor de la entrada en el renglon %d  y la columna %d: ", i + 1,  j + 1 );
    Matriz1[i][j] = entrada.nextInt();
        } // Cierra for
    } // Cierra metodo Recibe_Entradas1



    public void Recibe_Entradas2( )

    { // Abre metodo Recibe_Entradas2

    System.out.print("\nAqui se reciben las entradas de la segunda matriz " );
    System.out.printf("de  %d  filas y %d columnas", M, P);

    for ( int i = 0; i < M; i++ )
    for ( int j = 0; j < P; j++ )
    { // Abre for
    System.out.printf("\nIntroduzca el valor en el renglon %d y la columna %d: ",  i + 1,  j + 1 );
        Matriz2[i][j] = entrada.nextInt();
            } // Cierra for

    } // Cierra metodo Recibe_Entradas2



    // Metodo Multiplicar
    public void Multiplicar( )

    { // Abre metodo Multiplicar

    for ( int k = 0; k < N; k++)
    { // abre primer ciclo for
    for ( int j = 0; j < P; j++)
    { // abre el segundo ciclo for
    for ( int i = 0; i < M; i++ )
    Matriz3[ k ][j ] += Matriz1[k][i]*Matriz2[i][j];

    } // Cierra el segundo ciclo for
    }

    } // Cierra el metodo Multiplicar



        
  void Imprimir( )
  {  // Abre metodo Imprimir
  // Aqui se imprimen la dos matrices y la matriz producto
  int i, j, k;

  System.out.printf("\n\nAQUI SE IMPRIMEN LAS DOS MATRICES Y EL PRODUCTO: \n\n");
  for ( i = 0; i < N; i++ )
  { // abre for que controla numero de renglones

  // Este ciclo imprime la primera matriz
  // No hay ningun problema para imprimir la primera matriz, ya que se
  // trata de un par de ciclos for. Sin embargo se quiere imprimir las
  // tres matrices, lo cual hace un poquito mas complicado el asunto.
  // De todas formas la primera se imprime renglon por renglon
  // solo que antes de pasar al siguiente renglon, se escriben las entradas
  // correspondientes de la segunda y tercera matrices.

  for ( k = 0; k < M; k++)
  { // Abre ciclo for
  System.out.printf("%3d", Matriz1[i][k]);
  // Se imprime el renglon i de la matriz 1
  } //Cierra ciclo for

  System.out.printf("\t\t"); // Esta instruccion separa una matriz de otra

  // Este ciclo imprime la segunda matriz

  for ( j = 0; j < P; j++)
  { // abre for
  if ( i <= (N - 1)) // El numero de columnas de la segunda matriz puede ser
  // menor o mayor que el numero de filas de la primera
  // Si es mayor no pasa nada, pero si es menor se estara
  // haciendo referencia a un elemento inexistente en el arreglo
  // El caso en el que N > M se trata fuera del ciclo controlado por i
  // El -1 es debido a que i empieza a correr en cero

  System.out.printf("%3d", Matriz2[i][j]); // se imprime el renglon i de la matriz 2

  else // De lo contrario solo se imprimen 3 espacios en blanco
     // correspondientes con 3d

  System.out.printf(" ");
  } // Cierra for

  System.out.printf ("\t\t"); // Esta instruccion separa la matriz 2 de la matriz
                 // producto

  // Este es el ciclo que imprime la matriz producto
  for ( j = 0; j < P; j

Por favor, accede o regístrate para responder a esta pregunta.

Preguntas relacionadas

0 votos
0 respuestas
0 votos
0 respuestas
preguntado por fer (40 puntos) Ene 26, 2019 en Java
0 votos
0 respuestas
0 votos
1 respuesta
preguntado por mine77 (20 puntos) Ene 28, 2016 en Java
0 votos
5 respuestas
Bienvenido a Dudas de Programación, donde puedes hacer preguntas y recibir respuestas sobre los problemas más frecuentes de los lenguajes de programación, frameworks de desarrollo y bases de datos que utilices. Foro de Línea de Código

Categorías

...