In between the years, a PISA question (nothing essential): The last digit of 7^190

5 次查看(过去 30 天)
Last digit of 7^190, I thought a simple question if you have Matlab. But
fprintf('%f\n',7.0^190.0)
reports 4 as last digit, but it must be an odd number. 7^190 is fare away from realmax. Why that? It's not a big issue, only for my understanding.
  1 个评论
Stephen23
Stephen23 2023-12-28
编辑:Stephen23 2023-12-28
"7^190 is fare away from realmax"
REALMAX is irrelevant.
The value is well above FLINTMAX (so, as the documentation states, your value is outside the range of consecutive integer values), so there is no expectation that your value will be represented accurately down to the ones:

请先登录,再进行评论。

采纳的回答

Paul
Paul 2023-12-28
Well, if 7^190 is larger than realmax, then using double precison won't work to just try to compute it. You could try the Symbolic Math Toolbox. Or do some analysis and see the pattern in the last digit of 7^n for increments of n, and then figure out where the pattern would be for n == 190.
  16 个评论
Rik
Rik 2023-12-29
Though Steven is technically correct that realmax is the largest integer that can be represented by a double, stating this is not helpful, as people will misinterpret it. Realmax does represent an integer, but since multiple numbers will map to realmax, its uses are limited. If you want to guarantee the correct last digit, flintmax is the limit.
There have been efforts to implement the quad datatype in Matlab, though to my knowledge that didn't reach a practical state. That would push flintmax to 2^113-1 (if I understand it correctly). Still not enough for this question, but a lot better.
Alexander
Alexander 2023-12-29
Dear All, thank you very much for the many answeres which were helpful to understand this item. Also thank you for the link above and
Happy New Year

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Logical 的更多信息

标签

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by