Python(数と式)

2026年1月11日 (日)

[R]剰余を求める

%%演算子を使う。ベクトルでまとめて処理することもできる。

> 6 %% 3
[1] 0
> 7 %% 3
[1] 1
> 8 %% 3
[1] 2
> 9 %% 3
[1] 0
> 0:9 %% 3
[1] 0 1 2 0 1 2 0 1 2 0

[R]整商を求める

整数a, b(!= 0)において、a = b q + r (0 <= r < |b|)となる整数q, rがただ一組存在し、このqを、aをbで割ったときの整商という。整商を求めるには%/%演算子を使う。ベクトルでまとめて処理することもできる。

> 4 %/% 3
[1] 1
> 5 %/% 3
[1] 1
> 6 %/% 3
[1] 2
> 7 %/% 3
[1] 2
> 0:9 %/% 3
[1] 0 0 0 1 1 1 2 2 2 3

2025年9月25日 (木)

[R]累乗を求める

^演算子を使う。^演算子はベクトルを操作する:演算子より優先順位が高いため、最後の例では、指数の箇所を括弧( )で囲んでいる。

> 10 ^ 2
[1] 100
> 2 ^ 0.5
[1] 1.414214
> 2 ^ (0:8)
[1] 1 2 4 8 16 32 64 128 256

2025年7月18日 (金)

[R]小数点以下の四捨五入を行う

round関数を使う。JIS Z 8401に基づくいわゆる偶数丸めであることに注意。

> d <- c(0.4, 0.5, 0.6, 1.4, 1.5, 1.6)
> for (i in 1:length(d))
+ cat(sprintf("%f -> %f\n", d[i], round(d[i])))
0.400000 -> 0.000000
0.500000 -> 0.000000
0.600000 -> 1.000000
1.400000 -> 1.000000
1.500000 -> 2.000000
1.600000 -> 2.000000
> d <- c(-0.4, -0.5, -0.6, -1.4, -1.5, -1.6)
> for (i in 1:length(d))
+ cat(sprintf("%f -> %f\n", d[i], round(d[i])))
-0.400000 -> -0.000000
-0.500000 -> -0.000000
-0.600000 -> -1.000000
-1.400000 -> -1.000000
-1.500000 -> -2.000000
-1.600000 -> -2.000000

2025年2月16日 (日)

[Python]小数点以下の切り上げを行う

mathモジュールのceil関数を使う。厳密には、引数に与えた数値より大きい最小の整数を返すことに注意。

>>> import math
>>> ds = [0.4, 0.5, 0.6, 1.4, 1.5, 1.6]
>>> for d in ds:
... print(f"{d} -> {math.ceil(d)}")
...
0.4 -> 1
0.5 -> 1
0.6 -> 1
1.4 -> 2
1.5 -> 2
1.6 -> 2
>>> ds = [-0.4, -0.5, -0.6, -1.4, -1.5, -1.6]
>>> for d in ds:
... print(f"{d} -> {math.ceil(d)}")
...
-0.4 -> 0
-0.5 -> 0
-0.6 -> 0
-1.4 -> -1
-1.5 -> -1
-1.6 -> -1

2025年2月15日 (土)

[Python]小数点以下の切り捨てを行う

mathモジュールのtrunc関数を使う。引数に与えた数値の小数点以下を、強制的に切り捨てていると考えればよい。

>>> ds = [0.4, 0.5, 0.6, 1.4, 1.5, 1.6]
>>> for d in ds:
... print(f"{d} -> {math.trunc(d)}")
...
0.4 -> 0
0.5 -> 0
0.6 -> 0
1.4 -> 1
1.5 -> 1
1.6 -> 1
>>> ds = [-0.4, -0.5, -0.6, -1.4, -1.5, -1.6]
>>> for d in ds:
... print(f"{d} -> {math.trunc(d)}")
...
-0.4 -> 0
-0.5 -> 0
-0.6 -> 0
-1.4 -> -1
-1.5 -> -1
-1.6 -> -1

似たような機能を持つfloor関数もあるが、こちらは小数点以下を強制的に切り捨てているのではなく、引数に与えた数値を超えない最大の整数を返すことに注意。つまり、負数の場合はtrunc関数とfloor関数では動作が異なる。

>>> import math
>>> ds = [0.4, 0.5, 0.6, 1.4, 1.5, 1.6]
>>> for d in ds:
... print(f"{d} -> {math.floor(d)}")
...
0.4 -> 0
0.5 -> 0
0.6 -> 0
1.4 -> 1
1.5 -> 1
1.6 -> 1
>>> ds = [-0.4, -0.5, -0.6, -1.4, -1.5, -1.6]
>>> for d in ds:
... print(f"{d} -> {math.floor(d)}")
...
-0.4 -> -1
-0.5 -> -1
-0.6 -> -1
-1.4 -> -2
-1.5 -> -2
-1.6 -> -2

2025年2月13日 (木)

[Python]小数点以下の四捨五入を行う

round関数を使う。JIS Z 8401に基づくいわゆる偶数丸めであることに注意。

>>> ds = [0.4, 0.5, 0.6, 1.4, 1.5, 1.6]
>>> for d in ds:
... print(f"{d} -> {round(d)}")
...
0.4 -> 0
0.5 -> 0
0.6 -> 1
1.4 -> 1
1.5 -> 2
1.6 -> 2
>>> ds = [-0.4, -0.5, -0.6, -1.4, -1.5, -1.6]
>>> for d in ds:
... print(f"{d} -> {round(d)}")
...
-0.4 -> 0
-0.5 -> 0
-0.6 -> -1
-1.4 -> -1
-1.5 -> -2
-1.6 -> -2
無料ブログはココログ

■■

■■■