ITエンジニア ノイのブログ

ITエンジニアのノイです。 YouTubeで ITエンジニアのお勉強という学習用の動画を公開しています。チャンネル登録お願いします!https://m.youtube.com/channel/UCBKfJIMVWXd3ReG_FDh31Aw/playlists

べき乗の書き方

べき乗

Pythonのべき乗の計算の書き方をまとめます。いろいろな言語で書いているとごっちゃになってしまいますよね。。。

べき乗演算子 「**」

# 2の3乗を計算する
result = 2 ** 3
print(result)  # 出力: 8

# 10の2乗を計算する
result = 10 ** 2
print(result)  # 出力: 100

# 浮動小数点数のべき乗も計算できる
result = 1.5 ** 2
print(result)  # 出力: 2.25

べき乗演算子 ** は、底と指数の両方が整数でも浮動小数点数でも機能します。負の指数もサポートされています。

pow() 関数

pow() 関数は、べき乗を計算するための組み込み関数です。この関数は、指定された基数(底)と指数を使用してべき乗を計算します。pow() 関数の一般的な構文は次のとおりです。

pow(base, exponent[, modulus])
  • base: 基数(底)の値
  • exponent: 指数の値
  • modulus(オプション): 指定された場合、計算結果をこの値で割った余りが返されます

実装例

# 2の3乗を計算する
result = pow(2, 3)
print(result)  # 出力: 8

# 10の2乗を計算する
result = pow(10, 2)
print(result)  # 出力: 100

# 浮動小数点数のべき乗も計算できる
result = pow(1.5, 2)
print(result)  # 出力: 2.25

# 指定したmodulusで割った余りを計算する
result = pow(3, 4, 5)
print(result)  # 出力: 1 (3の4乗を5で割った余り)

pow() 関数は ** 演算子と同様の結果を返しますが、pow() 関数はオプションの modulus 引数を受け取ることができ、結果を剰余で返すことができます。また、pow() 関数は整数や浮動小数点数のべき乗だけでなく、複素数のべき乗もサポートしています。

余計な事(C言語

ごっちゃにさせる余計なことを書きます。

pow() 関数

C言語では、標準ライブラリの math.h ヘッダーファイルに含まれる関数を使用してべき乗を計算することができます。pow() 関数は、math.h ヘッダーファイルで提供されています。

以下に pow() 関数を使用してべき乗を計算する例を示します。

#include <stdio.h>
#include <math.h>

int main() {
    double base = 2.0;
    double exponent = 3.0;
    double result = pow(base, exponent);

    printf("%.2f%.2f乗は%.2fです。\n", base, exponent, result);

    return 0;
}

この例では、pow() 関数を使用して baseexponent 乗を計算し、結果を result 変数に格納しています。printf() 関数を使用して計算結果を表示します。

シフト演算

シフト演算は、ビット単位での左シフト(<<)と右シフト(>>)の2つの演算子を使用して行われます。これらの演算子は、整数型の変数のビットを指定された数だけ左または右にシフトする操作を実行します。

  • 左シフト演算 (<<) 指定された数だけビットを左にシフトし、右側には0を埋めます。これにより、シフトされたビットの値が2倍になります。

  • 右シフト演算 (>>) 指定された数だけビットを右にシフトします。符号付き整数の場合、左側のビットは符号ビット(MSB)と同じ値で埋められます(算術右シフト)。符号なし整数の場合、左側のビットは常に0で埋められます(論理右シフト)。

シフト演算の例

#include <stdio.h>

int main() {
    unsigned int x = 5; // 二進数表記では 00000101

    // 左シフト
    unsigned int leftShifted = x << 2;
    printf("左シフト結果: %u\n", leftShifted); // 出力: 20 (00010100)

    // 右シフト
    unsigned int rightShifted = x >> 1;
    printf("右シフト結果: %u\n", rightShifted); // 出力: 2 (00000010)

    return 0;
}

上記の例では、x の値を2ビット左にシフトした結果を leftShifted に格納し、x の値を1ビット右にシフトした結果を rightShifted に格納しています。それぞれのシフト結果を出力しています。

シフト演算はビット単位の操作であるため、データのビットパターンを変更することになります。整数の倍増や半減、ビットフラグの設定・解除、高速な掛け算や割り算の代替など、さまざまな用途で利用されます。特にC言語で記述する必要がある組込みマイコンではマイコンのメモリを節約したり、プロダクトの性質上、リアルタイム性が求められることが多いので、演算に時間がかかる乗除算はこのような高速で演算ができる手法がとられることがよくあります。

余計な事(べき乗演算を ^2 で表現)

R言語の例

# ^2 を使用してべき乗を計算する例
x <- 3
result <- x^2
print(result)  # 出力: 9

# もう一つの例
y <- 2.5
result <- y^2
print(result)  # 出力: 6.25

この例では、^ 演算子を使用して x^2 を計算し、結果を result 変数に格納しています。同様に、実数の場合も ^ 演算子を使用して y^2 を計算しています。

Excelの例

エクセルでは、べき乗を計算するために POWER 関数を使用します。POWER 関数は、指定された数値を指定された指数で累乗します。

POWER関数の一般的な構文
POWER(number, power)
  • number: 累乗の元となる数値
  • power: 指数の値

エクセルで POWER 関数を使用してべき乗を計算する例を示します。

A1: 2
A2: 3
A3: =POWER(A1, A2)

この例では、A1 セルに基数となる数値(2)を入力し、A2 セルに指数の値(3)を入力しています。そして、A3 セルに =POWER(A1, A2) という数式を入力しています。エクセルはこの数式を評価し、A1 の値を A2 乗した結果を A3 セルに表示します。この場合、A3 セルの値は 8 となります。

POWER 関数は負の指数や小数点の指数もサポートしています。また、POWER 関数の代わりに ^ 演算子を使用することもできます。

A3: =A1^A2

同じ結果が得られます。

youtu.be