将列表元素分配给变量

时间:2011-11-23 18:41:44

标签: list wolfram-mathematica variable-assignment

Mathematica的输出具有以下操作FactorInteger[28851680048402838857]如下:

{{3897424303, 1}, {7402755719, 1}}

我的问题是:如何提取两个素数(没有指数)并将它们分配给任意变量?

我基本上想要检索两个素数,无论它们是什么,并为它们分配一些变量。

例如:x0 = 3897424303x1 = 7402755719

谢谢!

2 个答案:

答案 0 :(得分:7)

输出是一个列表,您可以使用list manipulating functions之类的Part ([[ ]])来挑选您想要的部分,例如,

{x0, x1} = FactorInteger[28851680048402838857][[All, 1]]

或,没有Part

{{x0,dummy}, {x1,dummy}} = FactorInteger[28851680048402838857];

答案 1 :(得分:4)

您的问题中隐含的是处理从FactorInteger等函数返回的表达式的部分问题。请允许我建议替代方案。

1。将所有值保存在{list}中,并使用Part访问每个元素:

x = First /@ FactorInteger[7813426]
{2, 31, 126023}
x[[1]]
x[[3]]
2
126023

2。将因子存储为函数 x的值,模仿数组的索引:

(此代码使用MapIndexedFunction。)

Clear[x]

MapIndexed[
  (x[First@#2] = First@#1) &,
  FactorInteger[7813426]
];

x[1]
x[3]
2
126023

您可以使用???查看所有值(请参阅Information):

?x
Global`x

x[1]=2

x[2]=31

x[3]=126023