[从头学数学] 第80节 数学广角──植树问题

剧情提要:
[机器小伟]在[工程师阿伟]的陪同下进入练气期第九层功法的修炼,
这次要修炼的目标是[数学广角──植树问题]。

正剧开始:

星历2016年02月10日 14:07:19, 银河系厄尔斯星球中华帝国江南行省。
[工程师阿伟]正在和[机器小伟]一起研究[数学广角──植树问题]。




[工程师阿伟]刚看到这层功法的时候,并没有发现什么,但看了[人叫板老师]画的图以后,突然有了点想法。

因为这其实就是求一个序列中元素的个数,可以这样来求:

<span style="font-size:18px;">>>> len(range(1, 100, 5));
20
>>> len(range(1, 101, 5));
20
>>> len(range(0, 101, 5));
21</span>



<span style="font-size:18px;">>>> 
0米要栽1棵树。
5米要栽2棵树。
10米要栽3棵树。
15米要栽4棵树。
20米要栽5棵树。
25米要栽6棵树。
30米要栽7棵树。
35米要栽8棵树。
40米要栽9棵树。
45米要栽10棵树。
50米要栽11棵树。
55米要栽12棵树。
60米要栽13棵树。
65米要栽14棵树。
70米要栽15棵树。
75米要栽16棵树。
80米要栽17棵树。
85米要栽18棵树。
90米要栽19棵树。
95米要栽20棵树。
100米要栽21棵树。

def tmp():
    for i in range(0, 101, 5):
        print('{0}米要栽{1}棵树。'.format(i, len(range(0, i+1, 5))));
    return;</span>


如果两端都栽,需要:

<span style="font-size:18px;">#植树问题         
def plantTree(distance, spacing, isCircle):

    if (not isCircle):
        d = distance + 1;

    print('{0}米要栽{1}棵树。'.format(distance, len(range(0, d, spacing))));
    return;
	
if __name__ == '__main__':
    plantTree(60, 3, False);</span>



<span style="font-size:18px;">>>> 
总量:120, 步长:10,需要单元:12。

#植树问题         
def plantTree(distance, spacing, isCircle):
    d = distance;
    if (not isCircle):
        d += 1;

    print('总量:{0}, 步长:{1},需要单元:{2}。'.format(distance, spacing, len(range(0, d, spacing))));
    return;</span>


<span style="font-size:18px;">>>> 
0 -->  2
1 -->  6
2 -->  10
3 -->  14
4 -->  18
5 -->  22
6 -->  26
7 -->  30
8 -->  34
9 -->  38
10 -->  42

def tmp():
    for i in range(11):
        print(i, '--> ', 2+4*i);</span>

<span style="font-size:18px;">>>> 
1 --> 0 -->  1
3 --> 8 -->  9
5 --> 16 -->  25
7 --> 24 -->  49
9 --> 32 -->  81
11 --> 40 -->  121
13 --> 48 -->  169
15 --> 56 -->  225

def tmp():
    total = 0;
    for i in range(1, 16, 2):
        if (i == 1):
            total += 1;
        else:
            total += 4*i-4;
        print(i, '-->', 4*i-4, '--> ', total);</span>


本节到此结束,欲知后事如何,请看下回分解。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值