Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
qfcy_
Python
提交
ca435aba
P
Python
项目概览
qfcy_
/
Python
通知
114
Star
11
Fork
5
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
P
Python
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
ca435aba
编写于
2月 15, 2024
作者:
qfcy_
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
删除 生成随机数2.py
上级
04d89419
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
0 addition
and
45 deletion
+0
-45
小项目/生成随机数2.py
小项目/生成随机数2.py
+0
-45
未找到文件。
小项目/生成随机数2.py
已删除
100644 → 0
浏览文件 @
04d89419
# 来自于AI生成的代码,并加以修改
class
MersenneTwister
:
def
__init__
(
self
,
seed
):
# seed的范围为-2147483648到2147483647
self
.
index
=
624
# 初始化索引
self
.
mt
=
[
0
]
*
624
# 初始化状态数组
self
.
mt
[
0
]
=
seed
# 使用种子初始化状态数组的第一个元素
for
i
in
range
(
1
,
624
):
# 初始化状态数组的其余元素
self
.
mt
[
i
]
=
0xFFFFFFFF
&
(
1812433253
*
(
self
.
mt
[
i
-
1
]
^
(
self
.
mt
[
i
-
1
]
>>
30
))
+
i
)
def
extract_number
(
self
):
if
self
.
index
>=
624
:
# 如果索引超出范围,进行扭曲操作
self
.
twist
()
y
=
self
.
mt
[
self
.
index
]
# 取出状态数组中的一个元素
y
=
y
^
(
y
>>
11
)
# 对取出的元素进行位运算
y
=
y
^
((
y
<<
7
)
&
0x9D2C5680
)
# 对取出的元素进行位运算
y
=
y
^
((
y
<<
15
)
&
0xEFC60000
)
# 对取出的元素进行位运算
y
=
y
^
(
y
>>
18
)
# 对取出的元素进行位运算
self
.
index
+=
1
# 更新索引
return
0xFFFFFFFF
&
y
# 返回生成的随机数
def
random
(
self
):
# 返回0-1的随机数
return
self
.
extract_number
()
/
0xFFFFFFFF
def
twist
(
self
):
for
i
in
range
(
624
):
# 扭曲操作
y
=
(
self
.
mt
[
i
]
&
0x80000000
)
+
(
self
.
mt
[(
i
+
1
)
%
624
]
&
0x7fffffff
)
self
.
mt
[
i
]
=
self
.
mt
[(
i
+
397
)
%
624
]
^
(
y
>>
1
)
if
y
%
2
!=
0
:
self
.
mt
[
i
]
=
self
.
mt
[
i
]
^
0x9908B0DF
self
.
index
=
0
# 重置索引
def
main
():
seed
=
5489
# 设置随机数种子
mt
=
MersenneTwister
(
seed
)
print
(
"按Enter生成随机数,按Ctrl+C退出 ..."
)
while
True
:
print
(
mt
.
random
(),
end
=
""
)
# 生成0-1的随机数
input
()
# 等待用户按下回车键
if
__name__
==
"__main__"
:
main
()
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录