long的奇怪Python3 mod行為

考慮一下這個(gè)代碼片段。

>>> n, m = 10011617, 100000000000006340
>>> s = lambda n: n * (n + 1) / 2
>>> s(n)
50116242483153.0
>>> s(n) == int(s(n))
True
>>> m % s(n)
18096246116101.0
>>> m % int(s(n))
18096246116105

如您所見(jiàn),s(n)是一個(gè)整數(shù)(數(shù)學(xué)上),而m % s(n) != m % int(s(n))

這可能與s(n)m是一個(gè)長(zhǎng)期的秘密有關(guān)嗎?即使是這樣,s(n) == int(s(n))為什么當(dāng)我取模時(shí),結(jié)果不相等?

P、 我在repl.it里查過(guò)這個(gè)

? 最佳回答:

在這種特殊情況下,問(wèn)題更多地是由于m而不是s(n)。在計(jì)算m % s(n)時(shí),由于s(n)是一個(gè)浮點(diǎn)數(shù),m被強(qiáng)制為浮點(diǎn)數(shù)。但是--float(m)失去了精確性。最清楚的方法就是

m == 100000000000006340

but

int(float(m)) == 100000000000006336

注意,100000000000006336 % 50116242483153 == 18096246116101,它顯示了神秘值的來(lái)源。

主站蜘蛛池模板: 国产三级一区二区三区| 色欲AV蜜桃一区二区三| 风间由美性色一区二区三区| 国产拳头交一区二区| 国产免费私拍一区二区三区| 无码人妻久久一区二区三区蜜桃 | 久久综合亚洲色一区二区三区| 无码人妻精品一区二区在线视频| 久久精品一区二区国产| 亚洲国产精品一区二区三区在线观看 | 伊人无码精品久久一区二区| 国产精品福利一区二区久久| 亚洲丶国产丶欧美一区二区三区| 免费高清在线影片一区| 精品一区二区三区四区电影| 久久国产午夜精品一区二区三区| 久久精品岛国av一区二区无码| 国产伦精品一区二区免费 | 日韩精品电影一区亚洲| 日本道免费精品一区二区| 乱色精品无码一区二区国产盗| 国产SUV精品一区二区四| 国产情侣一区二区三区| 福利一区在线视频| 福利在线一区二区| 国产一区高清视频| 精品国产AⅤ一区二区三区4区| 一区二区三区波多野结衣| 久久AAAA片一区二区| 精品人妻少妇一区二区| 国产亚洲情侣一区二区无码AV| 精品少妇ay一区二区三区 | 中文字幕人妻无码一区二区三区 | 国产福利一区二区三区| 精品人妻一区二区三区浪潮在线| 人妻体体内射精一区二区| 亚洲一区二区三区高清| 亚洲AV一区二区三区四区 | 91视频一区二区| 国产精品香蕉一区二区三区| 国产女人乱人伦精品一区二区|