2009-11-29 2 views
3

в J programming language,Как переписать функцию halve в J?

-: i. 5 

выше функция вычисляет половинки всех целых чисел в [0,4]. Теперь предположим, что я хотел бы переписать функцию -:, просто для удовольствия. На мой взгляд, до сих пор было

]&%.2 

но это, кажется, не режет. Как ты делаешь это?

ответ

1

Обратите внимание, что]% 2: также будет работать, но для обеспечения надлежащей грамматики вы либо хотите использовать его в качестве определения имени, или вы хотите поместить выражение в скобках.

1

Я видел, что вы использовали%. вероятно, потому, что вы разделили матрицу и подумали, что вам нужно «разделить матрицу».

Матричный разделитель и матрица, обратные они говорят о том, что существует матричная алгебра, где у вас есть список, ну, по существу полиномов, и вы хотите сделать преобразования на полиномах все сразу, чтобы решить уравнения. Одна из вещей, которые вы можете сделать очень легко в J, - это матричная алгебра, существуют встроенные матрицы для деления матрицы и для инвертирования матрицы (как вы видели) и в разделе фраз есть короткие фразы для выполнения всех типичных матричных преобразований , Возьмем, например, определитель.

Но когда вы просто делят вектор на скаляр, чтобы получить вектор, или вы делите матрицу на соответствующие элементы другой матрицы, ну, это просто символ% деления.

Если вы хотите попытаться понять это, посмотрите на проблему эйлера 101 (http://projecteuler.net/problem=101), а затем на Google сайте Jsoftware.com. Создание матриц из наблюдений и основных матриц, как показано, позволяют вам решить для ax^2 + bx + c = y, где у вас есть x и y, и вы хотите определить a, b и c. Не забудьте использовать расширенную арифметику для всего, так как полученные уравнения очень хороши, но не идеальны, если вы не делаете, и для решения уравнения вам нужны совершенные уравнения.

Просто подумайте, если вы не хотите играть с матричной алгеброй, вам может быть все равно.