字典翻译 问答 小学 数学 有一个序列A=<a1,a2,…,an>.有两个函数都是A×A→A的映射,其中:F1(ai,aj)=ak,其中k=(i+j)modnF2(ai,aj)=ak,其中k=(i*j)modn现在问:当n=11时,Φ(F1(a1,a2),F2(a2,a3))=a7,Φ的表达式为函数F1和F2有限次结合,例如
问题标题:
有一个序列A=<a1,a2,…,an>.有两个函数都是A×A→A的映射,其中:F1(ai,aj)=ak,其中k=(i+j)modnF2(ai,aj)=ak,其中k=(i*j)modn现在问:当n=11时,Φ(F1(a1,a2),F2(a2,a3))=a7,Φ的表达式为函数F1和F2有限次结合,例如
问题描述:

有一个序列A=.

有两个函数都是A×A→A的映射,其中:

F1(ai,aj)=ak,其中k=(i+j)modn

F2(ai,aj)=ak,其中k=(i*j)modn

现在问:

当n=11时,Φ(F1(a1,a2),F2(a2,a3))=a7,Φ的表达式为函数F1和F2有限次结合,例如:

F1(F1(a1,a2),F2(a2,a3))、F2(F1(a1,a2),F2(a2,a3))、F1(F1(F2(F1(a1,a2),F2(a2,a3)),a2),F2(a2,a3))等等都是Φ的合法形式.

求Φ的表达式.

我想问的是用哪一门数学知识可以轻松的解决这类问题.

程文科回答:
  这道是离散数学的范畴,可以用其中的集合论来解答.   有一个递归算法,比较适合在计算机中建模.   方法如下:   注意:你的题目中没有说得太明白,Φ的合法表达式中是否允许F1,F2对a1,a2,a3及其运算结果任意运算,还是有其他限定,比如a3不能出现在F1中,a1不能出现在F2中.以及是否允许有两个相同的元素进行计算比如F1(a1,a1)这种.所以针对你的不同意图,下面的算法要做相应限定.   1.设集合s1,s2,ss2,设结束元素为at.三个集合元素的形式规定为四元组(f,e1,e2,r),其中,   e1,e2为序列A中的元素;   f=1,2分别表示应用F1或者F2对元素e1,e2进行运算,r表示其运算结果;   f=0表示r不是e1,e2和运算结果,而是一个初始元素;   初始化   s1={(0,0,0,a1),(0,0,0,a2),(0,0,0,a3),(2,a2,a3,a6)};   s2={(1,a3,a6,a9),(2,a3,a6,a7)};   at=a7.   2.从s2中取两个元素,或者从s1、s2中各取一元素.得到的两元素设为x1,x2.用函数F1和F2分别对x1.r和x2.r(即两个元素的第四维)进行计算,结果分别为r1,r2,得到相应四元组xx1=(1,e1,e2,r1)和xx2=(2,e1,e2,r2).   3.如果r1=at或者r2=at,则运算成功结束.转入步骤5获取函数表达式;   如果s1,s2中不存在元素x,使得x.r=r1或x.r=r2,则将该四元组放入ss2中,否则转入步骤2直至运算完所有满足条件的元素组合.   4.如果ss2为空,则运算以失败告终,即找不到满足条件的Φ的形式;   如果ss2不为空集.则将s2中的所有元素移入s1中,将ss2的中元素移入s2中,相当于运算   s1=s1+s2,s2=ss2,ss2=Φ(空集),   然后转到步骤2,继续运算.   5.假设步骤2得到了ri=at(i=1,2),则得到表达式at=Fi(e1,e2)(i=1,2).   6.如果at的表达式中存在元素ej(比如对步骤5中at的表达式中e1进行验证),存在元素x属于s1或s2,满足条件   x.r=ej(j=1,2),且x.f!=0(特号"!="表示“不等于”),   则将at表达式中的ej替换为表达式Fk(x.e1,x.e2),这里Fk分别由x.f=1或2而取F1或F2.   如果ej不存在,则当前at的表达式就是Φ的最终表达式.   注:以上算法能得到at的一个表达式,但at表达式不是唯一的.以上算法得到的是一种最简表达式(最简表达式也可能不是唯一的).   以上算法容易在计算机上编程实现.这里手动计算一下:   初始化   s1={(0,0,0,a1),(0,0,0,a2),(0,0,0,a3),(2,a2,a3,a6)};   s2={(1,a3,a6,a9),(2,a3,a6,a7)};   at=a7.   由初始条件已有表达式Φ=F2(F1(a1,a2),F2(a2,a3)).
点击显示
数学推荐
热门数学推荐
  • 语文
  • 数学
  • 英语
  • 科学
  • 作文