偶是Mathematica初级,只会这样的
本帖最后由 hujunhua 于 2011-2-14 15:43 编辑n=Input[请输入n]
FactorExponent = Apply, {1}]
Apply, {1}]
输入1800时的显示结果
1800
{8, 9, 25}
{1, 8, 9, 25, 72, 200, 225, 1800}
估计Wayne与人合写的那本关于Mathematica的书正适合我这样层次的人看吧。 Clear["Global`*"];(*清除所有变量*)
n=10!;(*被求的整数*)
fj=FactorInteger;(*分解因式*)
p=fj[] (*提取第一列素数*)
d=fj[] (*提取第二列指数*)
q=p^d (*各个互质的部分*)
q1={q} (*由向量形成只有一行的矩阵*)
q2=Transpose (*形成列向量矩阵*)
mm=q2.q1(*做矩阵乘法*)
tra=UpperTriangularize(*取对角线以上元素,不包含对角线*)
tranew=Flatten (*使得矩阵形成一个表*)
Select (*只选取大于零的元素*)这是我按照我的思路写的代码,但是还没完成,当然我也不准备向下写了,
我也不知道如何按照我的思路才能完成,刚看到wayne的代码,
觉得他的思路真是远超过我的思维,
简直就是外星人! 哎 wayne的对mathematica的掌握程度,远远超过了我,
第二个代码我知道他是按照我的那个思路写的,但是
到现在为止,我还没搞明白那个代码的意思,真是高手呀! wayne对mathematica的程度真是到了出神入化的地步,真的不是我辈所能赶上的!!!! 说实话,我欣赏wayne的第二个代码,第一个代码其实很简单,就是能不能想到的问题,第二个代码真是很牛!
真的很有水平! Times @@@ Subsets] 15# mathematica
我也说句实话,第二个代码我基本上是不假思索,不加润色斟酌,一下子写出来的。如果这样写出来的代码都把你给雷住了的话,那hujunhua在16楼的最完美的代码你该怎么评价呢??? 本帖最后由 wayne 于 2011-2-14 12:32 编辑
11# hujunhua
估计Wayne与人合写的那本关于Mathematica的书正适合我这样层次的人看吧。
那本书是他一个人写的,呕心沥血,折腾了无数次的。
除了那个封面,我没有作任何贡献
============
老大内功深厚,悟性奇高,耍起武器来 也仅仅是个时间和经验积累的问题。
我觉得那书不适合于任何人看 Times @@@ Subsets]
hujunhua 发表于 2011-2-14 11:57 http://bbs.emath.ac.cn/images/common/back.gif
@@@是什么意思呢?
我知道@是prefix的意思
@@是apply的意思,
但是@@@=@(@@),还是@@@=(@@)@呢?
还是@@@上面的两个都不等于呢?
如果都不等于,那是什么意思呢? 15# mathematica
我也说句实话,第二个代码我基本上是不假思索,不加润色斟酌,一下子写出来的。如果这样写出来的代码都把你给雷住了的话,那hujunhua在16楼的最完美的代码你该怎么评价呢???
wayne 发表于 2011-2-14 12:26 http://bbs.emath.ac.cn/images/common/back.gif
人水平还是有高低的,也许将来我的水平变高了就不会那么看了.
当然你的mathematica的函数掌握得比我多很多,这会有利于编程的
当然,其实还是那些写mathematica软件的人的水平高!
hujunhua在16楼的代码也很好!