ホーム > ブログ
2016年07月21日(木) [ 日報 ]

Scratch で素因数分解と約数♪

素数とは、1と、その数でしか割ることができない数のことを言います。その素数は、今日のセキュリティ技術を支える根幹でもあります。
今回は、素数自体が題材ではなく、素因数分解と約数についてです。

約数は、その数で割れる数であります。その単純な判定方法は、その数を1から変えていき、割り切れる数を列挙する方法です。
たとえば、10 という数の約数を求める場合、10 ÷ 1 = 10 , 10 ÷ 2 = 5 , 10 ÷ 3 = 3.333・・・ , 10 ÷ 9 = 1.111・・・ , 10 ÷ 10 = 1 という感じです。
ですが、その数が大きな数になると、とてもそのような計算で求めることは不可能になります。

素因数分解は、その数を素数の割り算に分解することです。一般的に、素因数分解は、その数のルート(平方根)以下の数で割ることで求めることができます。
その数の約数は、その数のルート(平方根)以下の数とその数を平方根以下の数で割った数のペアを求めることにより、その数の約数を求めることができます。
例えば、10 の約数を求める場合、10 の平方根は、3.15227766・・・となり、3 までの数で求めることになります。

1 は、10 で割り切れるので、その掛ける数 10 とのペア
2 は、10 で割り切れるので、その掛ける数 5 とのペア
3 は、10 で割り切れないの、約数ではない

単純な判定方法だと、10回繰り返し計算しないといけないですが、素因数分解を用いた方法だと、3回繰り返し計算すれば、求めることができます。

※ 素因数分解については、Wikipedia をご参照ください。

今回は、単純な判定の方法(ねこさん)と素因数分解を用いた方法(さかなさん)の二種類の方法で約数を求めるプログラムを作成しました。その数が大きい場合は、素因数分解を用いた方法が早く列挙するのが見えてわかると思います。

素因数分解と約数

 
Scratch サイトに、公開をしましたので、こちらをごらんください。

LINE@お友だち募集中です(≧▽≦) 
2時間無料の登録特典もお見逃しなく(^_-)-☆
 
☆.。.:*・゚☆.。.:*・゚☆.。.:*・゚☆.。.:*・゚☆.。.:*・゚☆.。.:*・゚☆.。.:*・゚☆.。.:*・゚☆.。.:*・゚☆.。.:*・゚☆.。.:*・゚☆.。.:*・゚☆.。.:*・゚☆.。.:*・゚
 

プログラミング教室 受講生
電子工作教室 体験受講 
募集中です(*^-^*)


子どもプログラミング教室をご参照ください!!!

電子工作教室は、体験受講募集中です。
土曜、日曜日の午前中に行っております(要予約)

ご関心をお持ちの方は、ぜひお問い合わせを(#^^#)

 

☆.。.:*・゚

2016年07月19日(火) [ 日報 ]

Node-RED で温湿度計測 bcm2835

Node-RED で温湿度センサー(DHT-11) を使って温湿度を取得するスクリプトとして、以下のコードをよく紹介されている。


var sensorLib = context.global.dht;
sensorLib.initialize(11, 4);

var readout = sensorLib.read();
var temperature readout.temperature.toFixed(2);
var humidity = readout.humidity.toFixed(2);
context.global.data.d.humidity = humidity;
context.global.data.d.temperature = temperature ;

でも、連続して使用していると


bcm2835_init: gpio mmap failed: Cannot allocate memory

というようにメモリ確保に失敗するエラーが出力されて、Node-RED を停止させてしまうことがある。
その対策として、以下のようにコードを変更することで、メモリ確保のエラーは改善されます。


var sensorLib = context.global.dht;

var readout = sensorLib.readSpec(11,4);
var temperature readout.temperature.toFixed(2);
var humidity = readout.humidity.toFixed(2);
context.global.data.d.humidity = humidity;
context.global.data.d.temperature = temperature ;

2016年07月14日(木) [ 日報 ]

Raspberry Pi3 NOOBS 文字化け

Raspberry Pi3 で使用する OS は、Raspbian ですが、そのインストールを行うのに、NOOBS を使います。
NOOBS を使ってインストールする際に、インストール画面を日本語で表示することができるので、インストールしたら日本語が使えると思ったら、文字化けをしていました。

Raspbian 文字化け

コマンドプロンプト(ターミナル)で以下のコマンドを実行して、再起動したら文字化けが解消されます。

sudo apt-get install ttf-kochi-gothic ttf-kochi-mincho xfonts-intl-japanese xfonts-intl-japanese-big xfonts-kaname

Raspbian 文字化け 解消

LINE@お友だち募集中です(≧▽≦) 
2時間無料の登録特典もお見逃しなく(^_-)-☆
 
☆.。.:*・゚☆.。.:*・゚☆.。.:*・゚☆.。.:*・゚☆.。.:*・゚☆.。.:*・゚☆.。.:*・゚☆.。.:*・゚☆.。.:*・゚☆.。.:*・゚☆.。.:*・゚☆.。.:*・゚☆.。.:*・゚☆.。.:*・゚
 

プログラミング教室 受講生
電子工作教室 体験受講 
募集中です(*^-^*)


子どもプログラミング教室をご参照ください!!!

電子工作教室は、体験受講募集中です。
土曜、日曜日の午前中に行っております(要予約)

ご関心をお持ちの方は、ぜひお問い合わせを(#^^#)

 

2016年07月11日(月) [ 日報 ]

Scratch でsin波で矩形波♪~フーリエ級数~デジタル信号処理

「フーリエ級数とは、一見、複雑な周期波形でも、単純な周期波形の足し合わせによって、再現することができる。」

それを、デジタル信号処理で扱えるようにしたのが、フーリエ展開になります。今回は、フーリエ展開をするのではなく、単純は周期波形(正弦波 SIN 波形)を足し合わせて、方形波を作ろうということで、プログラムを実装しました。

SIN波形で矩形波

プログラムでは、SIN 波形の振幅、周期、位相を指定することで波形を合成するプログラムを作りました。
さて、上手に方形波をつくることができるかな?!

 
Scratch サイトに、公開をしましたので、こちらをごらんください。

フーリエ級数について、くわしくは、Wikipediaをご参照ください。

LINE@お友だち募集中です(≧▽≦) 
2時間無料の登録特典もお見逃しなく(^_-)-☆
 
☆.。.:*・゚☆.。.:*・゚☆.。.:*・゚☆.。.:*・゚☆.。.:*・゚☆.。.:*・゚☆.。.:*・゚☆.。.:*・゚☆.。.:*・゚☆.。.:*・゚☆.。.:*・゚☆.。.:*・゚☆.。.:*・゚☆.。.:*・゚
 

プログラミング教室 受講生
電子工作教室 体験受講 
募集中です(*^-^*)


子どもプログラミング教室をご参照ください!!!

電子工作教室は、体験受講募集中です。
土曜、日曜日の午前中に行っております(要予約)

ご関心をお持ちの方は、ぜひお問い合わせを(#^^#)

 

☆.。.:*・゚

バックナンバー

アクセス

長岡京コワーキングスペース
長岡京市開田4-2-9 ヘルプビル3F
(長岡自動車教習所前)
● 阪急電車長岡天神駅より徒歩2分
● JR長岡京駅より徒歩15分

フロアマップ

フロアマップ

営業カレンダー