JavaScript/Math/pow

カテゴリ:Book:JavaScript#Math/pow%20

Math.pow(x, y) は、xy 乗を返します。これは、xy 回掛けた値を返します[1]

  • 引数 xNaN の場合、NaN を返します。
  • 引数 yNaN の場合、NaN を返します。
  • 引数 x+0 かつ y が正の場合、+0 を返します。
  • 引数 x-0 かつ y が正の場合、-0 を返します。
  • 引数 x+0 かつ y が負の場合、Infinity を返します。
  • 引数 x-0 かつ y が負の場合、-Infinity を返します。
  • 引数 x1 の場合、1 を返します。
  • 引数 y+0 の場合、1 を返します。
  • 引数 y-0 の場合、1 を返します。
  • 引数 xInfinity かつ y が正の場合、Infinity を返します。
  • 引数 xInfinity かつ y が負の場合、+0 を返します。
  • 引数 x-Infinity かつ y が正の場合、-Infinity を返します。
  • 引数 x-Infinity かつ y が負の場合、-0 を返します。
  • 引数 x1 かつ yInfinity の場合、NaN を返します。
  • 引数 x1 かつ y-Infinity の場合、NaN を返します。

べき乗を計算するプログラム

以下のプログラムは、ユーザーが入力した値のべき乗を計算します。

const f = p => {
  for (;;) {
    a = prompt(`${p}は何ですか?`);
    if (!isNaN(a))
      return a;
    alert(`${p}に、入力ミスがあります。 "${a}"`);
  }
}

for (;;) {
  const x = f("値1");
  const y = f("値2");
  const pow = Math.pow(x, y);
  if (!isNaN(pow)) {
    alert(`${x}${y} 乗は ${pow.toFixed(3)} です。`);
    break;
  }
  alert("入力が大きすぎます。");
}

このプログラムでは、Math.pow を使用して値のべき乗を計算しています。ユーザーが入力した値が NaNInfinity の場合、適切に処理されます。

べき乗関数のグラフを描画するプログラム

以下のプログラムは、べき乗関数のグラフを描画します。

const canvas = document.createElement('canvas');
document.body.appendChild(canvas);
const ctx = canvas.getContext('2d');
canvas.width = 800;
canvas.height = 400;

const xScale = canvas.width / 10;
const yScale = canvas.height / 100;

ctx.beginPath();
ctx.moveTo(0, canvas.height);

for (let x = 0; x <= 10; x += 0.1) {
  const y = Math.pow(x, 2);
  const canvasX = x * xScale;
  const canvasY = canvas.height - y * yScale;
  ctx.lineTo(canvasX, canvasY);
}

ctx.strokeStyle = 'blue';
ctx.lineWidth = 2;
ctx.stroke();

このプログラムでは、Math.pow を使用してべき乗関数のグラフを描画しています。xScaleyScale は、グラフのスケーリングを調整するための変数です。

注意点

  • 引数の範囲: Math.pow の引数 xy は、任意の数値を指定できますが、x が負で y が整数でない場合、NaN が返されます。
  • 戻り値の範囲: Math.pow の戻り値は、-Infinity から Infinity の範囲です。
  • 精度: 浮動小数点演算の特性上、Math.pow の結果には微小な誤差が含まれることがあります。

脚註

  1. これは、数学的には として定義されます。

外部リンク

カテゴリ:Book:JavaScript#Math/pow%20 カテゴリ:JavaScript
カテゴリ:Book:JavaScript カテゴリ:JavaScript カテゴリ:Pages using the JsonConfig extension