Mathematica 如何实现交叉计算(二)?

Mathematica 如何实现交叉计算(二)?

题目
Mathematica 如何实现交叉计算(二)?
如何实现交叉计算(二)?
例如:
输入: s1={{1,2},{3,4},{5,6},{3,2}};
s2={{4,7},{24,31},{48,72}};
输出: s3={48,60,72}
说明: s1是乘法表,s2是与s1对应的区间表
下面的"相乘"表示两个表中任何两个元素相乘,如{1,2}与{3,4}相乘等于{3,4,6,8},其中两个表c1,c2"相乘"可用Table[c1[[j1]]*c2[[j2]],{j1,Length[c1]},{j2,Length[c2]}]函数.
首先取s1中前两个子表"相乘",并按s2中第1个区间取出一个表,再把这个表与s1中第3个子表"相乘",并按s2第2个子表的区间取出一个表,所得表再与s1第4个子表"相乘"并按s2第3个子表的区间取出一个表.依次交叉做下去.
上式子为: {1,2}与{3,4}"相乘"={3,4,6,8},取区间{4,7}={4,6}与{5,6} "相乘"={20,24,30,36} 取区间{24,31}={24,30}与{3,2}相乘={72,90,48,60} 取区间{48,72}={48,60,72}
谢谢!
答案
s1 = {{1,2},{3,4},{5,6},{3,2}};s2 = {{4,7},{24,31},{48,72}};s3 = Fold[Intersection[Times @@@ Tuples@{#1,#2[[1]]},Range @@ #2[[2]]] &,First@s1,Thread[{Rest@s1,s2}]]
举一反三
已知函数f(x)=x,g(x)=alnx,a∈R.若曲线y=f(x)与曲线y=g(x)相交,且在交点处有相同的切线,求a的值和该切线方程.
我想写一篇关于奥巴马的演讲的文章,写哪一篇好呢?为什么好
奥巴马演讲不用看稿子.为什么中国领导演讲要看?
想找英语初三上学期的首字母填空练习……
英语翻译
最新试题
热门考点

超级试练试题库

© 2017-2019 超级试练试题库,All Rights Reserved.