Re: [新闻] 好聪明!这样做 发票10分钟全对完

楼主: rwhung (画一只鸡)   2015-05-29 02:02:41
※ 引述《Arminius (奇怪的欧吉桑)》之铭言:
: : 嘘 jeterfans: 花的时间是一样的,一个事前花时间,一个事后花时间, 05/29 00:13
: : → jeterfans: 聪明个屁 05/29 00:13
: 花的时间不一样喔, 假设你有 1000 张发票
: 200块有6组号码, 头奖 3 个, 增开 3 个
: 一张一张对, 要对 1000张 * 3 个数字 * 6 组 = 18000 个数字
: 先对尾数 1000 张 * 1 个数字 = 1000 个数字
: 分开 10 叠, 平均一叠算 100 张吧
: 算你衰 6 组号码尾数都不同, 拿 6 叠出来
: 再对剩下两个数字 6 * 100 * 2 个数字 = 1200 个数字
: 这样总共才需要对 1000 + 1200 = 2200 个数字
: 2200 << 18000
: 快很多啦, 真的~
你的算法有误,或者是你的对法有误
假设发票号码是 AR12345678 , 比较快速的对法是 拿 678来对
而不是拿 6 去对,然后再来对 7 ,之后再对 8
所以算法应该是 发票数 * 组中奖号码
你举的例子就是 1000 * 6 = 6000 max (如果同尾数或同百数, 组数会更少)
不过通常人类可以同时阅读6个字以上, 也就是说如果正常情况下
一秒可以对二组(中奖号码) , 一张发票可以在3秒对完 (六组), 一分钟可以对20张.
1000张发票约在 50分钟左右对完
之后再算先分叠再对的方法
先对尾数 1000 张 * 1 个数字 = 1000 个数字
虽然人类可以同时阅读6个字以上, 但是你只对一个数字, 所以花的时间也是一样
(一秒一个字/一张发票) 所以你先花了 1000 秒 处理 = 17分钟
之后你有6叠发票, 每叠 100张 . 每组只需比对2个数字
因此 一张发票可以 2秒内对完 (同样6组) 一分钟可以对30张
600张发票 = 20分
加上之前的 17分 , 大约花了 37分对完.
结论:
仅以数字来看是 18000 : 2200 , 但以时间来看,是 50 : 37
先整理是比较快, 但没你想像中差距那么的大
作者: jojoStar (白金之星)   2015-05-29 02:04:00
念书有没有这么认真???
作者: Owen93 (Owen)   2015-05-29 02:04:00
封你为发票王
作者: Arminius (奇怪的欧吉桑)   2015-05-29 02:07:00
输给你了
作者: dacapo (Dacapo)   2015-05-29 02:07:00
您发票系?
作者: raok (台大吴彦祖)   2015-05-29 02:10:00
以时间复杂度来看都是常数时间

Links booklink

Contact Us: admin [ a t ] ucptt.com