プログラミング入門

プログラミング初心者のためのScratch(スクラッチ)入門-3つの累乗テクニック

プログラミング初心者の子供に何を教えたらいいの?とお悩みの保護者のためのScratch(スクラッチ)の入門講座。
今回はScratchで知っておきたい3つの累乗テクニックをお届けします。

 

1. 累乗計算をScratchでプログラミング

幾何学模様を作りたいときなど、ときどき累乗をScratchで使いたいことがあります。基本的には掛け算ブロックを入れ子にすればいいのですが、5乗、6乗とかける回数がおおくなると、大変なことも。そんな時に使えるテクニックをご紹介します。
 

1-1. 累乗って何?

累乗は、同じ数をかけることです。例えば「2の3乗」なら

という計算になります。また、Excelや他のプログラミング言語では累乗を「^」という記号で表記することが一般的です。
2^3と書いてあったら2の3乗のことです。

また2の3乗の2の部分を基数3の部分を指数といいます。
そして、Scratchには累乗を計算するブロックがありません。
Scratchで累乗を使う方法をご紹介します。
 

1-2. Scratchで累乗を表現する方法

Scratchで累乗を表現するには3種類の方法があります。
 ・掛け算ブロックを入れ子にする
 ・繰り返しを使う
 ・対数を使う

具体的なやり方を一つづつ解説しますね。
 

2. 累乗を掛け算ブロックの入れ子で作る

2の3乗(2^3)をScratchの掛け算ブロックで作るには、掛け算ブロックを次のように入れ子にします。

掛け算ブロックの中に、さらに掛け算ブロックを入れます。

数字を入れて、クリックすると計算結果が吹き出しで表示されます。このとき一番外側のブロックをクリックしてくださいね。

 
2^3=8の計算ができました。
指数(2^3であれば、3が指数)が小さい時はこの方法が楽ですね。

 

3. 累乗を掛け算を繰り返しで作る

指数が大きいときはどうしたらいいでしょうか?
たとえば2^10では掛け算ブロックをたくさん使うことになるので、ブロックの個数を間違えてしまいそうです。
そんなときには繰り返しを使ってみましょう。

繰り返しを使うときには、計算結果を保存するために変数を使います。今回は「計算結果」という変数を作りました。

5の3乗(5^3)を計算するプログラム

青丸の「5」は5の3乗(5^3)の基数、つまり5を入れます。
赤丸の「2」の部分は「指数から位置を引いた値」(3-1=2)を入れます。

このブロックの塊をクリックすると、プログラムが実行されて計算が行われます。計算結果の中身はこうなります。

5^3=125の計算ができましたね。
 

4. 対数を使う

Scratchでは次のような対数に関連したブロックがあるので、これを使って累乗の計算をしてみたいと思います。

まず対数の定義は次のようになります。

実際に数字を入れてみるともうちょっとわかりやすいかもしれません。

logとか出てきて難しそうですが、そういう風に書くことにする!と決めただけなんだと思ってください。Scratchで使用できるブロックのlogとlnですが、bの部分が10とeという特殊な数字のとき

と表記します。

2の3乗(2^3)をlogもしくはlnを使って求めてみましょう。2の3乗の答えがxだとします。

この式は、「底の変換公式」という公式を使って次のように書き換えることができます。

なお、上記の式のnは2以上の自然数であれば何を入れてもOKです。

上の赤枠の部分を変形します。

この続きは2つのパターンがあるので、「4-1. もしnに10を入れた場合」「4-2. もしnに10を入れた場合」でそれぞれ続きを解説します。
 

4-1. もしnに10を入れた場合

先ほどの式のnには何を入れてもいいのですが、Scratchのブロックを使うためにnに10を入れてみましょう。(nを10にすればScratchのブロック「log●」が使えるので。)

これを対数の定義に当てはめると、次の関係となります。

右辺をScratchのブロックで表してみましょう!

ぴったり8にはなりませんでしたが、約8という計算結果を得ることができました。ぴったり8にしたい場合は四捨五入ブロックを使いましょう。

答えが8になりましたね。これがScratchのブロック「log●」を使った累乗の計算方法です。

 

4-2. もしnに10を入れた場合

こんどはnにeという特殊な数字を使うことにします。logeはlnと表記するので、

これを対数の定義に当てはめると、次の関係となります。

右辺をScratchのブロックで表してみます。

ぴったり8にはなりませんでしたが、約8という計算結果を得ることができました。

 

4-3. 定義ブロックを使おう

もし、累乗をよく使いそうなプログラムを作るときは定義ブロックを用意しておけばわかりやすいですね。

▼定義ブロックの作成例

▼上の定義ブロックの使用例

2の3乗(2^3)を計算して、答え=計算結果をスプライトがしゃべります。

▼実行結果

なお、変数に入れた数値は小数点第二位までに四捨五入されるので、ネコは「8.00」と言います。

5. 累乗テクニックまとめ

累乗の方法は3種類ありました。
 ・掛け算ブロックの入れ子
 ・繰り返しを使う方法
 ・対数を使う方法

それぞれの難易度とデメリットはこちらです

累乗の計算をどうしよう!?というときにはこの表をみて、適切な方法を選んでくださいね。

伴野悠佳 / YUKA TOMONO
この記事の著者伴野悠佳 / YUKA TOMONO
キッズプログラミング講師。東京理科大学大学院卒。元SE。小学生の頃から教育書を読んでいた教育ヲタク。大学では、電池の素材の性質について実験とコンピューターシミュレーションを比較する研究を行っていたことがきっかけでSEになる。出産&育休後、子ども向けプログラミング教室講師(現職)に。