level 5
codrw
楼主
R = 4 ;a=4049;b=5987;
A = IntegerDigits[a, R]
B = IntegerDigits[b, R]
Z = NestWhile[Delete[#, 1] &,
MapThread[If[#1 ==
#2, #
1, 0] &, PadLeft[{A, B}]], #[[1]] == 0 &]
两个集合由于长度不同,不能直接做运算。现在如何修改代码使得末位对齐的情况下,在长度较小的集合最前面加前置0,完成两个集合的求交运算
A={3, 3, 3, 1, 0, 1}= {0,a5,a4,a3,a2,a1,a0}
B={1, 1, 3, 1, 2, 0, 3}={b6,b5,b4,b3,b2,b1,b0}
Z={0,0,3,0,0,0,0}
这里的求交运算看作多项式的系数,运算规则:在次数相同的情况下,ai=bi, zi=ai; ai≠bi,zi=0
如果我现在要求两个集合的并运算 ,W=A+B-Z=ai+bi-zi
W={1,4,3,4,3,0,4}
这个并运算怎么写代码
2021年06月24日 12点06分
1
A = IntegerDigits[a, R]
B = IntegerDigits[b, R]
Z = NestWhile[Delete[#, 1] &,
MapThread[If[#1 ==
#2, #
1, 0] &, PadLeft[{A, B}]], #[[1]] == 0 &]
两个集合由于长度不同,不能直接做运算。现在如何修改代码使得末位对齐的情况下,在长度较小的集合最前面加前置0,完成两个集合的求交运算
A={3, 3, 3, 1, 0, 1}= {0,a5,a4,a3,a2,a1,a0}
B={1, 1, 3, 1, 2, 0, 3}={b6,b5,b4,b3,b2,b1,b0}
Z={0,0,3,0,0,0,0}
这里的求交运算看作多项式的系数,运算规则:在次数相同的情况下,ai=bi, zi=ai; ai≠bi,zi=0
如果我现在要求两个集合的并运算 ,W=A+B-Z=ai+bi-zi
W={1,4,3,4,3,0,4}
这个并运算怎么写代码