De Bruijn sequences: Difference between revisions
Content added Content deleted
(→{{header|Wren}}: Now uses 'fmt' module.) |
m (→{{header|Wren}}: Change in method name.) |
||
Line 1,568: | Line 1,568: | ||
var deBruijn = "" |
var deBruijn = "" |
||
for (n in 0..99) { |
for (n in 0..99) { |
||
var a = Fmt. |
var a = Fmt.rjust(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,575: | Line 1,575: | ||
var m = n + 1 |
var m = n + 1 |
||
while (m <= 99) { |
while (m <= 99) { |
||
var ms = Fmt. |
var ms = Fmt.rjust(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,581: | Line 1,581: | ||
} |
} |
||
} |
} |
||
deBruijn = deBruijn + "000" |
deBruijn = deBruijn + "000" |
||
System.print("de Bruijn sequence length: %(deBruijn.count)\n") |
System.print("de Bruijn sequence length: %(deBruijn.count)\n") |
||
System.print("First 130 characters:\n%(deBruijn[0...130])\n") |
System.print("First 130 characters:\n%(deBruijn[0...130])\n") |
||
System.print("Last 130 characters:\n%(deBruijn[-130..-1])\n") |
System.print("Last 130 characters:\n%(deBruijn[-130..-1])\n") |
||
var allDigits = Fn.new { |s| |
var allDigits = Fn.new { |s| |
||
for (b in s) { |
for (b in s) { |
||
Line 1,594: | Line 1,594: | ||
return true |
return true |
||
} |
} |
||
var check = Fn.new { |text| |
var check = Fn.new { |text| |
||
var res = [] |
var res = [] |
||
Line 1,626: | Line 1,626: | ||
System.print("Missing 4 digit PINs in this sequence: %(check.call(deBruijn))") |
System.print("Missing 4 digit PINs in this sequence: %(check.call(deBruijn))") |
||
System.print("Missing 4 digit PINs in the reversed sequence: %(check.call(deBruijn[-1..0]))") |
System.print("Missing 4 digit PINs in the reversed sequence: %(check.call(deBruijn[-1..0]))") |
||
System.print("\n4,444th digit in the sequence: '%(deBruijn[4443])' (setting it to '.')") |
System.print("\n4,444th digit in the sequence: '%(deBruijn[4443])' (setting it to '.')") |
||
deBruijn = deBruijn[0..4442] + "." + deBruijn[4444..-1] |
deBruijn = deBruijn[0..4442] + "." + deBruijn[4444..-1] |