Birthday problem: Difference between revisions

Content deleted Content added
Walterpachl (talk | contribs)
→‎{{header|REXX}}: added REXX Version 2 (translared from PL/I)
Jono (talk | contribs)
→‎{{header|Lasso}}: adding lasso version of the birthday problem
Line 95:
...............................................................................................................................
required common: 5; group size: 314; %age of years with required common birthdays: 50.66%;
</pre>
 
 
 
 
=={{header|Lasso}}==
<lang Lasso>if(sys_listunboundmethods !>> 'randomgen') => {
define randomgen(len::integer,max::integer)::array => {
#len <= 0 ? return
local(out = array)
loop(#len) => { #out->insert(math_random(#max,1)) }
return #out
}
}
if(sys_listunboundmethods !>> 'hasdupe') => {
define hasdupe(a::array,threshold::integer) => {
with i in #a do => {
#a->find(#i)->size > #threshold-1 ? return true
}
return false
}
}
local(threshold = 2)
local(qty = 22, probability = 0.00, samplesize = 10000)
while(#probability < 50.00) => {^
local(dupeqty = 0)
loop(#samplesize) => {
local(x = randomgen(#qty,365))
hasdupe(#x,#threshold) ? #dupeqty++
}
#probability = (#dupeqty / decimal(#samplesize)) * 100
'Threshold: '+#threshold+', qty: '+#qty+' - probability: '+#probability+'\r'
#qty += 1
^}</lang>
 
{{out}}
<pre>Threshold: 2, qty: 22 - probability: 47.810000
Threshold: 2, qty: 23 - probability: 51.070000
 
Threshold: 3, qty: 86 - probability: 48.400000
Threshold: 3, qty: 87 - probability: 49.200000
Threshold: 3, qty: 88 - probability: 52.900000
 
Threshold: 4, qty: 184 - probability: 48.000000
Threshold: 4, qty: 185 - probability: 49.800000
Threshold: 4, qty: 186 - probability: 49.600000
Threshold: 4, qty: 187 - probability: 48.900000
Threshold: 4, qty: 188 - probability: 50.700000
 
Threshold: 5, qty: 308 - probability: 48.130000
Threshold: 5, qty: 309 - probability: 48.430000
Threshold: 5, qty: 310 - probability: 48.640000
Threshold: 5, qty: 311 - probability: 49.370000
Threshold: 5, qty: 312 - probability: 49.180000
Threshold: 5, qty: 313 - probability: 49.540000
Threshold: 5, qty: 314 - probability: 50.000000
</pre>