Как переписать функцию пополам в J? - PullRequest
3 голосов
/ 30 ноября 2009

на языке программирования J ,

-: i. 5 

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

]&%.2

но это не похоже на это. Как ты это делаешь?

Ответы [ 3 ]

6 голосов
/ 01 декабря 2009
%&2    NB. divide by two
0.5&*  NB. multiply by one half
1 голос
/ 01 ноября 2011

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

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

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

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

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

1 голос
/ 15 апреля 2011

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

...