--0-34824647-11867555824852
Content-Type: text/plain; charset=iso-8859-1
Content-Transfer-Encoding: 8bit
I am trying to find every possible combination of the letters of the alphabet to create a file by a program to solve simple replacement ciphers. There shouldn't be any repeats of letters in the combination (i.e. a can only occur once in a given combination).
I had thought of using the code below to get every possible combination and, even though it contains duplicate letters in the combinations it generates, I was going to prune those out. The problem is that it would take a very considerable number of years before the program finishes. Anyone know of an algorithm that I could use to generate the possibilities in a more timely manner?
class Value
def initialize val
'
@value al
end
def rhs
if rhs.class ! elf.class
return false
end
rhs.value self.value
end
def next
if @value 'z'
self.reset
else
@value value.next
end
end
def reset
@value a'
end
def value
@value
end
end
class Set
def initialize
@buffer ]
26.times {@buffer << Value.new}
end
def value
@buffer
temp ]
@buffer.each{|a| temp << a.value}
temp
end
def exausted?
@buffer.each do |a|
if a.value ! z'
return false
end
end
return true
end
def next
cursor
while true
if @buffer.last(cursor)[0].value 'z'
@buffer.last(cursor)[0].next()
cursor +
@buffer.last(cursor)[0].next()
else
@buffer.last(cursor)[0].next()
break
end
end
self.value
end
end
#################################################################
#################################################################
s et.new
f pen "sets.out",'w'
f << s.value
while s.exausted? false
f << s.next << "\n"
end
---------------------------------
Be a better Globetrotter. Get better travel answers from someone who knows.
Yahoo! Answers - Check it out.
--0-34824647-11867555824852--