De Bruijn sequences: Difference between revisions

Content added Content deleted
m (corrected a typo.)
(→‎{{header|Wren}}: Now uses 'fmt' module.)
Line 1,563: Line 1,563:
=={{header|Wren}}==
=={{header|Wren}}==
{{trans|Phix}}
{{trans|Phix}}
{{libheader|fmt}}
<lang ecmascript>var rzset = Fn.new { |m, n|
<lang ecmascript>import "/fmt" for Fmt
var s = "%(n)"
var c = s.count
return (m > c) ? "0" * (m - c) + s : s
}


var deBruijn = ""
var deBruijn = ""
for (n in 0..99) {
for (n in 0..99) {
var a = "%(rzset.call(2, n))"
var a = Fmt.rpad(2, n, "0")
var a1 = a[0].bytes[0]
var a1 = a[0].bytes[0]
var a2 = a[1].bytes[0]
var a2 = a[1].bytes[0]
Line 1,578: Line 1,575:
var m = n + 1
var m = n + 1
while (m <= 99) {
while (m <= 99) {
var ms = "%(rzset.call(2, m))"
var ms = Fmt.rpad(2, m, "0")
if (ms[1].bytes[0] > a1) deBruijn = deBruijn + a + ms
if (ms[1].bytes[0] > a1) deBruijn = deBruijn + a + ms
m = m + 1
m = m + 1
Line 1,612: Line 1,609:
k = found[i]
k = found[i]
if (k != 1) {
if (k != 1) {
var e = " Pin number %(rzset.call(4, i)) "
var e = " Pin number %(Fmt.dz(4, i)) "
e = e + ((k == 0) ? "missing" : "occurs %(k) times")
e = e + ((k == 0) ? "missing" : "occurs %(k) times")
res.add(e)
res.add(e)