自己紹介|はじめてのnote
はじめまして、しがないプログラマBです。
現在大学で情報学の勉強をしている学生です。
成績は…まあ、「しがない」を自称している時点でお察しください()。
自己紹介はこれくらいにして、私がこのnoteで発信していこうと思っている、「面白い」プログラミングについて話していこうと思います。
「面白い」プログラミングとは
「面白い」プログラミングとは、基礎的なプログラミング知識と少しの発想力から作る簡単なシステムのことです。
プログラミングの基礎を身に着けた後、いきなり仕事レベルのシステムを開発しようとしたり、高度な技術に挑戦したりすると、(私のように)挫折を経験してしまうことがあります。
そこで、自分が「こんなシステムがあったらいいな」と思うものを、それを持ち合わせている知識の範囲内で実装することによって、プログラミングの基礎を固めながら、開発力を養おうとすることが、この「面白い」プログラミングの目的です。
だた、せっかく開発し公開するのですから、ありふれたものを作っていても面白くありません。ちょっとした工夫を加えることで注目を集め、かつプログラミング初学者でも分かりやすいようなコードで実装することによって、多くの人から面白いと言ってもらえるようなものを作って行きたいなと思っています。
歪なコイン
そんな思いから作った最初のコードがこちらです。
import random
#勝率probabilityパーセントのコイントスの結果を出す関数
def flip(probability):
if (random.random() < probability):
return 'H'
else:
return 'T'
#10回分の試行結果を出力する
probability = random.random()
test = []
for i in range(10):
test.append(flip(probability))
print(test)
#次のコインの予想をしてもらい、その結果と実際の確率を表示する
# H または T を標準入力で受け付ける
prediction = input("next?:").strip()
if(prediction == flip(probability)):
print("True")
else:
print("False")
print("Probability = " + str(probability))
このコードの概要は、表(H)と裏(T)の確率が不明なコインの過去10回の試行結果から、次が表か裏かを予測するプログラムになっています。
予測のセオリーは過去10回の試行で多いものを選ぶという非常にシンプルなものですが、最後に実際の確率も表示することによって、「この確率なのに下振れ過ぎ!」だったり、「このコイン、壊れてない?」といった試行結果と確率の差を見比べ楽しむことができます。
使用した Python の知識も基礎的なものばかりで、わからずとも調べることですぐに仕様を理解できるようなものばかりです。
・関数
・リスト
・ループ
・条件分岐
・標準入力
・random モジュール
最後に
いかがでしたでしょうか。プログラミングってこんな遊び方もあるんだ、と思ってくれた人が一人でもいたら作った甲斐があったなと思います。
今後も定期的にこのような面白いと思えるようなコードを投稿していこうと思っていますので、見ていただけると嬉しいです。
この記事が参加している募集
この記事が気に入ったらサポートをしてみませんか?