NestWhile

NestWhile[f,expr,test]

expr 开始,然后重复应用 f 直到 test 不再得到 True 为止.

NestWhile[f,expr,test,m]

将最近的 m 个结果作为每一步 test 的参数.

NestWhile[f,expr,test,All]

将所有结果作为每一步 test 的参数.

NestWhile[f,expr,test,m,max]

f 应用最多 max 次.

NestWhile[f,expr,test,m,max,n]

f 应用额外的 n 次.

NestWhile[f,expr,test,m,max,-n]

返回在 f 已被使用少于 n 次时所找到的结果.

更多信息

  • NestWhile[f,expr,test] 返回当 test 不为 True 的第一个表达式 f[f[ f[expr]]].
  • 如果 test[expr] 不为 TrueNestWhile[f,expr,test] 返回 expr. »
  • NestWhile[f,expr,test,m] 在每一步计算 test[res1,res2,,resm]. 它不将结果 resi 放在一个列表中. »
  • resi 以它们生成的顺序给出,最近的放在最后.
  • 直到生成至少有 m 个结果时,NestWhile[f,expr,test,m] 才开始应用 test.
  • 直到生成至少有 mmin 个结果时,NestWhile[f,expr,test,{mmin,m}] 才开始应用 test. 然后它在每一步为test 提供不超过 m 的尽可能多的最近结果作为参数. »
  • NestWhile[f,expr,test,m] 等价于 NestWhile[f,expr,test,{m,m}]. »
  • NestWhile[f,expr,UnsameQ,2] 等价于 FixedPoint[f,expr]. »
  • NestWhile[f,expr,test,All] 等价于 NestWhile[f,expr,test,{1,Infinity}]. »
  • NestWhile[f,expr,UnsameQ,All] 不断应用 f 直至相同结果首次出现不止一次.
  • NestWhile[f,expr,test,m,max,n]test 失败或 max 个应用程序执行之后将 f 额外使用 n 次. »
  • NestWhile[f,expr,test,m,max,-n] 等价于 Part[NestWhileList[f,expr,test,m,max],-n-1]. »
  • 如果可能的话,NestWhile[f,expr,test,m,Infinity,-1] 返回序列 exprf[expr]f[f[expr]] 中的最后一个表达式,对这个表达式 test 得到 True.

范例

打开所有单元关闭所有单元

基本范例  (2)

连续除 2 直到结果不再是个偶数为止:

对数迭代直到结果不再为正:

范围  (5)

比较产生的最后两个值:

通常比较产生的所有值:

在 4 次迭代后开始比较,用最后 4 个值比较:

在 4 次迭代后开始比较,用最后 6 个值比较:

在最多 4 次迭代后停止,即使测试返回 True

推广和延伸  (2)

连续执行直到结果不再大于 1:

在条件不为 True 后, 执行不止一步:

当条件还是 True 时,返回最后一个值:

应用  (3)

求 888 后的下一个素数:

求出 888 后的孪生素数:

求一百万以上的第一个 Fibonacci 数的指针:

求一百万以下的最后一个 Fibonacci 数的指针:

属性和关系  (5)

这两个形式相等:

如果条件为任何非 TrueNestWhile 返回:

条件的结果不一定是 TrueFalse

FixedPoint 通常比较最后两个值;这两个形式是相等的:

NestWhileList 应用相同的停止规则,但返回所有产生的值:

NestWhile 可以表示成一个 While 循环:

Wolfram Research (1999),NestWhile,Wolfram 语言函数,https://reference.wolfram.com/language/ref/NestWhile.html.

文本

Wolfram Research (1999),NestWhile,Wolfram 语言函数,https://reference.wolfram.com/language/ref/NestWhile.html.

CMS

Wolfram 语言. 1999. "NestWhile." Wolfram 语言与系统参考资料中心. Wolfram Research. https://reference.wolfram.com/language/ref/NestWhile.html.

APA

Wolfram 语言. (1999). NestWhile. Wolfram 语言与系统参考资料中心. 追溯自 https://reference.wolfram.com/language/ref/NestWhile.html 年

BibTeX

@misc{reference.wolfram_2024_nestwhile, author="Wolfram Research", title="{NestWhile}", year="1999", howpublished="\url{https://reference.wolfram.com/language/ref/NestWhile.html}", note=[Accessed: 21-November-2024 ]}

BibLaTeX

@online{reference.wolfram_2024_nestwhile, organization={Wolfram Research}, title={NestWhile}, year={1999}, url={https://reference.wolfram.com/language/ref/NestWhile.html}, note=[Accessed: 21-November-2024 ]}