Skip to content

Instantly share code, notes, and snippets.

@devkato
Created February 28, 2014 06:00
Show Gist options
  • Save devkato/9266090 to your computer and use it in GitHub Desktop.
Save devkato/9266090 to your computer and use it in GitHub Desktop.
binaries = [
0b1111110, # 0
0b0110000, # 1
0b1101101, # 2
0b1111001, # 3
0b0110011, # 4
0b1011011, # 5
0b1011111, # 6
0b1110000, # 7
0b1111111, # 8
0b1111011, # 9
]
max_count = 1000
max_array = []
st = Time.now
binaries.permutation(10).to_a.each do |bit_array|
count = 0
0.upto(8) do |i|
b1, b2 = bit_array[i..i + 1]
count += (b1 ^ b2).to_s(2).count('1')
break if count > max_count
end
if count < max_count
max_count = count
max_array = bit_array
end
end
et = Time.now
p max_array.map{|bit_array| binaries.index(bit_array) }
p max_count
puts "#{et - st}(sec)"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment