三角形数字的序列是通过将自然数相加而生成的。因此,第7 个三角数将是1+2+3+4+5+6+7 = 28。前十个术语为:1, 3, 6, 10, 15, 21, 28, 36, 45, 55。前四个三角形中包含的因子是:
1: 1
3: 1, 3
6: 1, 2, 3, 6
10: 1, 2, 5, 10
Run Code Online (Sandbox Code Playgroud)
我们看到这6是第一个具有四个除数的三角形。
为了找到第一个三角数超过500的除数,我编写了以下代码:
1: 1
3: 1, 3
6: 1, 2, 3, 6
10: 1, 2, 5, 10
Run Code Online (Sandbox Code Playgroud)
我想使用parfor而不是for在外循环上加快此代码的速度。但是,我得到了错误:
错误:变量s1可能旨在作为归约变量,但实际上是未初始化的临时变量。
请参见MATLAB中的Parallel for Loops,“拟为归约变量的临时变量”。
如何并行化此代码?