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

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

正剧开始:

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


[从头学数学] 第80节 数学广角──植树问题_第1张图片


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

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

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


[从头学数学] 第80节 数学广角──植树问题_第2张图片


<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>


[从头学数学] 第80节 数学广角──植树问题_第3张图片

[从头学数学] 第80节 数学广角──植树问题_第4张图片

[从头学数学] 第80节 数学广角──植树问题_第5张图片

[从头学数学] 第80节 数学广角──植树问题_第6张图片

<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>

[从头学数学] 第80节 数学广角──植树问题_第7张图片

[从头学数学] 第80节 数学广角──植树问题_第8张图片

<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>


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


你可能感兴趣的:([从头学数学] 第80节 数学广角──植树问题)