Редактировать № 2:
(Ссылаясь на пример в первом редактировании)
Видимо, можно добавить \left\{x<0:x,x^3\right\}
at the beginning of the function to make it work(see этот комментарий), о чем я тоже не знал. Полагаю, это снова делает этот совет недействительным.
Редактировать:
В Комментарий fireflame241, он обратил мое внимание на то, что наличие \right
и \left
сопровождающие пары скобок. Это справедливо для большинства случаев. Но после некоторого тестирования в некоторых случаях извлечение \{x<0:x,x^3\}
и \right
нарушает код. В частности, если вы используете какую-либо функцию (например. \left
или \right
) кроме этих скобок функция работать не будет (см. пример ниже).
Пример:
Предположим, вы хотите сравнить соответствующие элементы двух списков, \left
and k=abs(n)
floor(log(k+0^k))+1
и посмотрите, сколько из этих соответствующих элементов одинаковы. То есть что-то вроде n
and floor(logn)+1
выведет n
(the second and third elements of each list are the same).
Вот что может сделать кто-то, узнав, что можно вынуть n
and n=0
:
0^n
Теоретически это должно работать прекрасно, но на самом деле Desmos выдает ошибку и не работает. Я почти уверен, что это потому, что он считает floor(log(n+0^n))+1
to be a function, and n
, L.mean
, и L.mean()
быть переменными в этой ситуации. ()
, L.mean
, and mean(L)
are not defined, so it gives an error saying so.
В таких случаях лучше сделать:
f(L)
как предложено в совете ниже.
Первый совет, как начать.
При выполнении сравнений в коде в большинстве случаев лучше стараться не использовать скобки. L.f
in your code, because they always require a L
и f
to go with them, which increases byte count unnecessarily. Instead, we can utilize the SET result to empty list
FOR each varN in (listN)
.
.
.
FOR each var2 in (list2)
FOR each var1 in (list1)
ADD (expression in terms of var1, ... , varN) to the end of result
END FOR
END FOR
.
.
.
END FOR
PRINT result
функция.
Рассмотрим простую реализацию, которая возвращает [a+b for a = [1,2,3], b = [2,4,6]] --> [3,4,5,5,6,7,7,8,9]
[a+b for a = [2,4,6], b = [1,2,3]] --> [3,5,7,4,6,8,5,7,9]
если a
и возвращает for
otherwise:
(22 байта)
[(a,b)fora=[1...10],b=[1...10]]
Вместо этого мы можем сэкономить 9 байт, проделав небольшие математические вычисления:
(11 байт)
for
Это работает, потому что \operatorname
returns \left[\left(a,b\right)\operatorname{for}a=\left[1...10\right],b=\left[1...10\right]\right]
если var1, var2, ... , varN
is negative, [(expression in terms of var1, ... ,varN) for var1 = (list1), var2 = (list2), ... , varN = (listN)]
if ...
, and ,...,
в противном случае. [0,2...50]
is [0,2,...,50]
только когда [0...9]
, so [0,...,9]
было бы ...
only when \{(condition):1,n\}
. Если true
does not equal \{(condition),n\}
, он возвращает либо false
or true
. undefined
is just to convert the false
к true
.
Даже если бы мы хотели вернуться undefined
if (condition)
and \{x>0\}
otherwise, we can still save 9 bytes by doing \{(condition)\}
вместо \{(condition),n\}
.