List 在Mathematcia中操作表(或列表)

List 在Mathematcia中操作表(或列表),list,wolfram-mathematica,List,Wolfram Mathematica,出于科学目的(代码研究),我使用Mathematica枚举一些线性重复出现的所有周期序列。例如,命令 Table[{Mod[i * 2^n + j * 4^n + k * 6^n, 7] },{i, 0, 5}, {j, 0, 5}, {k, 0, 5}, {n, 0, 5}] 允许使用根为2、4和6的特征多项式枚举7阶(或mod 7)有限域中线性递归序列的所有216个不同周期序列。它产生的前五个序列是: {0, 0, 0, 0, 0, 0}, {1, 6, 1, 6, 1, 6}, {2,

出于科学目的(代码研究),我使用Mathematica枚举一些线性重复出现的所有周期序列。例如,命令

Table[{Mod[i * 2^n + j * 4^n + k * 6^n, 7] },{i, 0, 5}, {j, 0, 5}, {k, 0, 5}, {n, 0, 5}]
允许使用根为2、4和6的特征多项式枚举7阶(或mod 7)有限域中线性递归序列的所有216个不同周期序列。它产生的前五个序列是:

{0, 0, 0, 0, 0, 0}, {1, 6, 1, 6, 1, 6}, {2, 5, 2, 5, 2, 5}, {3, 4, 3, 4, 3, 4}, {4, 3, 4, 3, 4, 3}, …
我有两个问题:

i) 当
i=0,j=0,k=0时,得到第一个序列
第二个当
i=0,j=0,k=1,
第三个当
i=0,j=0,k=2,
等。是否有办法将这些数字与它们生成的序列连接起来,以便我了解这些参数,从而能够在以后(如果需要)生成特定序列?也就是说,我希望输出像这样

{{0, 0, 0, 0, 0, 0}, {0, 0, 0}},  {{1, 6, 1, 6, 1, 6}, {0, 0, 1}},  {{2, 5, 2, 5, 2, 5}, {0, 0, 2}} , etc.
ii)在上述示例中(三阶线性递归和mod 7),获得的序列数量(216)可手动管理;但当线性递推的阶数大于3且场的特征值大于7时,这个数增长非常快。在这种情况下,我对产生的大多数序列都不感兴趣。我想,如果我可以添加一条指令来读取输出(获得的序列),并说“我只想要序列,使其元素的乘积为216(比如)”:从上面的五个序列中只
{1,6,1,6,1,6},我至少可以扔掉99%我不感兴趣的序列
将保留,因为1x6x1x6x1x6=216$;或者,“我只希望序列的元素的乘积是216或1000(比如)”,因为1x6x1x6x1x6x6=216和2x5x2x2x2x5=1000,所以上述五个序列中的
{1,6,1,6}
{2,5,2,5,5}
将保持不变

有可能这样做吗?我尝试了一些列表和表格操作,但没有成功


提前谢谢你。

这是第一部分

Flatten[Table[{Table[Mod[i*2^n + j*4^n + k*6^n, 7], {n, 0, 5}], {i, j,
     k}}, {i, 0, 5}, {j, 0, 5}, {k, 0, 5}], 2]
{{0,0,0,0,0,0},{0,0,0},{{1,6,1,6,1,6},{0,0, 1}}, {{2, 5, 2, 5, 2, 5}, {0, 0, 2}}, {{3, 4, 3, 4, 3, 4}, {0, 0, 3} }

更好的方法:

{Table[Mod[#.{2, 4, 6}^n, 7], {n, 0, 5}],#} & /@ Tuples[Range[0, 5], {3}]
使用指定产品查找案例的示例:

Reap[Do[
        s = Table[Mod[i*2^n + j*4^n + k*6^n, 7], {n, 0, 5}]; 
        If[Times @@ s == 81, Sow[{s, {i, j, k}}]],
     {i, 0, 5}, {j, 0, 5}, {k, 0, 5}]][[2, 1]]
{{3,3,1,3,3,1},{1,2,0},{{3,1,3,3,1,3},{2,1, 0},{{1,3,3,1,3,3},{4,4,0}


欢迎使用StackOverflow。请添加到目前为止您尝试过的内容,以及您遇到的问题使您无法继续。我已经知道收割/播种命令,但我完全忘记了。谢谢!这很好!这正是我需要的。谢谢。