您的位置:首页 > 其它

[从头学数学] 第26节 数学广角 搭配(一)

2016-01-04 10:25 288 查看
剧情提要:

[机器小伟]在[工程师阿伟]的陪同下进入练气期第三层功法的修炼,

这次要修炼的目标是[数学广角 搭配(一)]。

正剧开始:

星历2016年01月04日 10:21:46, 银河系厄尔斯星球中华帝国江南行省。

[工程师阿伟]正在和[机器小伟]一起研究第一期的数学广角,[人叫板老师]叫它搭配,[工

程师阿伟]看了一下,发现是排列组合的范畴。



这种题怎么解呢,小伟问阿伟。

这个就相当于求A(3_2) = 3 * 2=6,三个数中取两个不同数的全排列。

<span style="font-size:18px;">def tmp():
a = [1,2,3];
b = a;
count = 0;
for i in range(len(a)):
for j in range(len(b)):
if a[i] == b[j]:
pass;
else:
print('{0}{1}'.format(a[i], b[j]), end=' ');
count+=1;
print('\n');
print('一共有{0}种选择。'.format(count));
return;</span>


看看结果吧:

<span style="font-size:18px;">>>>
12 13 21 23 31 32

一共有6种选择。</span>






<span style="font-size:18px;">function myDraw() {
plot.init();
setPreference();

var x = 100, y=50;

var color = ['red', 'blue', 'orange'];
var type = 3;

for (var i = 0; i < type; i++) {
for (var j = 0; j < type; j++) {
if (i != j) {
plot.setFillStyle(color[i]);
plot.fillRect(x, y, 100, 30);
x += 200;
plot.setFillStyle(color[j]);
plot.fillRect(x, y, 100, 30);
plot.moveTo(x-250, y+40)
.lineTo(x+150, y+40)
.stroke();

x -= 200;
y += 50;
}
}
}

}</span>




这个相当于C(3_2) = 3*2/2=3

<span style="font-size:18px;">def tmp():
a = [5, 7, 9];
b = a;
count = 0;
for i in range(len(a)):
for j in range(i, len(b)):
if a[i] == b[j]:
pass;
else:
print('{0} + {1} = {2}'.format(a[i], b[j], a[i]+b[j]));
count+=1;
print('\n');
print('一共有{0}种可能。'.format(count));
return;</span>


<span style="font-size:18px;">>>>
5 + 7 = 12
5 + 9 = 14
7 + 9 = 16

一共有3种可能。</span>




握手也是组合,所以是3次。



<span style="font-size:18px;">def tmp():
a = [1, 2, 5];
b = 5;
count = 0;
#求x + 2 * y + 5 * z = 5的解
i=b//a[0];
j=b//a[1];
k=b//a[2];
for i_1 in range(i+1):
for j_1 in range(j+1):
for k_1 in range(k+1):
if (i_1 + 2 * j_1 + 5*k_1 == b):
print('{0}个一角,{1}个二角,{2}个五角可以买一个拼音本。'.format(\
i_1, j_1, k_1));

return;</span>


<span style="font-size:18px;">>>>
0个一角,0个二角,1个五角可以买一个拼音本。
1个一角,2个二角,0个五角可以买一个拼音本。
3个一角,1个二角,0个五角可以买一个拼音本。
5个一角,0个二角,0个五角可以买一个拼音本。
>>> </span>




这里每一枚硬币都可以选择或不选择,所以有2*2*2=8种取法。

<span style="font-size:18px;">def tmp():
a = [1, 5, 10];
count = 0;
s = '';
total = 0;
for nth in range(1, 9):
i = nth;
while (i > 0):
if i > 4:
s += '一毛,';
total += 1;
i -= 4;
elif i > 2:
s += '五毛,';
total += 5;
i -= 2;
elif i > 1:
s += '一块,';
total += 10;
i -= 1;
else:
i -= 1;

print('{0}一共{1}块{2}毛。'.format(s, total//10, total%10));
s = '';
total=0;
return;</span>


<span style="font-size:18px;">>>>
一共0块0毛。
一块,一共1块0毛。
五毛,一共0块5毛。
五毛,一块,一共1块5毛。
一毛,一共0块1毛。
一毛,一块,一共1块1毛。
一毛,五毛,一共0块6毛。
一毛,五毛,一块,一共1块6毛。</span>


本节到此结束,欲知后事如何,请看下回分解。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: