# Ruby http://www.ruby-lang.org/en/
# Please show me a nicer/better way!
# jonelfâgmail.com
def basematrix(m)
yl = m.length-1
xl = m[0].length
perms=xl ** yl
0.upto(yl) do |y|
1.upto(perms / (xl ** (yl-y))) do |n1|
1.upto(xl ** (yl-y)) do |n2|
print m[y][n1.modulo(xl)-1]
end
end
print "\n"
end
end
m1 = [["a", "b", "c"],
["d", "e", "f"],
["g", "h", "i"],
["j", "k", "l"]]
m2 = [["a", "b", "c","d"],
["e", "f","g","h"],
["i", "j", "k","l"]]
basematrix(m1)
print "\n"
basematrix(m2)
Output:
aaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbccccccccccccccccccccccccccc
dddddddddeeeeeeeeefffffffffdddddddddeeeeeeeeefffffffffdddddddddeeeeeeeeefffffffff
ggghhhiiiggghhhiiiggghhhiiiggghhhiiiggghhhiiiggghhhiiiggghhhiiiggghhhiiiggghhhiii
jkljkljkljkljkljkljkljkljkljkljkljkljkljkljkljkljkljkljkljkljkljkljkljkljkljkljkl
aaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbccccccccccccccccdddddddddddddddd
eeeeffffgggghhhheeeeffffgggghhhheeeeffffgggghhhheeeeffffgggghhhh
ijklijklijklijklijklijklijklijklijklijklijklijklijklijklijklijkl