def col(x)
return x/2 if x%2==0
return x*3+1
end
def collatz_array(x)
res=[]
while(x!=1)
if(x%2==0)
res<<0
x=x/2
else
res<<1
x=(x*3+1)/2
end
end
return res
end
def collatz_array_l(x,l)
res=[]
l.times{
if(x%2==0)
res<<0
x=x/2
else
res<<1
x=(x*3+1)/2
end
}
return res
end
def collatz_number(x)
res=0;
x.each_with_index{|v,i|res+=v*(2**i)}
return res
end
def collatz_rational(x)
l=x.length
res=0r
x.each_with_index{|v,i|res+=v*(1/2r)**(i+1)}
res+=((1/2r)**l)*(2/3r)
return res
end
def collatz_rational_array(x,l)
res=[]
(0...l).each{|i|
if(x>=1/2r)
then
x-=1/2r
res<<1
else
res<<0
end
x*=2r
}
return res
end
(1..1000).each{|x|
a=collatz_array(x)
l=a.length
r=collatz_rational(a)
b=collatz_rational_array(r,l+10)
c=collatz_array_l(x,l+10)
if(c!=b)
then
print "#{x} #{r} #{a} #{b} #{c}\n"
end
#print "#{x} #{r} #{a} #{c}\n"
}
ZGVmIGNvbCh4KQoJcmV0dXJuIHgvMiBpZiB4JTI9PTAKCXJldHVybiB4KjMrMQplbmQKCmRlZiBjb2xsYXR6X2FycmF5KHgpCglyZXM9W10KCXdoaWxlKHghPTEpCgkJaWYoeCUyPT0wKQoJCQlyZXM8PDAKCQkJeD14LzIKCQllbHNlCgkJCXJlczw8MQoJCQl4PSh4KjMrMSkvMgoJCWVuZAoJZW5kCglyZXR1cm4gcmVzCgkKZW5kCgpkZWYgY29sbGF0el9hcnJheV9sKHgsbCkKCXJlcz1bXQoJbC50aW1lc3sKCQlpZih4JTI9PTApCgkJCXJlczw8MAoJCQl4PXgvMgoJCWVsc2UKCQkJcmVzPDwxCgkJCXg9KHgqMysxKS8yCgkJZW5kCgl9CglyZXR1cm4gcmVzCmVuZAoKCmRlZiBjb2xsYXR6X251bWJlcih4KQoJcmVzPTA7Cgl4LmVhY2hfd2l0aF9pbmRleHt8dixpfHJlcys9diooMioqaSl9CglyZXR1cm4gcmVzCmVuZAoKZGVmIGNvbGxhdHpfcmF0aW9uYWwoeCkKCWw9eC5sZW5ndGgKCXJlcz0wcgoJeC5lYWNoX3dpdGhfaW5kZXh7fHYsaXxyZXMrPXYqKDEvMnIpKiooaSsxKX0KCXJlcys9KCgxLzJyKSoqbCkqKDIvM3IpCglyZXR1cm4gcmVzCmVuZAoKZGVmIGNvbGxhdHpfcmF0aW9uYWxfYXJyYXkoeCxsKQoJcmVzPVtdCgkoMC4uLmwpLmVhY2h7fGl8CgkJaWYoeD49MS8ycikKCQl0aGVuCgkJCXgtPTEvMnIKCQkJcmVzPDwxCgkJZWxzZQoJCQlyZXM8PDAKCQllbmQKCQl4Kj0ycgoJfQoJcmV0dXJuIHJlcwplbmQKCigxLi4xMDAwKS5lYWNoe3x4fAoJYT1jb2xsYXR6X2FycmF5KHgpCglsPWEubGVuZ3RoCglyPWNvbGxhdHpfcmF0aW9uYWwoYSkKCWI9Y29sbGF0el9yYXRpb25hbF9hcnJheShyLGwrMTApCgljPWNvbGxhdHpfYXJyYXlfbCh4LGwrMTApCglpZihjIT1iKQoJdGhlbgoJCXByaW50ICIje3h9ICN7cn0gI3thfSAje2J9ICN7Y31cbiIKCWVuZAoJI3ByaW50ICIje3h9ICN7cn0gI3thfSAje2N9XG4iCn0K