如何在代码中描述这个系列?

cla*_*amp 1 language-agnostic algorithm

我想找一个描述这个系列的公式.我需要根据正整数设置一个布尔值.这很简单,但我被困住了,感觉有点愚蠢.

0 false
1 true
2 true
3 false
4 false
5 true
6 true
7 false
8 false
9 true
10 true
11 false
12 false
...
Run Code Online (Sandbox Code Playgroud)

所以标志在每个奇数处都会改变

pax*_*blo 5

好吧,对于每个奇数改变的标志,当且仅当模数运算符(n+3)%4 <= 1在哪里时,看起来你的布尔值应该是真的%:

 n   (n+3)%4   Boolean
--   -------   -------
 0      3       false
 1      0       true
 2      1       true
 3      2       false
 4      3       false
 5      0       true
 6      1       true
 7      2       false
 8      3       false
 9      0       true
10      1       true
11      2       false
12      3       false
::      :       :  :
Run Code Online (Sandbox Code Playgroud)

我故意添加三个而不是减去一个,因为有些语言对模数运算符应该对负数做什么有不同的想法.请记住,这与语言无关.如果您正在寻找类似C或C的语言解决方案,请参阅ChristofferHammarström的优秀答案((n + 1) & 2以防万一它消失) - 这些在这些特定语言中更为简洁.