Cómo acceder a una matriz bidimensional en prolog y cómo hacer un bucle de cada elemento en ella

Jack123

Cómo acceder a una matriz bidimensional en el prólogo y cómo enlazar cada elemento en ella Por ejemplo, si tengo una matriz Pregunta 1, ¿cómo creo una lista bidimensional como esta en el prólogo?

  1 2 3
  4 5 6
  7 8 9

Pregunta 2: ¿Cómo hago un bucle con cada elemento y hago que cada elemento +1 se convierta en

  2 3 4
  5 6 7
  8 9 10

Pregunta 3

 public Cell(int row, int col, int cost, int units) {
        this.cost = cost;
        this.units = units;
        this.row = row;
        this.col = col;
    }

En la matriz, todo es un objeto como la celda Mi tarea es transferir el código java al código Prolog

Entonces, ¿cómo puedo hacer que este objeto sea un prólogo?

Guy Coder

Basado en la forma en que está haciendo sus preguntas, es decir transfer java code into Prolog, parece que piensa en código procedimental u orientado a objetos y quiere usar el conocimiento como palanca al aprender Prolog. Mi consejo es que no utilice su conocimiento de código procedimental u orientado a objetos como palanca o un respaldo para ayudarlo a aprender Prolog porque dificultará su aprendizaje y efectividad con Prolog. En su lugar, intente adoptar Prolog aprendiendo a usarlo como estaba previsto.

Además, cuando haga una pregunta en Stackoverflow, debe incluir el código de lo que ha probado.

¿Cómo acceder a una matriz bidimensional en Prolog?

Por lo tanto, desea crear una estructura de datos en Prolog que pueda funcionar con datos como una matriz bidimensional. Sin conocer más detalles, debería funcionar una lista de listas, por ejemplo

[[[1],[2],[3]],[[4],[5],[6]],[[7],[8],[9]]]

Hay otras posibilidades, pero no hay suficientes detalles en la pregunta para sugerir algo más específico para un problema específico.

¿Cómo hago un bucle en cada elemento y hago que cada elemento sea +1?

Primero se hace usando la recursividad para que pueda ver lo que está sucediendo en detalle

increment(Array,New_array) :-
    increment_rows(Array,New_array).

increment_rows([Row|Rows],[New_row|New_rows]) :-
    increment_row(Row,New_row),
    increment_rows(Rows,New_rows).
increment_rows([],[]).

increment_row([Cell|Columns],[New_cell|New_columns]) :-
    increment_cell(Cell,New_cell),
    increment_row(Columns,New_columns).
increment_row([],[]).

increment_cell(Cell,New_cell) :-
    New_cell is Cell + 1.

?- increment([[[1],[2],[3]], [[4],[5],[6]], [[7],[8],[9]]], New_array).
New_array = [[2, 3, 4], [5, 6, 7], [8, 9, 10]].

ahora usando el predicado incorporado maplist / 3

increment_item(Item,New_item) :-
    New_item is Item + 1.

increment_list(List,New_list) :-
    maplist(increment_item,List,New_list).

increment_array(Array,New_array) :-
    maplist(increment_list,Array,New_array).

?- increment_array([[[1],[2],[3]], [[4],[5],[6]], [[7],[8],[9]]], New_array).
New_array = [[2, 3, 4], [5, 6, 7], [8, 9, 10]].

¿Cómo puedo convertir este objeto en Prolog?

Como el Prolog estándar no es Java y no tiene objetos (aunque algunas variaciones sí), descartaré la palabra objeto y en su lugar responder

¿Cómo puedo hacer esto en Prolog?

Esta es una de las partes de Prolog que puede parecer muy difícil de comprender a primera vista. En Prolog, no declaras que las variables tengan tipos y no creas métodos constructores para crear objetos. En Prolog los datos se representan como términos y hay variables que se identifican comenzando con una letra mayúscula. Así que si quieres algo en Prolog que puede contener valores para row, column, costy unitssólo tiene que utilizar variables, por ejemplo Row, Column, Costy Units, y el grupo pueden juntos en un término compuesto, por ejemplo (Row,Column,Cost,Units), y si se desea se puede también calificar la estructura con una nombre cell(Row,Column,Cost,Units).

Este artículo se recopila de Internet, indique la fuente cuando se vuelva a imprimir.

En caso de infracción, por favor [email protected] Eliminar

Editado en
0

Déjame decir algunas palabras

0Comentarios
Iniciar sesiónRevisión de participación posterior

Artículos relacionados

Problema con AJAX en un bucle for: ¿Cómo puedo hacer una llamada ajax en cada elemento de una matriz?

Problema con AJAX en un bucle for: ¿Cómo puedo hacer una llamada ajax en cada elemento de una matriz?

Problema con AJAX en un bucle for: ¿Cómo puedo hacer una llamada ajax en cada elemento de una matriz?

Cómo acceder correctamente en cada elemento de una matriz

¿Cómo acceder a una propiedad de un objeto en una matriz y ordenar una matriz por ella?

Cómo encontrar el elemento mínimo de cada columna en una matriz bidimensional en Python

¿Cómo inicializar una matriz 2d y cómo acceder a ella desde un método principal en Java?

¿Cómo obtener un elemento de una matriz 2D sin hacer un bucle en toda la matriz?

¿Cómo multiplicar eficientemente cada elemento en una matriz bidimensional por una matriz unidimensional en Numpy?

Cómo hacer una matriz creada dentro de un bucle de trabajo fuera de ella?

¿Cómo puedo tomar una entrada y hacer una lista con ella en Prolog?

¿Cómo obtener una línea en un archivo txt y hacer eco de ella?

¿Cómo acceder a una matriz bidimensional en una estructura usando un puntero de estructura en una función?

Cómo acceder a un elemento específico de hecho en una lista en prolog

Cómo hacer un bucle de htmlspecialchars en una matriz en una matriz en una matriz en

Cómo empujar un elemento a una matriz en un bucle

Cómo acceder a un elemento secundario en una matriz JSON

Cómo guardar una tupla en un archivo de texto y acceder a ella con este código en Python

Cómo guardar una tupla en un archivo de texto y acceder a ella con este código en Python

cómo obtener cada elemento sin usar un bucle de la matriz de cadenas en c #

¿Cómo obtener índices de elementos mayores o menores que cada elemento en una matriz NumPy sin usar un bucle?

Cómo hacer una matriz multidimensional en un bucle foreach

Cómo hacer un bucle de una matriz en una matriz (navegación dinámica)

¿Cómo agregar una matriz dentro de un bucle for que obtiene nuevas salidas en cada bucle?

Cómo cargar un archivo CSV en un hash de perl y acceder a cada elemento

Cómo acceder a una función de prototipo en un bucle de matriz

Cómo acceder a href de una matriz de enlaces en un bucle usando watir-webdriver

¿Cómo usar numpy where en cada elemento de la matriz de prueba sin un bucle for?

¿Cómo habilita hacer clic en elementos individuales en una matriz y mostrar cada elemento en una parte diferente de la pantalla en Phaser 3?

TOP Lista

CalienteEtiquetas

Archivo