Re: [请益] 今天去面试IC设计软件工程师被打爆的题目

楼主: Leon (Achilles)   2013-11-24 13:50:13
※ 引述《grassboy2 (小胖子.吴草儿)》之铭言:
: (手残按成回信,原 po sorry 0rz)
: 献丑了XD
: 来个确定会中,但不保证是最少张的思考模式
: 把 1~49 个号码分成25组:
: 分别是 {1,2} {3,4} {5,6} .... {45,46} {47,48} {49,1}
: 然后我们把这 25 组当中,"任取三组"的所有可能都买下来…
: 也就是 C(25,3) = 25 * 24 * 23 / 6 = 2300
: 如此,我认为这样一定会中奖
这想法是对的, 不过本质上离 bound 差很远.
你用的技巧是 grouping.
把两个号码弄成一组, 然后把 C(49,6) 转成 C(49/2, 6/2) = C(25,3)..
举个简单的例子给你,
6 个号码, 取四个, 我要买多少张, 才能保证会中两个号码?
Based on you grouping algorithm..
{1,2}, {3,4}, {5,6}.. -> C(3,2) = 3.
但实际上你只需要买 1 张就够了.
这题目是 Graph 上面的 Vertex Covering,
有兴趣的人可以去看这篇
Z. Furedi, G. J. Szekely, and Z. Zubor:
On the lottery problem,
J. Combinatorial Designs 4 (1996), 5-10.
http://www.math.uiuc.edu/~z-furedi/publ.html
不过用程式去解应该会很有趣.
作者: drkkimo (花猫~ 努力工作)   2012-01-25 22:08:00
作者: pinkowa (pinkowa)   2013-02-12 12:03:00
133组~~~

Links booklink

Contact Us: admin [ a t ] ucptt.com