2024-03-29 11:13:37 发布
网友
简单问题: 为什么(7**3) ** 24 % 25几乎没有时间运行,但是7 ** 3 ** 24 % 25没有终止?你知道吗
(7**3) ** 24 % 25
7 ** 3 ** 24 % 25
指数群from right to left。你知道吗
因此,7 ** 3 ** 24被评估为7 ** 282429536481(硬),而(7**3) ** 24只是343 ** 24(简单)。你知道吗
7 ** 3 ** 24
7 ** 282429536481
(7**3) ** 24
343 ** 24
作为一个有趣的旁注:CPython,它有一个窥视孔优化,能够优化掉“容易”的情况下不断折叠。但“硬性”的情况只涉及到折叠3 ** 24。你知道吗
3 ** 24
>>> def foo(): return 7 ** 3 ** 24 % 25 ... >>> def bar(): return (7**3) ** 24 % 25 ... >>> dis.dis(foo) 2 0 LOAD_CONST 1 (7) 3 LOAD_CONST 5 (282429536481) 6 BINARY_POWER 7 LOAD_CONST 4 (25) 10 BINARY_MODULO 11 RETURN_VALUE >>> dis.dis(bar) 2 0 LOAD_CONST 7 (1L) 3 RETURN_VALUE
指数群from right to left。你知道吗
因此,
7 ** 3 ** 24
被评估为7 ** 282429536481
(硬),而(7**3) ** 24
只是343 ** 24
(简单)。你知道吗作为一个有趣的旁注:CPython,它有一个窥视孔优化,能够优化掉“容易”的情况下不断折叠。但“硬性”的情况只涉及到折叠
3 ** 24
。你知道吗相关问题 更多 >
编程相关推荐