$("#ray_9004").html("
1<\/a> 2<\/a> 3<\/a> 4<\/a> 5<\/a> 6<\/a> 7<\/a> 8<\/a> 9<\/a> 10<\/a><\/strong> 11<\/a> 12<\/a> 13<\/a> 14<\/a> 15<\/a> 16<\/a> 17<\/a> 18<\/a> 19<\/a> 20<\/a><\/strong> 21<\/a> 22<\/a> 23<\/a> 24<\/a> 25<\/a> 26<\/a> 27<\/a> 28<\/a> 29<\/a> 30<\/a><\/strong> 31<\/a> 32<\/a> 33<\/a> 34<\/a> 35<\/a> 36<\/a> 37<\/a> 38<\/a> 39<\/a> 40<\/a><\/strong> 41<\/a> 42<\/a> 43<\/a> 44<\/a> 45<\/a> 46<\/a> 47<\/a> 48<\/a><\/pre><\/td>\n #!/usr/bin/env ruby<\/span> <\/span>require<\/span> <\/span>\'<\/span>securerandom<\/span>\'<\/span><\/span> <\/span>## Parameters<\/span> <\/span>P<\/span> <\/span>=<\/span> <\/span>115792089237316195423570985008687907853269984665640564039457584007913129639747<\/span> <\/span>N<\/span> <\/span>=<\/span> <\/span>100<\/span> <\/span>K<\/span> <\/span>=<\/span> <\/span>25<\/span> <\/span>L<\/span> <\/span>=<\/span> <\/span>38<\/span> <\/span># The number of liars<\/span> <\/span> <\/span>def<\/span> <\/span>apply_polynomial<\/span>(<\/span>coeffs<\/span>,<\/span> <\/span>x<\/span>)<\/span> <\/span> <\/span>r<\/span> <\/span>=<\/span> <\/span>0<\/span> <\/span> <\/span>coeffs<\/span>.<\/span>inject<\/span>(<\/span>0<\/span>)<\/span> <\/span>do<\/span> <\/span>|<\/span>r<\/span>,<\/span> <\/span>c<\/span>|<\/span> <\/span> <\/span>r<\/span> <\/span>=<\/span> <\/span>(<\/span>r<\/span> <\/span>*<\/span> <\/span>x<\/span> <\/span>+<\/span> <\/span>c<\/span>)<\/span> <\/span>%<\/span> <\/span>P<\/span> <\/span> <\/span>end<\/span> <\/span>end<\/span> <\/span> <\/span>def<\/span> <\/span>create_polynomial<\/span> <\/span> <\/span>coeff<\/span> <\/span>=<\/span> <\/span>SecureRandom<\/span>.<\/span>hex<\/span>(<\/span>64<\/span> <\/span>*<\/span> <\/span>K<\/span>)<\/span> <\/span> <\/span>coeff<\/span>.<\/span>chars<\/span>.<\/span>each_slice<\/span>(<\/span>128<\/span>)<\/span>.<\/span>map<\/span>{<\/span>|<\/span>a<\/span>|<\/span>a<\/span>.<\/span>join<\/span>.<\/span>to_i<\/span>(<\/span>16<\/span>)<\/span> <\/span>%<\/span> <\/span>P<\/span>}<\/span> <\/span>end<\/span> <\/span> <\/span>secret<\/span> <\/span>=<\/span> <\/span>SecureRandom<\/span>.<\/span>hex<\/span>(<\/span>64<\/span>)<\/span>.<\/span>to_i<\/span>(<\/span>16<\/span>)<\/span> <\/span>%<\/span> <\/span>P<\/span> <\/span>polynomial<\/span> <\/span>=<\/span> <\/span>create_polynomial<\/span> <\/span>polynomial<\/span>[<\/span>-1<\/span>]<\/span> <\/span>=<\/span> <\/span>secret<\/span> <\/span> <\/span># Distribute Secret<\/span> <\/span>user<\/span> <\/span>=<\/span> <\/span>Array<\/span>.<\/span>new<\/span>(<\/span>N<\/span>)<\/span> <\/span>{<\/span>|<\/span>i<\/span>|<\/span> <\/span>apply_polynomial<\/span>(<\/span>polynomial<\/span>,<\/span> <\/span>i<\/span> <\/span>+<\/span> <\/span>1<\/span>)<\/span> <\/span>}<\/span> <\/span> <\/span># Some user are liars<\/span> <\/span>[<\/span>*<\/span>0<\/span>...<\/span>N<\/span>]<\/span>.<\/span>shuffle<\/span>[<\/span>0<\/span>,<\/span> <\/span>L<\/span>]<\/span>.<\/span>each<\/span>{<\/span>|<\/span>i<\/span>
#!/usr/bin/env ruby<\/span> <\/span>require<\/span> <\/span>\'<\/span>securerandom<\/span>\'<\/span><\/span> <\/span>## Parameters<\/span> <\/span>P<\/span> <\/span>=<\/span> <\/span>115792089237316195423570985008687907853269984665640564039457584007913129639747<\/span> <\/span>N<\/span> <\/span>=<\/span> <\/span>100<\/span> <\/span>K<\/span> <\/span>=<\/span> <\/span>25<\/span> <\/span>L<\/span> <\/span>=<\/span> <\/span>38<\/span> <\/span># The number of liars<\/span> <\/span> <\/span>def<\/span> <\/span>apply_polynomial<\/span>(<\/span>coeffs<\/span>,<\/span> <\/span>x<\/span>)<\/span> <\/span> <\/span>r<\/span> <\/span>=<\/span> <\/span>0<\/span> <\/span> <\/span>coeffs<\/span>.<\/span>inject<\/span>(<\/span>0<\/span>)<\/span> <\/span>do<\/span> <\/span>|<\/span>r<\/span>,<\/span> <\/span>c<\/span>|<\/span> <\/span> <\/span>r<\/span> <\/span>=<\/span> <\/span>(<\/span>r<\/span> <\/span>*<\/span> <\/span>x<\/span> <\/span>+<\/span> <\/span>c<\/span>)<\/span> <\/span>%<\/span> <\/span>P<\/span> <\/span> <\/span>end<\/span> <\/span>end<\/span> <\/span> <\/span>def<\/span> <\/span>create_polynomial<\/span> <\/span> <\/span>coeff<\/span> <\/span>=<\/span> <\/span>SecureRandom<\/span>.<\/span>hex<\/span>(<\/span>64<\/span> <\/span>*<\/span> <\/span>K<\/span>)<\/span> <\/span> <\/span>coeff<\/span>.<\/span>chars<\/span>.<\/span>each_slice<\/span>(<\/span>128<\/span>)<\/span>.<\/span>map<\/span>{<\/span>|<\/span>a<\/span>|<\/span>a<\/span>.<\/span>join<\/span>.<\/span>to_i<\/span>(<\/span>16<\/span>)<\/span> <\/span>%<\/span> <\/span>P<\/span>}<\/span> <\/span>end<\/span> <\/span> <\/span>secret<\/span> <\/span>=<\/span> <\/span>SecureRandom<\/span>.<\/span>hex<\/span>(<\/span>64<\/span>)<\/span>.<\/span>to_i<\/span>(<\/span>16<\/span>)<\/span> <\/span>%<\/span> <\/span>P<\/span> <\/span>polynomial<\/span> <\/span>=<\/span> <\/span>create_polynomial<\/span> <\/span>polynomial<\/span>[<\/span>-1<\/span>]<\/span> <\/span>=<\/span> <\/span>secret<\/span> <\/span> <\/span># Distribute Secret<\/span> <\/span>user<\/span> <\/span>=<\/span> <\/span>Array<\/span>.<\/span>new<\/span>(<\/span>N<\/span>)<\/span> <\/span>{<\/span>|<\/span>i<\/span>|<\/span> <\/span>apply_polynomial<\/span>(<\/span>polynomial<\/span>,<\/span> <\/span>i<\/span> <\/span>+<\/span> <\/span>1<\/span>)<\/span> <\/span>}<\/span> <\/span> <\/span># Some user are liars<\/span> <\/span>[<\/span>*<\/span>0<\/span>...<\/span>N<\/span>]<\/span>.<\/span>shuffle<\/span>[<\/span>0<\/span>,<\/span> <\/span>L<\/span>]<\/span>.<\/span>each<\/span>{<\/span>|<\/span>i<\/span>