majian890324 发表于 2020-5-8 10:18:45

心态崩了呀~~2的N次幂到底是啥意思呀?

https://fishc.com.cn/thread-168287-1-1.html

我昨天发个贴子求助,然后最简单的方法就是:

print(round(0.01*(2**30-1),2))

就可以得出结果,为啥呀?这个不应该用for循环才能得出结果吗?

我昨天做梦都是在算数,我滴神呀!大佬们救救我吧,帮我解释一下为啥用2的N次幂-1就能得到结果呢?还有就是为啥要-1呢?有啥用啊!

PS:我感觉我要被数学题弄疯了,看来我真的是要搞两本小学数学课本先学习一下了!哎!

wuqramy 发表于 2020-5-8 10:22:00

2的N次幂就是指把2乘N次

weiter 发表于 2020-5-8 10:22:18

2的2次幂 = 2 x 2
2的3次幂 = 2 x 2 x 2

heidern0612 发表于 2020-5-8 10:23:19

本帖最后由 heidern0612 于 2020-5-8 10:24 编辑

为啥要用for循环?for循环应该循环什么?……

你不都是每天在头一天的基础上增加一倍吗?

这不就是古代宰相请国王送米那个故事吗?

给个链接了解下:戳我前进

weiter 发表于 2020-5-8 10:23:57

wuqramy 发表于 2020-5-8 10:22
2的N次幂就是指把2乘N次

你是不是表达错了……
是自乘

sunrise085 发表于 2020-5-8 10:35:00

这是个数学问题,不是编程的事儿
1=2-1
1+2=4-1
1+2+4=8-1
1+2+4+8=16-1
1+2+4+8+16=32-1
……
2^0+2^1+2^2+……+2^n=2^(n+1) - 1
2的n次幂求和得到的就是2的(n+1)次幂减一

majian890324 发表于 2020-5-8 11:15:50

sunrise085 发表于 2020-5-8 10:35
这是个数学问题,不是编程的事儿
1=2-1
1+2=4-1


哦,我明白了,刚才百度了一下,这是一个公式,2的N次幂求和公式就是2的n次幂减一,

如果就是每天都是前一天的5倍的话就是5的N次幂减一

谢谢老板~~~突然想起之前数学老师上课说的一句话:不要问这个公式是为什么,照着套公式就就行,哈哈,豁然开朗呀!!

majian890324 发表于 2020-5-8 11:16:38

heidern0612 发表于 2020-5-8 10:23
为啥要用for循环?for循环应该循环什么?……

你不都是每天在头一天的基础上增加一倍吗?


谢谢大佬,我明白啦,这个就是个数学公式,3QQQ

sunrise085 发表于 2020-5-8 11:25:56

majian890324 发表于 2020-5-8 11:15
哦,我明白了,刚才百度了一下,这是一个公式,2的N次幂求和公式就是2的n次幂减一,

如果就是每天都是 ...

这个公式只对2有效,5的话,就不对了

majian890324 发表于 2020-5-8 11:27:45

sunrise085 发表于 2020-5-8 11:25
这个公式只对2有效,5的话,就不对了

嗯嗯,谢谢大佬~{:5_98:}
页: [1]
查看完整版本: 心态崩了呀~~2的N次幂到底是啥意思呀?