Euclidean rhythm: Difference between revisions

Content added Content deleted
(Add Java implementation)
(adjust section order to alphabetic order)
Line 114: Line 114:
</pre>
</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]] ==
== [[:Category:JavaScript|JavaScript]] ==
Line 167: Line 142:
> E(3,8)
> E(3,8)
[1, 0, 0, 1, 0, 0, 1, 0]
[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>
</syntaxhighlight>