怎么凭空生成随机数?

发布于 2021-09-13 13:17:36
不依凭任何工具,只在脑海中生成随机数,不需要高精度,比如 0-9 随机即可。
用例:
- 考场上不会做的题随机选
- 中午随机选某家店吃饭
- 散步、跑步时,随机选一条路前行
- 决定不了的礼物,随机选一样
etc

能做到吗?
如果再加上纸和笔呢?
Questioner
hxd
Viewed
45
100 个回答
zoharSoul  2 2021-09-13 13:26:10
纸和笔 这我熟.
写上 abcd 团成团抓阄不就行
liuzhaowei55  4 2021-09-13 13:26:18
先找到一个足够随机的种子,比如随便想一段话,查出他们的笔画数,然后可以取末位数字,还算随机吧
eason1874  1 2021-09-13 13:26:25
随机选中眼前的一样东西,数一数某一范围出现的数量
raysonx  2 2021-09-13 13:27:12
背圆周率,依次选择圆周率小数点中的每一位
andyskaura 2021-09-13 13:29:48
你怎么证明你现在脑袋里想的数字就不是随机数呢
cnbattle 2021-09-13 13:36:21
简单, 别矫情 别加其他条件约束,0.0
xenme  47 2021-09-13 13:38:24
随手一抓,薅一把头发看掉了多少
malusama 2021-09-13 13:39:00
你随便想一个不就好了。。。别人能预测你下一个想到的数是什么么?
woodie1994  1 2021-09-13 13:39:43
随意想两个两位数,然后心算相乘的结果,取十位数的数字。
Maxxxxyu 2021-09-13 13:42:11
随便找个看到的字,数一下笔画,除 10 算一下余数?
xbiyy  1 2021-09-13 13:42:21
有笔就简单了,放直了,自由倒下,纸上随便画点分区,笔尖指向哪个就是哪个
imn1 2021-09-13 13:44:40
这帖子是随机生成的么?
Zhouisme  1 2021-09-13 13:47:40
恕我直言,这些都有潜意识的选择,只是伪随机。没有真正的随机数生成的办法。伪随机也足够了。
准备一个筛子自己抛~
Edsie 2021-09-13 13:57:54
掷硬币掷骰子
dangyuluo  1 2021-09-13 13:59:41
在脑海中应该很难生成随机数吧,不过我经常用一种办法做随机选择。假设需要随机选择 7 款产品里的某一款,我就随便在脑海里想一句话(比如 I just met BlahBlah. time is one fifty eight )。然后第一个产品对应第一个字母,第二个产品对应第二个字母 ,以此类推往复循环,直到循环完整个字符串。
fengchang  1 2021-09-13 14:00:46
点兵点将,骑马打仗。
xdeng  1 2021-09-13 14:05:39
@xenme 程序员头发没的真相?
amon  2 2021-09-13 14:05:57
@xenme 这个办法挺好,就是有点耗头发,不知道程序员能不能顶得住。/狗头
alexmmog 2021-09-13 14:06:15
双色球开奖记录
zzzmh 2021-09-13 14:08:37
前一天上证指数尾数 缺点是每天只能用一次 且周末没有指数
itechnology 2021-09-13 14:12:25
有纸和笔的话,可以试试抓阄。。。
aguesuka 2021-09-13 14:26:23
加个 hash. 比如要生成 10 以内的数字, 可以生成四个数字求和模 10
c6h6benzene 2021-09-13 14:28:42
还是随身备一个骰子方便。
bipy  1 2021-09-13 14:32:21
看一眼表,(时+分+秒) 取余 10
xgfan  1 2021-09-13 14:33:37
有纸笔,那就转笔啊。
icy37785  2 2021-09-13 14:36:15
@malusama 随便想随机数很难的,一般随便想都容易想到带 7 的数字。挺难克服的,强行不想 7 又容易落到 1 和 3 上面。
rizon  1 2021-09-13 14:42:51
可以借助未知的数字, 然后求模转换为你想要的范围。

