我有一个生成2个解x1,x2的二次方程,每个解又生成两个新解。这种情况一直持续到无限。
我试图实现此目的的方法是使用向量r = [x1,x2]作为输入参数的例程。并使用parallel for循环来计算下一个2。
不幸的是,循环仅继续执行r []的第一个解决方案。
代码如下:
r=[1,2];
axyz=fileopen("myfile","w");
test(r)={
parfor(i=1,2,r[i],c,
if(c<>1,filewrite(axyz,c);
test([x1(c),x2(c)]))
);
}
test(r);
不需要写文件,可以用打印代替。
问题: 是否可以确保第二种解决方案也得到处理? 这样该函数扩展为生成所有解的无限解树。
答案 0 :(得分:0)
使用parfor
将无法实现您想要的。我建议使用深度优先搜索。您的代码不完整(缺少x1,x2的定义),因此以下代码未经测试-旨在显示必要的更改。
r=[1,2];
axyz=fileopen("myfile","w");
test(r,level)={
for(i=1,2,my(c=r[i]);
if(c<>1,if(level==0, filewrite(axyz,c),
test([x1(c),x2(c)], level-1))
);
}
for(level=0, oo, test(r, level));