序章

皆さんこんにちは!タカモリです。

私はこれまでPHPやJavaScriptなどのWEB系プログラミングを中心に、「サイトを作る」ということに取り組んで参りました。しかし最近学習を始めた基本情報技術者試験において今までの私のプログラミングには足らなかったものを補っていかなければならないと痛感いたしました。

そう。。それが数学ですw

そこで、これからは中学校の数学まで遡りプログラミングに関係しそうな数学について、ブログにその学習記録を残していきたいと思います。

なお、使用言語はpythonで記述していきたいと思います。 数学と言えばpythonでしょう!・・・いや、実は基本情報にpythonがあったので選択しました。

何故資格はPHPではなくpythonなのか・・・ というわけで数学とpythonという私にとって新しい2つのことについてこれから学習していきたいと思っていますのでよろしくお願いいたします?‍♂️

なおpythonとは言いながらもwebばっかりやってきた関係でDjangoを利用して書いていきたいと思いますのでよろしくお願いいたします。 なおpythonはDjangoの環境構築を昔にしたことがあるくらいで、記述したことはありませんので初心者です。

なおDjangoの環境を構築したい方はこちらの記事を参考にしてください。 僕はこちらで爆速で構築しました!!(自分の記事) Django3.2(python)+MySQLをDockerで環境構築する

ちなみに機械学習や数学で何故pythonが使われるのかというと、数学に関連したライブラリが豊富にあることがその理由のようです。 これ豆な!!

倍数の個数を求める

中学校の最初の方の学習に、整数の性質というものがあります。 その中には素因数分解や、最大公約数・最小公倍数など名前は聞いたことあるけど記憶の片隅の方に追いやられた知識がたくさんあるかと思われます。

例えば皆さんはこの問題に回答することができるでしょうか?

Q 2桁の自然数のうち3の倍数は何個ありますか?

ちなみに倍数とは、その数を整数倍した数というみたいですが実例としては以下のようになります。 2の倍数なら2 4 6 8 3の倍数なら3 6 9 12となります。

今回は2桁の自然数の中の倍数なので、10から99までの数に3の倍数がいくつあるのかということになります。 単純に数えていけば良いですが流石に、面倒くさいので計算してみます。

これは1以上99以下の3の倍数から、1以上9以下の3の倍数を引くことで計算できそうです。 ちなみに3の倍数はその数から3を割ることで計算できます。

ではまず99から3を割りましょう。すると33ですね!なので1から99までの間に3の倍数は33個あります。 続いて1から9までの倍数はいくつあるでしょうか?これは3つありそうですね!

なので、33から3を引いた30個が2桁の自然数の中にある3の倍数の数になりそうです。

A 30個

プログラムで求めてみる

では続いてこの式をプログラムしてみたいと思います。

    # 1~99までの数の中の倍数の数
    motonokazu1 = 99
    warukazu1 = 3
    baisuunokazu1 = motonokazu1 / 3

    # 1~9までの数の中の倍数の数
    motonokazu2 = 9
    warukazu2 = 3
    baisuunokazu2 = motonokazu2 / 3
    
    # 1~99までの3の倍数から1~9の倍数を引く
    baisuunokosuu = baisuunokazu1 - baisuunokazu2

更に別の方法も調べてみました

# 別の方法で記述
    i = 10
    baisuunokosuu2 = 0
    while i <= 99:
        baisuunokosuu2 += 1
        i = i + 3
    
    # 更に別の方法で記述
    baisuunokosuu3 = 0
    for i in range(10, 99, 3):
        baisuunokosuu3 += 1

pythonで記述するのは不慣れで合ってるか正直わからないのですが、一応動作している模様。笑

スクリーンショット 2022-04-23 14.48.26.png

スクリーンショット 2022-04-23 14.48.04.png

スクリーンショット 2022-04-23 14.48.15.png

ちなみにpythonでは小数点以下を切り捨てるためにはmathモジュールを利用するみたいですね。勉強になります。

まだまだpythonも数学もわからないことだらけですが、ぼちぼち学習していきたいと思います。