teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

3

追記

2019/06/22 15:12

投稿

hayataka2049
hayataka2049

スコア30939

answer CHANGED
@@ -18,4 +18,10 @@
18
18
 
19
19
  でも問題の制約で負にはならないですね。なので、この理由ではなさそうです。
20
20
 
21
- 本当の理由については検討中。
21
+ ~~本当の理由については検討中。~~
22
+
23
+ LouiS0616さんの回答にある通り、floatの有効桁数の絡みのはずです。
24
+
25
+ pythonのfloatは内部的には64bit浮動小数点数型で、10進数としての有効桁数は15桁です。ですから、10^18なんて桁数の数字は正確には表せません。
26
+
27
+ 一方整数型は任意精度演算をサポートしますので、問題の扱うレンジの数字を正確に表現でき、演算結果も正確なものが得られるのだと思います。

2

追記

2019/06/22 15:12

投稿

hayataka2049
hayataka2049

スコア30939

answer CHANGED
@@ -14,4 +14,8 @@
14
14
  >>> -10//3
15
15
  -4
16
16
 
17
- ```
17
+ ```
18
+
19
+ でも問題の制約で負にはならないですね。なので、この理由ではなさそうです。
20
+
21
+ 本当の理由については検討中。

1

追記

2019/06/22 15:07

投稿

hayataka2049
hayataka2049

スコア30939

answer CHANGED
@@ -6,7 +6,7 @@
6
6
  > / (除算: division) および // (切り捨て除算: floor division) は、引数同士の商を与えます。数値引数はまず共通の型に変換されます。整数の除算結果は浮動小数点になりますが、整数の切り捨て除算結果は整数になります; この場合、結果は数学的な除算に 'floor' 関数 を適用したものになります。
7
7
  > https://docs.python.org/ja/3/reference/expressions.html#binary-arithmetic-operations
8
8
 
9
- とりあえず一つ確実に思いつく違いを挙げておくと、負値のときは違う挙動になるでしょう。
9
+ とりあえず一つ確実に思いつく違いを挙げておくと、演算結果が負値のときは違う挙動になるでしょう。
10
10
 
11
11
  ```python
12
12
  >>> int(-10/3)