お久しぶりです。意識高い系バカです。
めちゃくちゃ忙しいわけでもなく、多少のレポートと簡単なテストに追われてました。
簡単にできるTwitterの活動のほうは続けておりまして、気軽に投稿したものがバズってめちゃくちゃビビッております。Z世代でもネットはよくわからんです。
意識高い系バカ@kutidakeseizinSixTONESが主題歌やるからスパイダーマン見ようとしてる方は一旦これ読んでください!結構スパイダーマン好きのためのスパイダーマン好きによるMCUの映画なので予習作品がとても多いです…。各スパイダーマンの特徴や俺がオススメする見… https://t.co/IgyJEh6NMu
2021年11月28日 13:47
このTwitterで気になるツイートを見かけました。
内容としては「一次関数(など)なんて理解しないでもっと最新の教育をすべきだ」というものです。
マーケティングやプログラミングを最新の教育といっていたので、さらに気になりました。
プログラミングって一次関数使うよね???
ってなわけで今回は一次関数というより「関数」の苦手意識をなくせるような記事を書いていきます!
実は関数はこの世にあふれかえっています。数学の世界だけでなくもうほんとにそこらへんに転がっています。小学生でも使えます。
さてここで問題です。
太郎君はリンゴを1個持っています。太郎君は八百屋に行って1袋5個入りのリンゴを2袋買いました。
いま、太郎君はリンゴを何個持っていますか?
(解答)
1+5×2=11
11個
です。めっちゃ簡単ですよね。じゃあこれを中学校で習う一次方程式、
y = ax +b
の形にしていきましょう!
まず、問題の最後を読んでください。
「いま、太郎君はリンゴを何個持っていますか?」
つまり、リンゴの所持数さえわかればいいのです。
これが求めたい数なんです!求めたいものをyに置き換えます。意味が分からなくても置き換えてください。
1+5×2= y
簡単のため右と左を入れ替えます。
y = 1+5×2
次にかけ算の関係を探します。
「1袋5個入りのリンゴを2袋」
の部分ですね。
一袋の個数×袋の数=リンゴの個数(仮)
ですね!
この問題の性質上一袋の個数は絶対に変わらないことがわかります。
なのでこれが比例定数になります!aですね。
ということは袋の数がxになります。
置き換えてみましょう。
y = 1+ ax
あとは最初から持っている1個をbに置き換えれば、
y = ax + b
になりますね。
この形は一次方程式ですが、
x次第でyの値が一つ求まるというのが一次関数です。
あんな簡単な問題も一次関数で構成されていることがわかります。
ここで最新教育としてプログラミングをひとつまみしていきます。
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main() {
int you, com;
char janken[3][7] = { "グー","チョキ","パー" };
int ai = 0;
int ka = 0;
int ma = 0;
srand((unsigned)time(NULL));
printf("さいしょはグー、ジャンケン...\n");
while (1) {
printf("対応する数字キーを押してください\n0:グー 1:チョキ 2:パー 3:ゲーム終了\n");
scanf("%d", &you);
if (you != 0 && you != 1 && you != 2 && you != 3) {
printf("指定された数字以外を入力しないでください。\n");
continue;
}
com = rand() % 3;
if (you == 0 || you == 1 || you == 2) {
printf("あなた\t%s\nコンピュータ\t%s\n\n", janken[you], janken[com]);
}
else if (you == 3) {
printf("ゲームを終了します。\nあいこ%d回\n勝ち%d回\n負け%d回", ai, ka, ma);
break;
}
if (you == com) {
printf("あいこで\n\n");
ai = ai + 1;
continue;
}
else if ((you + 1) % 3 == com) {
printf("あなたの勝ち!\n\n");
ka = ka + 1;
continue;
}
else {
printf("あなたの負け!\n\n");
ma = ma + 1;
continue;
}
}
return 0;
}
はい、じゃんけんができるプログラムです。ビジュアルスタジオで実行してみてください。
C++ができない方でもある程度分かりやすいものになっているかと思います。
ここには関数があふれています。
勝敗を判定する関数。
勝敗をカウントするもの。
色々あります。
関数とちょっとしたC++への理解さえあればこんなプログラムも簡単に組めるようになります。
要約すると、一見だるい義務教育の内容も最新の生産性が高いものにつながっています。
義務教育は案外大切です。