お久しぶりです。意識高い系バカです。

 

めちゃくちゃ忙しいわけでもなく、多少のレポートと簡単なテストに追われてました。

 

簡単にできるTwitterの活動のほうは続けておりまして、気軽に投稿したものがバズってめちゃくちゃビビッております。Z世代でもネットはよくわからんです。

 

この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++への理解さえあればこんなプログラムも簡単に組めるようになります。

 

要約すると、一見だるい義務教育の内容も最新の生産性が高いものにつながっています。

義務教育は案外大切です。