Sleeping Beauty problem: Difference between revisions

Content added Content deleted
m (→‎{{header|Oberon-07}}: make link look nicer)
(Adds a Fortran example for the Sleeping Beauty problem)
Line 436: Line 436:
</pre>
</pre>


=={{header|Fortran}}==
{{trans|Go}}
Uses random_number from the Fortran 95 standard.
<syntaxhighlight lang="fortran">
program sleepingbeauty
implicit none


integer :: total_reps
integer :: result_wakings
real :: result_percent

total_reps = 1e6

call sleepingOp(total_reps, result_wakings, result_percent)

print *, "wakings over", total_reps, "reps: ", result_wakings
print *, "percentage probability of heads on wake:", result_percent
contains

subroutine sleepingOp(reps, wakings, percent)
integer, intent(in) :: reps
integer, intent(out) :: wakings
real, intent(out) :: percent

integer :: heads
integer :: i
real :: coin

wakings = 0
heads = 0
do i = 0, reps, 1
call random_number(coin)
wakings = wakings + 1
if (coin > 0.5) then
heads = heads + 1
else
wakings = wakings + 1
end if
end do

percent = real(heads) / real(wakings)
end subroutine sleepingOp

end program sleepingbeauty
</syntaxhighlight>
{{out}}
<pre>
wakings over 1000000 reps: 1500326
percentage probability of heads on wake: 0.333044946
</pre>


=={{header|FutureBasic}}==
=={{header|FutureBasic}}==