Estoy usando NestWhileList en una situación donde a menudo alcanza el 'número máximo de evaluaciones'. Después de conseguir algunos resultados curiosos, me echó un vistazo más de cerca cómo NestWhileList
reacciona a tener un número máximo de resultados se especifica:Mathematica: argumento Grokking 'número máximo de evaluaciones' para `NestWhileList`
Table[{nmax,
[email protected][
(* f: nesting function *) Identity,
(* initial state *) 1,
(* test function *) False &,
(* m: of arguments for test *) 1,
(* nmax: max # applications of f *) nmax,
(* n: extra evaluations *) 1]}, {nmax, 0, 2}];
ToString[TableForm[%,
TableHeadings -> {None, {"nmax", "output length"}}]]
La parte sorprendente es que nmax=1
se destaca: Aquí f
se aplica 2 veces, mientras que para todos los demás valores, sólo se aplica una vez:
nmax output length
0 2
1 3
2 2
las evaluaciones adicionales '' parecen ser parte del problema. Dejando que la opción de salir da resultados mucho más razonables:
Table[{nmax,
[email protected][
(* f: nesting function *) Identity,
(* initial state *) 1,
(* test function *) False&,
(* m: of arguments for test *) 1,
(* max: max # applications of f *) nmax]},{nmax,0,2}];
ToString[TableForm[%,TableHeadings->{None, {"nmax","output length"}}]]
Out[123]=
nmax output length
0 1
1 1
2 1
Mi pregunta: ¿Tiene esto de alguna manera tiene sentido, o es sólo un error?
Gracias Michael: pensé que esta era la forma más sencilla de hacerlo :) – Janus
No hay problema, y gracias por señalarlo. Siempre puede enviar errores por correo electrónico a [email protected] también, si lo prefiere. –