V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
marshluca
V2EX  ›  数学

一道数学题

  •  
  •   marshluca · 2010-07-29 22:00:59 +08:00 · 8402 次点击
    这是一个创建于 5232 天前的主题,其中的信息可能已经有所发展或是发生改变。
    有a,b,c,d,四个人,互相传球,从a开始传出,经过5次传球后,球回到a的手里,总共有多少种传球的方法 ?
    22 条回复    2019-12-27 20:55:59 +08:00
    apple
        1
    apple  
       2010-07-29 22:13:31 +08:00
    a~a
    中间三次,bcd来排,排除含有bb,bbb这种类型的排列,就是答案了。
    lianghai
        2
    lianghai  
       2010-07-29 22:21:28 +08:00
    唉……高中时的数学题现在我已经能把自己算晕了……算出一个 96 然后 google 一下,得知错了……
    校正了一个疏忽才得出正确答案……
    marshluca
        3
    marshluca  
    OP
       2010-07-29 22:32:00 +08:00
    非常欢迎大家写代码
    aligo
        4
    aligo  
       2010-07-29 23:18:37 +08:00
    4个人排成一圈,或在排成1字一排貌似最后都没法传到a手里呢
    [code]
    var count = 0;
    var routes = [];
    var limit = 5;
    var circle = false;
    var found = function (route)
    {
    routes.push(route);
    //alert(route);
    }
    var pass = function (cur, time, route)
    {
    if ((cur === 1) && (time === limit)) {
    count++;
    found(route);
    }
    if (circle && (cur > 4)) {
    cur = 1;
    }
    if (circle && (cur < 1)) {
    cur = 4;
    }
    if ((cur < 5) && (cur > 0) && (time < limit) ) {
    pass(cur + 1, time + 1, route + '>');
    pass(cur - 1, time + 1, route + '<');
    }
    }
    pass(1, 0, '');
    alert(count + ':' + routes);
    [/code]
    Majia
        5
    Majia  
       2010-07-29 23:46:28 +08:00
    (-1)^n(x-1)[1-(-x+1)^(n-1)]/x

    n为传球次数,x为人数(x>=3)
    Majia
        6
    Majia  
       2010-07-29 23:50:33 +08:00
    貌似写得不太好

    (-1)^n*(x-1)*[(1-(-x+1)^(n-1)]/x
    marshluca
        7
    marshluca  
    OP
       2010-08-08 12:32:26 +08:00
    # python
    def compute(current,remain):
    if remain == 0:
    if current == 'a':
    return 1
    else:
    return 0
    else:
    return sum(compute(next,remain-1) for next in ['a','b','c','d'] if next!= current)


    print compute('a',5)
    xhacker
        8
    xhacker  
       2010-08-08 15:01:41 +08:00
    楼上的程序很慢,我也写一个来献献丑。n 是传球次数,m 是人数。O(n*m^2)的。

    这里不能贴代码,先贴在别处。
    http://paste.ubuntu.com/474828/
    rveo
        9
    rveo  
       2010-08-08 15:21:06 +08:00
    1 + 2 + 3 + 4 = 10 种
    rveo
        10
    rveo  
       2010-08-08 15:25:27 +08:00
    这种题,是常见的小学 4 - 5 年级奥林匹克数学题,不过,在前面加了个障眼法( 4 个人)。

    在数学表达式里,似乎是 ( N - 1 )! 表示从 1 + ( 1 + 1 ) + (( 1 + 1 ) + 1 )…… 这样的累加。

    我不记得 我这个描述 是否正确了。
    rveo
        11
    rveo  
       2010-08-08 15:29:28 +08:00
    额。。应该错了。。N! 是 阶乘累加,正确的是 1 + 2 + 3 + …… + ( N - 1 ) + N 这样。
    Livid
        12
    Livid  
    MOD
       2010-08-08 18:17:37 +08:00
    @xhacker 这里支持 GitHub 的 Gist。
    xhacker
        13
    xhacker  
       2010-08-08 19:51:00 +08:00
    marshluca
        14
    marshluca  
    OP
       2010-08-08 20:58:39 +08:00
    贴上ruby,代码不漂亮:

    http://gist.github.com/513999
    xhacker
        15
    xhacker  
       2010-08-08 21:12:20 +08:00
    @marshluca 试试把 n (传球次数)改大一些,然后阁下的程序就很悲剧……
    marshluca
        16
    marshluca  
    OP
       2010-08-08 21:15:23 +08:00
    @xhacker 被你发现了... 这是个小学奥数题

    我这还有一道小学三年级的奥数:
    一个六位数,分别用2,3,4,5,6乘它,得到的五个新数仍是由原数中的六个数字组成,只是位置不同,则此六位数是多少?
    xhacker
        17
    xhacker  
       2010-08-08 21:22:05 +08:00
    @marshluca 呵呵,编程解决奥数题……太邪恶了~
    marshluca
        18
    marshluca  
    OP
       2010-08-08 21:25:47 +08:00
    @xhacker 你可以用这个法子来诱惑你娃儿学编程 哈哈
    marshluca
        19
    marshluca  
    OP
       2010-08-08 21:28:57 +08:00
    不编程:
    先确定最高位和个位,最高位只能是1. 用2~9分别乘2,3,4,5,6,分别得五个数,取其个位,可定只有7去乘才出现1,那样就确定了六个数是,7.4.1.8.5.2,而最高位是1个位是7,乘以2就可以定十位是8,别的数字不行,类推下去即可得出结果是 ?
    xhacker
        20
    xhacker  
       2010-08-08 21:31:14 +08:00
    @marshluca 哈哈哈,我啥时候都有娃儿了~
    让我想起来前一阵编程解决排列组合问题……
    vayn
        21
    vayn  
       2010-08-08 23:16:40 +08:00
    @marshluca “取其个位,可定只有7去乘才出现1”,这句是什么意思?1/7?
    MadHouse
        22
    MadHouse  
       2019-12-27 20:55:59 +08:00 via Android
    2*4*3*2=48
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3034 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 14:01 · PVG 22:01 · LAX 06:01 · JFK 09:01
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.