俊远 发表于 2020-8-17 22:45:12

pow函数

pow(2,-3,3)输出为2 怎么解释 刚学 谢谢!

sunrise085 发表于 2020-8-17 22:58:50

请给出你的完整程序
这句话是不可能得到2的。应该会报错

永恒的蓝色梦想 发表于 2020-8-17 23:31:20

pow 有三个参数的时候第二个参数不应该为负数,输出将是一个奇怪的值。

俊远 发表于 2020-8-18 10:58:11

永恒的蓝色梦想 发表于 2020-8-17 23:31
pow 有三个参数的时候第二个参数不应该为负数,输出将是一个奇怪的值。

ok 这个我知道 但是他输出这个没想明白了解

俊远 发表于 2020-8-18 10:58:44

sunrise085 发表于 2020-8-17 22:58
请给出你的完整程序
这句话是不可能得到2的。应该会报错

不会报错

永恒的蓝色梦想 发表于 2020-8-18 11:15:49

俊远 发表于 2020-8-18 10:58
ok 这个我知道 但是他输出这个没想明白了解

百度快速幂取模

yaiger 发表于 2020-8-18 11:23:17

>>> pow(2,-3,3)
SyntaxError: invalid character in identifier
>>> pow(2,-3)
0.125

sunrise085 发表于 2020-8-18 13:04:19

本帖最后由 sunrise085 于 2020-8-18 13:05 编辑

俊远 发表于 2020-8-18 10:58
不会报错

就这么不舍得发你的代码啊。。。
就这一句话,谁知道到底是怎么一回事儿啊
正常情况下是应该报错的

pow(2,3,3)
这句的结果才是2,2^3%3=8%3=2

既然这么不愿意说你的程序,那就算了

yaiger 发表于 2020-8-18 13:33:13

估计是自己看错了不好意思说吧,也没什么技术含量的问题,算了吧

俊远 发表于 2020-8-18 14:44:10

sunrise085 发表于 2020-8-18 13:04
就这么不舍得发你的代码啊。。。
就这一句话,谁知道到底是怎么一回事儿啊
正常情况下是应该报错的


。。。。版本不同 我用的3.85 输出是2

俊远 发表于 2020-8-18 14:53:35

俊远 发表于 2020-8-18 14:44
。。。。版本不同 我用的3.85 输出是2

就是pow(2,-3,3)

bangbang-ande 发表于 2020-8-18 21:29:36

这个官网上有:
https://docs.python.org/zh-cn/3/library/functions.html#pow
3.8之后都可以了

bangbang-ande 发表于 2020-8-18 21:30:07

这是3.8.5的新特性

bangbang-ande 发表于 2020-8-18 21:36:37

官方文档写了
并且我试过了,是ok的
是这样的:
首先先计算2的-3次方,但由于是小数,所以将它倒数过来,在mod3
所以计算过程长这样:
1÷(a^b)%3

sorry,等级不到,发不了图片

dotaless 发表于 2020-8-18 21:54:02

3.8.5版本的话,pow 第二个参数如果是负数,会按正数计算。实际计算的是pow(2,3,3)。你可以验证几个pow(2,-4,3) ==1,pow(2,-1,3)==3.

bangbang-ande 发表于 2020-8-18 21:56:58

dotaless 发表于 2020-8-18 21:54
3.8.5版本的话,pow 第二个参数如果是负数,会按正数计算。实际计算的是pow(2,3,3)。你可以验证几个pow(2,-4 ...

好像3.8就可以了

bangbang-ande 发表于 2020-8-18 21:59:51

以图为证{:10_256:}

俊远 发表于 2020-8-20 21:58:03

dotaless 发表于 2020-8-18 21:54
3.8.5版本的话,pow 第二个参数如果是负数,会按正数计算。实际计算的是pow(2,3,3)。你可以验证几个pow(2,-4 ...

谢谢

俊远 发表于 2020-8-20 21:58:38

bangbang-ande 发表于 2020-8-18 21:56
好像3.8就可以了

谢谢
页: [1]
查看完整版本: pow函数