此时可以看到的天上的云的数量、
此时可以看到的路上行人数量、
广告牌的字数等等

当然这不是真正意义的随机数,因为这些数字并不会被均匀的分布在你想要随机的范围,
但是它却是现实意义上的随机
whywaoxaks  1 2021-09-13 14:48:11
说一句话(尽量加上随机的语气词),挑兵挑将。本质就是用字数当随机数。
比如拿不定主意吃什么,我心里会默念:wcnm 今天早晨吃煎饼果子啊还是混沌呀。
于是可以得出结果:煎饼。
starsky007 2021-09-13 14:48:15
@woodie1994 想法有点意思,但结果不是随机的。
whileFalse  1 2021-09-13 14:51:59
随便想一个 5 位数,除以 17 。
dji38838c  1 2021-09-13 14:56:00
要先把具体想要什么搞清楚。你想要的应该是“均匀分布”的随机数
“随机数”容易的很,自己随便想一个数字就是随机数,不过不是“均匀分布”
yolee599  1 2021-09-13 14:57:45
点兵点将点到谁我就选谁
Incrus 2021-09-13 14:58:24
@xenme 每次都是 0,是抓的不够用力,还是光头的缘故?
wr516516 2021-09-13 14:59:51
18129 不知道为什么突然想起来的五位数
@whileFalse
magese 2021-09-13 15:24:48
@whileFalse #30

五位数第一时间想到的就是 65535
zxcslove 2021-09-13 15:42:27
扔鞋吧
ywlvs 2021-09-13 16:02:45
薅头发就好,薅下来几根,随机数就是几
Kasumi20 2021-09-13 16:04:44
random 生成一个野指针,然后看它的值
xz410236056 2021-09-13 16:06:06
歪个楼
笔可以编码一些信息,比如条形码简单编码成 0-1, 下面数字可以编码成 16 进制。考试 铅笔+中性笔+橡皮,能编码不少信息。编码几个提示性的语句
Kagari 2021-09-13 16:07:16
用当前时间吧
首先,双臂平展成十字,接受 GPS 信号,然后解析时间戳,对 10 取余数
cking 2021-09-13 16:08:50
@woodie1994 我第一反应就是 1 + 1 1*1 咋办
ysc3839 2021-09-13 16:09:28
我觉得我的脑子生成出来的不够随机,所以在能联网的情况下我会用 random.org 来抽随机数。
hxd 2021-09-13 16:10:09
各位各位,有些想法还是比较有实用意义的。
只是多数仍落入了两个误区:
- 还是借用了某种工具。 (希望是能完全就脑海里想出来的)
- 不够随机。 (希望能尽量均匀分布,或接近均匀分布)

另外,最初纸笔的想法是拿来写和计算的呀,大家真有创意呢 XD
jiangboenoch 2021-09-13 16:34:55
随机想四个三位数,相加取和 sum
return Math.round(sum[1]+sum[4])
Mohanson 2021-09-13 16:39:28
1. 在大脑中记忆一个初始随机数 R
2. 使用线性同余方程: R = (A * R + B) % M 获得随机数 R
3. 将第二部中的 R 作为新的初始随机数 R
qwerthhusn 2021-09-13 16:41:59
看一眼比特币此时此刻的价格
FstarKing 2021-09-13 16:51:23
看时间 现在 16:51
FstarKing  2 2021-09-13 16:52:37
16:51
1 + 6 + 5 + 1 = 13
1 + 3 = 4
随机结果 4
ltruntu 2021-09-13 16:52:41
开始解放思想了?
fuchaofather 2021-09-13 16:54:19
抛硬币。正面 1 反面 0,每四次产生一位二进制数取 10 以内的
fkdog 2021-09-13 17:02:09
把嘴闭上, 我说一个数....
vstar 2021-09-13 17:06:25
[焦点 Focus]( https://movie.douban.com/subject/20277433/)
这个电影里有个情节 脑内的随机数被操控了 大脑不可靠
cloudfox  1 2021-09-13 17:07:18
https://www.qbitai.com/2019/07/5327.html
pandaaa 2021-09-13 17:40:43
@xenme 别说了,别说了,血压上来了😭
hanqian 2021-09-13 17:45:12
“有意识的” 生成 “真正的随机”

这本身就有逻辑矛盾吧?
oxromantic 2021-09-13 17:51:00
看过言情剧吗?摘一朵野花,扯花瓣,他爱我-他不爱我-他爱我-他不爱我。。。
jiayong2793  1 2021-09-13 18:16:20
自己控制随机事件,其实就是让自己的行为不受意识控制
例如:定一个规则,跑到下一个路口的时候左脚在前就左转,右脚在前就右转,然后自然地跑过去
kwanzaa 2021-09-13 18:46:15
脑海里 0-9 刷新数字,随机暂停就是了。
pkoukk 2021-09-13 18:55:18
搓眼睛,然后闭上眼睛数星星
clague 2021-09-13 19:17:31
脑子里生成一个线性反馈移位寄存器
geekvcn 2021-09-13 19:33:15
世界上没有随机的东西,都是既定的,命运都是注定的。
hush3 2021-09-13 19:35:00
哼一句歌 歌词字数
menc  1 2021-09-13 20:17:15
说点正经的解决方案。
线性同余法,glibc/GCC 的伪随机数生成器就是这个算法

X_n+1 = (a * X_n + c) mod m



glibc 的参数设置如下:
a = 1103515245
c = 12345

在你的场景下,有几个选项,m 就取几
x_n 是随机数种子,随便选一个,然后计算任意次数,得到的结果可以看做是 m 范围内取随机数,至少随机性和 glibc 取的伪随机数效果一致
wffnone  1 2021-09-13 20:34:47
@menc 你是唯二正经回答之一,但是你的回答是错的- -…

这个公式用于生成的是伪随机序列。如果用它产生第一个随机数,乃至于任何明确 N 的第 N 个随机数,都是完全依赖于种子的。

随机性不能脱离分布去谈。题中要求的随机数,其对应的分布,在你的解答下,是所有方便想到的数做这个运算得到的数。这个分布完全不同于按固定种子连续运算得到的序列的分布。

所以这是一种误用。这个运算不产生随机,只是把脑子想的数字做了一个映射。
winglight2016  2 2021-09-13 20:58:10
这个宇宙是否存在“真”随机性是个哲学问题,比较接近的是微观粒子的分布概率。大脑里的神经网络虽然是挺复杂的,但是由于习惯路径的存在,同样的选择路径更容易出现,这怎么也不可能达到楼主要求的均匀分布。如果有个硬币倒是比较能实现均匀分布的概率。
c0xt30a 2021-09-13 22:36:39
@bipy 这个方法好像不是均匀随机
herozzm 2021-09-13 22:37:29
眼珠一转,毫无根据脱口而出就行了
Mutoo 2021-09-13 22:40:42
如果要在脑子里直接可用的话,最简单的就是自己做两轮石头剪刀布,三进制,这样就有 3^2=9 种组合。虽然不是 0~9,但是 0~8 应该也够用了吧。
bipy  3 2021-09-13 23:00:14
@c0xt30a #66

```python3

d = {}

for i in range(10):
d[i] = 0

for i in range(24):
for j in range(60):
for k in range(60):
d[(i + j + k) % 10] += 1

print(d)

```
===================

{0: 8640, 1: 8640, 2: 8640, 3: 8640, 4: 8640, 5: 8640, 6: 8640, 7: 8640, 8: 8640, 9: 8640}
flynaj  1 2021-09-13 23:46:45
你还不并不如投骰子🎲
menc 2021-09-14 00:56:44
@wffnone 题目所说的随机数希望得到的都是 uniform distribution,从分布看,这个算法是满足的。
你说的问题不是这个算法的问题,是伪随机数本身的问题,所有伪随机数生成算法都有同样的问题,但在实际应用中,我们不考虑这点,在足够大的 sample space 内能满足 uniform distribution 就是可用的方法。
menc 2021-09-14 01:01:40
@wffnone 我明白你的意思了,改一下,第一次随机选一个种子,以后只要记住上一次的随机数结果,继续该运算即可
Lemeng 2021-09-14 01:36:59
时间和日期,再加上自己的算法,就是随机数
dwztom 2021-09-14 02:19:51
@xenme 可以可以!
不仅非常随机,能力还变强了。
c0xt30a 2021-09-14 02:34:43
@bipy 是我想错了,不好意思。感谢代码指出。
nvkou 2021-09-14 03:37:15
直接按顺序就行了. 因为事件是随机的.那么你的编号就可以不随机了
比如规定日期个位数为每日起点. 需要的时候脑内+1 就行了
场景: 午饭吃几号套餐? 今天 13 号,这是今天第一次需要随机数. 那就 4. 如果今天第 3 次需要随机数就 6
Howlaind 2021-09-14 07:21:41
点兵点将
ziseyinzi 2021-09-14 07:27:58
砂锅炒豆越炒越臭
xnth97 2021-09-14 08:53:24
小六壬?
perpetually 2021-09-14 09:21:07
这个很简单,脑子里面想段文字,奇数就选一,偶数就选二

比如你看我上面那句
perpetually 2021-09-14 09:22:01
@perpetually 要更复杂一点,就数笔画,比如第 12 个字是奇数还是偶数笔画
JesseLexin 2021-09-14 09:39:19
@zzzmh 金融统计学专业的我表示,这个不算随机的
gablic 2021-09-14 10:10:50
用脑袋撞墙,然后数下看见多少星星
1arry 2021-09-14 10:12:01
投硬币,生成速度看手速。
xiaojianghu 2021-09-14 10:37:08
这种不能叫随机数,只能说是你不能预测的数值
blackshow 2021-09-14 11:02:52
能做到吗?做不到
如果再加上纸和笔呢?做不到
neptuno 2021-09-14 11:28:53
随便想两个 1-10 数字,相乘,然后看你心情向上向下取整、四舍五入,或者取个位数
fo2w 2021-09-14 11:32:13
看到多选我唯唯诺诺

看到单选我重拳出击
Canon1014 2021-09-14 11:36:26
小公鸡点到谁我就选谁
paxol 2021-09-14 11:45:08
大数模除,只要模数别选特殊的,基本上没法预测
destinyzou  1 2021-09-14 11:48:33
抛硬币,正面是 1 反面是 0
抛四次就可以表示 16 个数了
koebehshian 2021-09-14 12:40:02
这么多种生成随机数的方案,怎么随机选一种使用
keith1126  3 2021-09-14 14:30:10
把这个帖子转到了校内论坛,再转回几条回复吧,应该基本上完美解决了问题(除了有点复杂):



zheng5200 2021-09-14 17:35:37
@xenme 这方法直接赢麻了
pkookp8 2021-09-14 17:52:09
让一个不会用 vim 的人打开 vim,等他退出
opengps 2021-09-14 20:20:19
背π的小数点之后 N 位
wffnone 2021-09-14 20:26:27
@keith1126 人凭空出 01 串绝不可能独立同分布啊,想一想就知道自相关一定会很强。这个同学的回答也就是套了别人的一个公式,用在这里还是完全的误用啦。
嗯不过这个知识点还挺有意思的。
Cu635 2021-09-14 21:27:43
@keith1126
那个学校?校内论坛如此之强?
有个小问题啊,图片里的文字第二行,前面还说是“长为 2l 的 01 串”呢,后面就是( X₁,...Xₗ),下标只到 l 了?
loading 2021-09-14 21:45:00
@xenme #7 我补充一下:
如果确实太年轻,可以抓头,数头皮屑。
keith1126 2021-09-14 22:01:41
@wffnone #97

确实,最基本的一点:生成时会主动避开连续的 0 或 1,因为感觉「不够随机」