#/*********************************************************** # rndsamp1.rb-- 無作為抽出 #***********************************************************/ #**** 一様乱数 (線形合同法) ***************************** ULONG_MAX = 4294967295 ULONG_MAX1 = 4294967296 $seed = 1; # 任意 def init_rnd(x) $seed = x end def irnd $seed = ($seed * 1566083941) % ULONG_MAX1 + 1 return $seed end def rnd # 0 <= rnd() < 1 return (1.0 / (ULONG_MAX + 1.0)) * irnd() end #******************************************************** init_rnd(Time.new.to_i) printf("母集団の大きさ? "); n = gets.to_i printf("標本の大きさ? "); m = gets.to_i for i in 0...n if ((n - i) * rnd() < m) printf("%8d", i + 1) if ((m -= 1) <= 0); break; end end end printf("\n") exit 0