public class Problema6 { Matriz arreglo; Work w[]; public Problema6() { int i; arreglo = new Matriz(); arreglo.generaValores(); w = new Work[10]; for(i=0; i<=9; i++) w[i].SetParametros(i,arreglo); for(int j=0; j<10; j++) w[j].start(); } public Matriz getArreglo() { return this.arreglo; } public static void main(String Args[]) { Problema6 prob = new Problema6(); //prob.w = /*Imprimimos la matriz*/ for (int j=0; j<10; j++) { for(int k = 0; k<9; k++) { System.out.print(prob.arreglo.getValor(j, k) + " "); } System.out.print("\n"); } /*Imprimimos los contadores de los workers*/ for(int i=0 ; i<=9 ; i++) { System.out.println(prob.w[i].getVeces()); } } } import java.util.*; class Matriz { int valores [][] = new int [10][10]; public Matriz () { //this.generaValores(); } public int getValor(int i, int j) { return valores[i][j]; } public void setValor(int i, int j, int valor) { this.valores[i][j] = valor; } public void generaValores() { Random rm; for (int i=0 ; i<=9 ; i++){ for (int j=0 ; j<=9 ; j++){ rm = new Random(); valores[i][j] = rm.nextInt(10)+1; } } } } public class Work extends Thread{ private int ident; Matriz mat; private int veces; public Work() { mat = new Matriz(); } public void SetParametros(int ide, Matriz arreglo) { ident = ide; for(int i=0; i<10; i++) { for(int j = 0; j < 10; j++) { this.mat.setValor(i, j, arreglo.getValor(i, j)); } } } public void run() { buscar(); } private int buscar() { //int veces = 0; for (int i=0 ; i<=9 ; i++) { for(int j=0 ; j<=9 ; j++) if(this.mat.getValor(i, j) == this.ident) veces ++; } return veces; } public int getVeces() { return veces; } }