Pregunta

en el lenguaje de programación J ,

-: i. 5 

la función anterior calcula las mitades de todos los enteros en [0,4]. Ahora digamos que me gustaría volver a escribir la función -:, solo por el gusto de hacerlo. Mi mejor suposición hasta ahora fue

]&%.2

pero eso no parece ser suficiente. ¿Cómo lo haces?

¿Fue útil?

Solución

%&2    NB. divide by two
0.5&*  NB. multiply by one half

Otros consejos

Tenga en cuenta que]% 2: también funcionaría, pero para garantizar una gramática adecuada, querrá usarlo como la definición de un nombre o colocar la expresión entre paréntesis.

Vi que estabas usando%. probablemente porque estaba dividiendo una matriz y pensó que necesitaba hacer una "división de matriz".

La matriz dividida y la matriz inversa de la que están hablando es para álgebra matricial, donde tienes una lista de, bueno, esencialmente polinomios, y quieres hacer transformaciones en los polinomios de una vez, para resolver las ecuaciones . Una de las cosas que puedes hacer realmente fácilmente en J es el álgebra matricial, hay funciones integradas para dividir la matriz e invertir una matriz (como has visto) y en la sección de frases, hay frases cortas para hacer todas las transformaciones matriciales típicas . Tomando el determinante, por ejemplo.

Pero cuando simplemente está dividiendo un vector por un escalar para obtener un vector, o si está dividiendo una matriz por los elementos correspondientes de otra matriz, bueno, ese es solo el símbolo de% de división.

Si desea intentar entender esto, mire el problema 101 de euler (http://projecteuler.net/problem=101) y luego ajuste la curva de google en el sitio Jsoftware.com Crear las matrices a partir de las observaciones, y las matrices básicas como se muestran, le permiten resolver para ax ^ 2 + bx + c = y donde tiene x e y y desea determinar a, b y c. Solo recuerda usar aritmética extendida para todo, ya que las ecuaciones resultantes son muy buenas pero no perfectas a menos que lo hagas, y para resolver la ecuación necesitas ecuaciones perfectas.

Solo un pensamiento, a menos que quieras jugar con Matrix Algebra, es posible que no te importe.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top