language: Ruby (ruby-1.9.3)
date: 943 days 21 hours ago
link:
visibility: private
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
n = 3
a = percentage = 5323
b = 10000
 
h = [1, 0, 1]
k = [0, 1, 0]
 
loop {
        if a/b > 1
                nxt = [a/b-1, a/b]
        else
                nxt = [a/b]
        end
 
        break if nxt.any?{|a_n|
                h[n] = a_n*h[n-1] + h[n-2]
                k[n] = a_n*k[n-1] + k[n-2]
                (percentage - 10000.0*h[n]/k[n]).abs < 0.5
        }
        n,a,b  = n+1, b, a%b
}
 
p k[n]
p h[n]/k[n].to_f
http://stackoverflow.com/questions/4003089/least-amount-of-voters-given-two-halves/4003161#4003161