主页 > 互联网  > 

鸡兔同笼问题

鸡兔同笼问题

鸡兔同笼问题是这样一个问题: 现有鸡、兔合装在一个笼子里。数头一共100个头,数脚一共300只脚。问有多少只鸡多少只兔?

在这里讨论这个问题的解法当然太小儿科了。但是y_tab这个C语言解释器只提供了1维数组。如果需要用到2维数组时,该怎么做?

现在演示用行列式和克莱姆法则求解这个问题。 方程组: ax +by =e; cx +dy =f; 系数矩阵为: 2 4 300 1 1 100

写成数组是, a[] = { 2, 4, 300, 1, 1, 100 }; func i(row, col) {return row*3+col;}

函数i()对2维数组作下标转换。所以这道题的系数矩阵就是: a[i(0,0)] a[i[0,1)] a[i(0,2)] a[i(1,0)] a[i(1,1)] a[i(1,2)]

所以求解是, func det(a,b,c,d) {return a*d -b*c;}

detx= det(a[i(0,2)], a[i(0,1)], a[i(1,2)], a[i(1,1)]); dety= det(a[i(0,0)], a[i(0,2)], a[i(1,0)], a[i(1,2)]); deta= det(a[i(0,0)], a[i(0,1)], a[i(1,0)], a[i(1,1)]);

print “x,y:”, detx/deta, dety/deta;

答案是50 50。

a[] = { 2, 4, 300, 1, 1, 100 }; func i(row, col) {return row*3+col;} func det(a,b,c,d) {return a*d -b*c;} detx= det(a[i(0,2)], a[i(0,1)], a[i(1,2)], a[i(1,1)]); dety= det(a[i(0,0)], a[i(0,2)], a[i(1,0)], a[i(1,2)]); deta= det(a[i(0,0)], a[i(0,1)], a[i(1,0)], a[i(1,1)]); print "x,y:", detx/deta, dety/deta;
标签:

鸡兔同笼问题由讯客互联互联网栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“鸡兔同笼问题