大家是不是低估了生成随机加减法算式的编程难度

ℌ𝔢𝔶𝔦𝔱𝔰𝔅𝔩𝔞𝔡𝔢ℜ𝔲𝔫𝔯-avatar

ℌ𝔢𝔶𝔦𝔱𝔰𝔅𝔩𝔞𝔡𝔢ℜ𝔲𝔫𝔯

2021-07-28T12:47:59+00:00

如果算1-1000里任两个数的四则运算,共有1000*1000*4=4000000条公式,如果让计算机计算随机数4000000次,得到不重复的数,好像,我的电脑还没那么快算出来

问题是把有序的4000000条公式随机分布使之看起来像随机生成一样,老哥们尽管打码,常见编程语言我都看得懂
Jutes-avatar

Jutes

电脑算整数计算那真的是喝汤一样顺滑
CrankyNate-avatar

CrankyNate

不是随机挑选两个数运算吗,又不是全部算好了再随机挑一个结果
AXQW-avatar

AXQW

楼主一看就知道不是程序员
Nhep-avatar

Nhep

那我估计你的电脑会伤心了
Bananapeels-avatar

Bananapeels

遇事不决先打表?
Shanti-avatar

Shanti

随便写了个psvm要不了1秒
zombie-avatar

zombie

不是,你有多看不起你家电脑

这种量级随便算好吗[img]http://img.nga.178.com/attachments/mon_201209/14/-47218_5052bc4cc6331.png[/img]
Diego-avatar

Diego

roll 1,4000000
再拆成两个数
一般是这样的
Masenko-avatar

Masenko

是我理解有问题吗?四个符号编个数组,然后直接随机两个数加一个符号不就得了?两行代码的事啊?
ColdToiletSeat-avatar

ColdToiletSeat

你是要算啥?我怎么没看明白,为啥要算这玩意,有前提提要吗?
TehMateh-avatar

TehMateh

就竞赛1秒的时间 我记得几千万次是不行的 几百万次就差不多了 超过这个上限就要换一个方法了
ℌ𝔢𝔶𝔦𝔱𝔰𝔅𝔩𝔞𝔡𝔢ℜ𝔲𝔫𝔯-avatar

ℌ𝔢𝔶𝔦𝔱𝔰𝔅𝔩𝔞𝔡𝔢ℜ𝔲𝔫𝔯

Reply to [pid=538766409,27936461,1]Reply[/pid] Post by [uid=39720491]卡皮酱酱酱酱[/uid] (2021-08-05 20:58)你告诉我怎样排列4000000条公式使之随机分布?随便用个语言写,java c# python php c 我都看得懂
Silentassassin7-avatar

Silentassassin7

我没看明白,能写清楚需求是啥么
hzqakhtr-avatar

hzqakhtr


建议换电脑
Marktastic-avatar

Marktastic

就是要把400万条算式打乱输出是吗?
Thecrazypudding-avatar

Thecrazypudding

[quote][pid=538766807,27936461,1]Reply[/pid] Post by [uid=60842511]humq1992[/uid] (2021-08-05 20:59):

单线程 13秒,8线程 妥妥1秒内了;
[img]https://img.nga.178.com/attachments/mon_202108/05/-7Q174-8u4dK2nT3cSre-nc.jpg[/img][/quote]随机的啊。。
Thecrazypudding-avatar

Thecrazypudding

[quote][pid=538767457,27936461,1]Reply[/pid] Post by [uid=60266803]Jeason_57656[/uid] (2021-08-05 21:02):

是我理解有问题吗?四个符号编个数组,然后直接随机两个数加一个符号不就得了?两行代码的事啊?[/quote]随机?不重复
simply_kaleb-avatar

simply_kaleb

本质上还是批量生成百万级的随机数
你可以搜一下用SQL实现,大概几分钟就能做到
H2obury-avatar

H2obury

import random
s = []
op = ['+', '-', '*', '/']
for i in xrange(1000):
for j in xrange(1000):
for k in xrange(4):
s.append('%d %s %d = ?' % (i, op[k], j))
random.shuffle(s)