Euclidean rhythm: Difference between revisions
adjust section order to alphabetic order
(Add Java implementation) |
(adjust section order to alphabetic order) |
||
Line 114:
</pre>
== [[Python]] ==▼
{{trans|JavaScript}}<syntaxhighlight lang="python3">▼
def E(k, n):▼
s = [[1] if i < k else [0] for i in range(n)]▼
d = n - k▼
n = max(k, d)▼
k = min(k, d)▼
z = d▼
while z > 0 or k > 1:▼
for i in range(k):▼
s[i].extend(s[len(s) - 1 - i])▼
s = s[:-k]▼
z = z - k▼
d = n - k▼
n = max(k, d)▼
k = min(k, d)▼
return [item for sublist in s for item in sublist]▼
print(''.join(map(str, E(5, 13))))▼
# 1001010010100▼
</syntaxhighlight>▼
== [[:Category:JavaScript|JavaScript]] ==
Line 167 ⟶ 142:
> E(3,8)
[1, 0, 0, 1, 0, 0, 1, 0]
▲</syntaxhighlight>
▲== [[Python]] ==
▲{{trans|JavaScript}}<syntaxhighlight lang="python3">
▲def E(k, n):
▲ s = [[1] if i < k else [0] for i in range(n)]
▲ d = n - k
▲ n = max(k, d)
▲ k = min(k, d)
▲ z = d
▲ while z > 0 or k > 1:
▲ for i in range(k):
▲ s[i].extend(s[len(s) - 1 - i])
▲ s = s[:-k]
▲ z = z - k
▲ d = n - k
▲ n = max(k, d)
▲ k = min(k, d)
▲ return [item for sublist in s for item in sublist]
▲print(''.join(map(str, E(5, 13))))
▲# 1001010010100
</syntaxhighlight>
|