Ir ao conteúdo
  • Cadastre-se

Java Reconhecimento de padrão em uma matriz java


Posts recomendados

Olá, preciso fazer uma matriz em java que reconheça um padrão, por exemplo

1|1

1|0

O objetivo é que a matriz seja preenchida com números aleatórios e depois de preenchida faça uma reconhecimento desse padrão acima e me devolva quantos padrões foram encontrados, segue abaixo o código que fiz até agora, porém está dando erro se alguém poder me dar um auxilio eu agradeço.

package Códigos;

import java.util.Random;

public class Matriz {
    public static void main(String[] args) {
       // O programa deve ser possível ler no mínimo uma matriz 10x10 e encontrar ou não o padrão.
        //A matriz pode ser preenchida de forma automática de forma aleatória.
    
        int tam=10;
        int matriz [][]= new int[tam][tam];
        int l,c;
        int padrão=0;
        int cont=0;
        l=0;
        c=0;

        for ( l=0;l<tam;l++){
            for (c=0;c<tam;c++){
                Random rand= new Random();
                matriz[l][c]=rand.nextInt(2);
            }
        }
        for (l=0;l<tam;l++) {
            for (c=0;c<tam;c++) {
                if (matriz[l][c] == 1 && matriz[l][c + 1] == 1 && matriz[l+1][c]==0) {
                    cont++;
                    padrão+= cont;
                }

            }
        }
        System.out.println(padrão);
    }
}

 

Link para o comentário
Compartilhar em outros sites

  • 6 meses depois...

Desculpe pela demora, mas como diz o ditado: "Antes tarde do que nunca".

 

Acho que é isso que você precisa, ou precisava:

import java.util.Random;

public class PadroesMatrizTest {
    public static void main(String[] args) {
        int tamanho = 10;
        int[][] matriz = new int[tamanho][tamanho];

        int padraoOI = 0;
        int padraoOO = 0;
        int padraoIO = 0;
        int padraoII = 0;

        // Preencher matriz com valores binários aleatórios
        for (int c = 0; c < tamanho; ++c)
            for (int l = 0; l < tamanho; ++l)
                matriz[l][c] = new Random().nextInt(2);

        // analisar em busca dos padrões
        for (int l = 0; l < tamanho; ++l) {
            for (int c = 0; c < tamanho - 1; ++c) {
                if (matriz[c][l] == 0 && matriz[c + 1][l] == 0)
                    ++padraoOO;
                else if (matriz[c][l] == 0 && matriz[c + 1][l] == 1)
                    ++padraoOI;
                else if (matriz[c][l] == 1 && matriz[c + 1][l] == 0)
                    ++padraoIO;
                else if (matriz[c][l] == 1 && matriz[c + 1][l] == 1)
                    ++padraoII;
            }
        }

        // Exibição de relatório
        System.out.println(">> Matriz");
        for (int l = 0; l < tamanho; ++l) {
            for (int c = 0; c < tamanho; ++c)
                System.out.print(matriz[c][l] + " ");

            System.out.println();
        }

        System.out.println();
        System.out.println(">> Padrões");
        System.out.println("Padrão OO: " + padraoOO);
        System.out.println("Padrão OI: " + padraoOI);
        System.out.println("Padrão IO: " + padraoIO);
        System.out.println("Padrão II: " + padraoII);
    }
}

 

Link para o comentário
Compartilhar em outros sites

  • 3 anos depois...

boa tarde podia me ajudar e quase igual a esta sua :

 

1   Uma imagem em preto e branco, de tamanho m x n, pode ser representada por uma matriz cujos elementos assumem valores no conjunto {0,1}. Dado um padrão representado por uma matriz 33 também assumindo valores em {0,1}, escreva uma função, ou trecho de código, que determine se o padrão existe ou não na imagem.

(8 pontos)

using System;

using System.IO;


 

namespace Testes

{

            class Program

            {

                        static void Main(string[] args)

                        {

                                    CriaMatriz("A.txt", 200, 350);

                                    CriaMatriz("B.txt", 3, 4);


 

                                    int[,] A = LerMatriz("A.txt");

                                    int[,] B = LerMatriz("B.txt");


 

                                    Console.WriteLine(NumeroDeOcorrencias(A, B));

                        }


 

                        static int NumeroDeOcorrencias(int[,] matriz, int[,] padrão)

                        {

                                    int N = matriz.GetLength(0), M = matriz.GetLength(1);

                                    int n = padrão.GetLength(0), m = padrão.GetLength(1);

                                    int contador = 0;

                                   

                                    ///////////////////////////////////////////////////////

                                    //

                                    //  Escreva seu código aqui

                                    //

                                    ///////////////////////////////////////////////////////

                                   

                                    return contador;

                        }


 

                        static int[,] LerMatriz(string fileName)

                        {

                                    FileStream f = new FileStream(fileName, FileMode.Open);

                                    StreamReader sr = new StreamReader(f);

                                    string[] tamanho = sr.ReadLine().Split(' ');

                                    int n = int.Parse(tamanho[0]);

                                    int m = int.Parse(tamanho[1]);

                                    int[,] ret = new int[n,m];

                                    for(int i=0; i<n; ++i)

                                    {

                                               string linha = sr.ReadLine();

                                               for (int j = 0; j < m; ++j)

                                                           ret[i, j] = linha[j] == '0' ? 0 : 1;

                                    }

                                    sr.Close();

                                    return ret;

                        }


 

                        static void CriaMatriz(string fileName, int n, int m)

                        {

                                    Random r = new Random();

                                    FileStream f = new FileStream(fileName, FileMode.Create);

                                    StreamWriter sw = new StreamWriter(f);

                                    sw.Write($"{n} {m}\r\n");

                                    for (int i = 0; i < n; ++i)

                                    {

                                               for (int j = 0; j < m; ++j)

                                                           sw.Write(r.Next(2) == 0 ? '0' : '1');

                                               sw.Write("\r\n");

                                    }

                                    sw.Close();

                                    f.Close();

                        }

            }

}

 

Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!