Problem 2835 --平方取中法(midsquare method)2835: 平方取中法(midsquare method)
Time Limit |
$1$ 秒/Second(s) |
Memory Limit |
$512$ 兆字节/Megabyte(s) |
提交总数 |
$793$ |
正确数量 |
$451$ |
"
裁判形式 |
标准裁判/Standard Judge |
我的状态 |
尚未尝试 |
难度 |
|
分类标签 |
模拟 位运算 |
当前分类(单击移除):
模拟位运算
单击选择分类:
平方取中法(midsquare method)是产生[0,1]均匀分布随机数的方法之一,亦称冯·诺伊曼取中法,最早由冯·诺伊曼(John von Neumann,1903-1957)提出的一种产生均匀伪随机数的方法。这里我们将这个算法稍作修改,产生下一个伪随机的正整数n
不妨设置为 n
(1)如果 n不足256 则+256
(2)n表示成32位二进制(高位补0,),
(3)舍去n的高16位
(4)计算 n*n表示成32位二进制(高位补0,),
(5)舍去高8位,低8位,获得一个16位二进制
这个就是下一个随机数m
一个整数 n
输出用这个算法产生的下一个整数
样例解释n=16
n=n+256=272
二进制 272(10)=00000000000000000000000100010000(2)
舍去高16位 n=0000000100010000(2)
t=n*n=00000000000000010010000100000000(2)
k=0000000100100001(2)=289(10)
本题记录 |
用 户(点击查看用户) |
运行号(点击购买题解) |
时 间 |
算法最快[$0 $ms]
|
李元飞
|
807227
|
2022-01-06 15:23:23 |
内存最少[$0 $KB]
|
越狱未遂的梁某
|
561714 |
2020-01-04 11:58:01 |
第一AC |
AOJ大管家 |
417626
|
2019-05-06 15:35:43 |
第一挑战 |
AOJ大管家
|
417626 |
2019-05-06 15:35:43 |
赛题来源/所属竞赛
N/A
竞赛编号 |
竞赛名称 |
竞赛时间 |
访问比赛 |
1790 |
2023-2024-1学期《程序设计技能实训》博弈论、二进制和位运算【23计算机】 |
2023-12-18 00:00:00 |
请登录
|
1735 |
2022-2023-1学期《程序设计技能实训》数学和数论【22计算机】 |
2022-12-31 00:00:00 |
请登录
|
1730 |
2022-2023-1学期《C语言程序设计》:指针和二进制【22计算机】 |
2022-12-20 09:00:00 |
请登录
|
1677 |
2021-2022-1学期《程序设计技能实训》数学和数论【21计算机1234】 |
2021-12-14 08:00:00 |
请登录
|
1675 |
2021-2022-1学期《程序设计技能实训》二进制和位运算【21计算机1234】 |
2021-12-14 07:00:00 |
请登录
|