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


输出用这个算法产生的下一个整数 
16
289
样例解释n=16
n=n+256=272
二进制  272(10)=00000000000000000000000100010000(2)
舍去高16位  n=0000000100010000(2)
t=n*n=00000000000000010010000100000000(2)
k=0000000100100001(2)=289(10)

推荐代码 查看2835 所有题解 上传题解视频得图灵币

本题记录 用 户(点击查看用户) 运行号(点击购买题解) 时 间
算法最快[$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 请登录