データサイエンス/06
をテンプレートにして作成
LECTURE
担当科目一覧
コンピュータ概論/2024
データサイエンス/2024
3DCG演習/2024
情報デザイン研究/2024
卒業研究/2024
KEYWORDS
WEB DESIGN
SOCIAL DESIGN
SQUARES
LINKS
九州産業大学
芸術学部
芸術研究科
九産大美術館
九産大図書館
年間スケジュール
動画ニュース他
交通情報
気象・環境情報
危機に備えて
K'sLife
Office365Mail
Tools
SEARCH
開始行:
*第6回 Python プログラミング2
[[データサイエンス/2024]]|[[受講生一覧>https://design.ky...
~
~
**はじめに
***前回の復習
#image(Total_ChatGPT.jpg,right,40%)
前回、コードの書き方の事例として挙げた「1から100までの整...
#clear
~
***プログラミングスキルの向上に向けて
-はじめにサンプルを「真似」て、コードの意味を1行づつ確認
-プログラムの一部を改変して、予想通りの結果になるか確認
-自分で新たな「問い(処理の仕様)」を考えて、それをコーデ...
-様々なバグに出会い、それを修正する
ChatGPT等の生成系AIの登場によって、Web上の参考事例を探す...
~
~
**Pythonプログラミングの具体例
***モジュールの import について
Python には、様々な既存の機能が「ライブラリ」というかたち...
import math # 数学関数を利用する場合に読み込みま...
import random # 乱数を利用する場合に読み込みます。
~
~
**演習6:MonteCarloMethod
***モンテカルロ法とは
計算機を使った数値計算手法の一つで、乱数を用いた試行を繰...
~
***円周率 π の値を求めるプログラム
大量の乱数データから、円周率 π の近似値を統計的に求める手...
#image(https://upload.wikimedia.org/wikipedia/commons/c/c...
&scale(75){[[Wikimediacommons File:Montecarlo pi2.PNG>htt...
-一辺の長さを r とする正方形の面積を S とし、その正方形の...
Q = π*r*r / 4
S = r*r
よって、Q / S = ( π*r*r / 4 ) / ( r*r ) = π/4
-すなわち、以下の関係式が得られます。
π = Q / S * 4
-正方形の「枠内」に一様な乱数を使って「雨を降らせる」と
正方形全体に降る雨粒の数:4分円の中に降る雨粒の数 ≒ S:Q
となり、雨粒の数が多くなれば、S:Q の比率に一致します。
-これを利用することで
π = 4分円の中に降る雨粒の数 / 正方形全体に降る雨粒の数 ...
というかたちで、π の近似値を求めることができます。
~
***開発準備
-Google Colaboratory で ''ファイル> ノートブックを新規作...
-Untitled0.ipynb というファイル名を変更 > MonteCarloMeth...
-テキストセルを追加して、ノートの冒頭にタイトルをつけまし...
~
***ソースコード
以下のコードをまるごとコードセルにコピー&ペーストして下...
# ライブラリの読み込み
import math
import random
# 初期化
n = 1000
cnt_in = 0
cnt_out = 0
# シミュレーション
for i in range(n):
# 0.0 - 1.0 のランダムな「雨粒」
x = random.random()
y = random.random()
# 4分円の中に落ちた数をカウント
r = math.sqrt(x**2 + y**2)
if r <= 1.0:
cnt_in += 1
else:
cnt_out += 1
# 円周率の近似値
Pi = cnt_in / n * 4
# 結果の表示
print("Num:", n)
print("IN:", cnt_in)
print("OUT:", cnt_out)
print("Pi:", Pi)
~
***実行
-コードセルで実行ボタン「▶︎」をクリックすると実行されます。
-結果は、コードセルの直下に表示されます。
このプログラムは乱数を使っていて、結果はその都度変わりま...
-n の初期値を大きくしていくと、結果が 3.14 に近づくことを...
~
***学科サイトにリンク掲載
「モンテカルロ法で π の近似値を求める」プログラムのノート...
-1. 自分のノートを開いた状態で、右上の「共有」をクリック
-2. 共有設定を変更して、以下のように表示される状態にしま...
このリンクを知っているインターネット上の全員が閲覧できま...
-3. 「リンクをコピー」をクリックして、そのアドレスを、以...
-[[MonteCarloMethod>https://colab.research.go・・=sharin...
-4. 以下のようになればOKです。
https://design.kyusan-u.ac.jp/socialdesign/?JohnSmith/Dat...
~
~
**関数について
プログラムの基本は ''入力 > 処理 > 出力'' です。プログ...
中学・高校の数学で登場する「関数」を思い出して下さい。例...
y = 2x + 1 ・・・ y = f ( x ) と書いたりします
は、入力データ x を受け入れて、これに処理 f ( ) つまり「2...
データサイエンスの演習では、その大半理を、各種ライブラリ...
# 自作関数の定義
def myFunc(x): # 入力:引数(ひきすう)として x を受け...
y = 2*x+1 # 処理
return y # 出力:戻り値として y を返す
# 自作関数を利用したプログラム
s = input("数を入力して下さい >>>") # 入力
x = float(s) ...
y = myFunc(x) # 処...
print("計算結果:", y) # 出力
--- 実行結果 ---
数字を入力して下さい >>> 2.5
計算結果: 6
&small(この事例は、演習の最初に作成した PythonBasics.ipnb...
&small(def は define(定義)という意味の英語の略です。);
-[[参考:Pythonの文法>Python/Syntax]]
-[[参考:JavaScriptの場合>JavaScript/Function]]
~
''付記''
プログラマーは、世界のあらゆる現象を関数(入力・処理・出...
~
~
**オブジェクト指向プログラミングについて
データの集合体(プロパティ)と、それを操作する手続き(メ...
プロパティやメソッドを利用する際は、以下のように [ . ] 接...
-オブジェクト名.変数名:プロパティ
-オブジェクト名.関数名( ):メソッド
>__[[ObjectOrientedProgramming]]__
~
~
**APPENDIX|プログラミングとデザイン思考
***オブジェクト指向と現代社会
人間と道具は「共進化」するものです。今日の社会は、オブジ...
コンピュータの設計と人間の活動は、共に進化しなければなら...
&small(Apple Computer, 1987, Human Interface Guidelines);
道具の使い方を学ぶことが私たち自身を変える・・
という点に人間と道具の関係の本質がある。
&small(アラン・ケイ, 1994, 人間のためのコンピュータ, Addi...
~
***従来型のプログラミングとオブジェクト指向の違い
従来の「手続き型プログラミング」では、「データ」と「処理...
-プログラムの規模が大きくなるにつれて全体像の把握が難しく...
-機能の追加・拡張・変更が難しい
-コードの再利用が難しい
オブジェクト指向プログラミングでは「''データ(プロパティ...
オブジェクトを具体的な「モノ・コト」に例えみましょう。例...
//[[参考 w3schools.com>https://www.w3schools.com/js/js_ob...
-''プロパティ'':車の名前、型式、重量、色、現在位置、スピ...
-''メソッド'':エンジン始動、エンジン停止、走る、止まる、...
我々が使っている自然言語で例えると・・・
-''プロパティ'':名詞・形容詞(title, place, time, size,...
-''メソッド'':自動詞・他動詞(Start(), Stop(), EditText(...
~
***身近な事例をオブジェクト指向で記述すると・・
> [[ObjectOrientedProgramming#ObjectSample]]
~
~
~
終了行:
*第6回 Python プログラミング2
[[データサイエンス/2024]]|[[受講生一覧>https://design.ky...
~
~
**はじめに
***前回の復習
#image(Total_ChatGPT.jpg,right,40%)
前回、コードの書き方の事例として挙げた「1から100までの整...
#clear
~
***プログラミングスキルの向上に向けて
-はじめにサンプルを「真似」て、コードの意味を1行づつ確認
-プログラムの一部を改変して、予想通りの結果になるか確認
-自分で新たな「問い(処理の仕様)」を考えて、それをコーデ...
-様々なバグに出会い、それを修正する
ChatGPT等の生成系AIの登場によって、Web上の参考事例を探す...
~
~
**Pythonプログラミングの具体例
***モジュールの import について
Python には、様々な既存の機能が「ライブラリ」というかたち...
import math # 数学関数を利用する場合に読み込みま...
import random # 乱数を利用する場合に読み込みます。
~
~
**演習6:MonteCarloMethod
***モンテカルロ法とは
計算機を使った数値計算手法の一つで、乱数を用いた試行を繰...
~
***円周率 π の値を求めるプログラム
大量の乱数データから、円周率 π の近似値を統計的に求める手...
#image(https://upload.wikimedia.org/wikipedia/commons/c/c...
&scale(75){[[Wikimediacommons File:Montecarlo pi2.PNG>htt...
-一辺の長さを r とする正方形の面積を S とし、その正方形の...
Q = π*r*r / 4
S = r*r
よって、Q / S = ( π*r*r / 4 ) / ( r*r ) = π/4
-すなわち、以下の関係式が得られます。
π = Q / S * 4
-正方形の「枠内」に一様な乱数を使って「雨を降らせる」と
正方形全体に降る雨粒の数:4分円の中に降る雨粒の数 ≒ S:Q
となり、雨粒の数が多くなれば、S:Q の比率に一致します。
-これを利用することで
π = 4分円の中に降る雨粒の数 / 正方形全体に降る雨粒の数 ...
というかたちで、π の近似値を求めることができます。
~
***開発準備
-Google Colaboratory で ''ファイル> ノートブックを新規作...
-Untitled0.ipynb というファイル名を変更 > MonteCarloMeth...
-テキストセルを追加して、ノートの冒頭にタイトルをつけまし...
~
***ソースコード
以下のコードをまるごとコードセルにコピー&ペーストして下...
# ライブラリの読み込み
import math
import random
# 初期化
n = 1000
cnt_in = 0
cnt_out = 0
# シミュレーション
for i in range(n):
# 0.0 - 1.0 のランダムな「雨粒」
x = random.random()
y = random.random()
# 4分円の中に落ちた数をカウント
r = math.sqrt(x**2 + y**2)
if r <= 1.0:
cnt_in += 1
else:
cnt_out += 1
# 円周率の近似値
Pi = cnt_in / n * 4
# 結果の表示
print("Num:", n)
print("IN:", cnt_in)
print("OUT:", cnt_out)
print("Pi:", Pi)
~
***実行
-コードセルで実行ボタン「▶︎」をクリックすると実行されます。
-結果は、コードセルの直下に表示されます。
このプログラムは乱数を使っていて、結果はその都度変わりま...
-n の初期値を大きくしていくと、結果が 3.14 に近づくことを...
~
***学科サイトにリンク掲載
「モンテカルロ法で π の近似値を求める」プログラムのノート...
-1. 自分のノートを開いた状態で、右上の「共有」をクリック
-2. 共有設定を変更して、以下のように表示される状態にしま...
このリンクを知っているインターネット上の全員が閲覧できま...
-3. 「リンクをコピー」をクリックして、そのアドレスを、以...
-[[MonteCarloMethod>https://colab.research.go・・=sharin...
-4. 以下のようになればOKです。
https://design.kyusan-u.ac.jp/socialdesign/?JohnSmith/Dat...
~
~
**関数について
プログラムの基本は ''入力 > 処理 > 出力'' です。プログ...
中学・高校の数学で登場する「関数」を思い出して下さい。例...
y = 2x + 1 ・・・ y = f ( x ) と書いたりします
は、入力データ x を受け入れて、これに処理 f ( ) つまり「2...
データサイエンスの演習では、その大半理を、各種ライブラリ...
# 自作関数の定義
def myFunc(x): # 入力:引数(ひきすう)として x を受け...
y = 2*x+1 # 処理
return y # 出力:戻り値として y を返す
# 自作関数を利用したプログラム
s = input("数を入力して下さい >>>") # 入力
x = float(s) ...
y = myFunc(x) # 処...
print("計算結果:", y) # 出力
--- 実行結果 ---
数字を入力して下さい >>> 2.5
計算結果: 6
&small(この事例は、演習の最初に作成した PythonBasics.ipnb...
&small(def は define(定義)という意味の英語の略です。);
-[[参考:Pythonの文法>Python/Syntax]]
-[[参考:JavaScriptの場合>JavaScript/Function]]
~
''付記''
プログラマーは、世界のあらゆる現象を関数(入力・処理・出...
~
~
**オブジェクト指向プログラミングについて
データの集合体(プロパティ)と、それを操作する手続き(メ...
プロパティやメソッドを利用する際は、以下のように [ . ] 接...
-オブジェクト名.変数名:プロパティ
-オブジェクト名.関数名( ):メソッド
>__[[ObjectOrientedProgramming]]__
~
~
**APPENDIX|プログラミングとデザイン思考
***オブジェクト指向と現代社会
人間と道具は「共進化」するものです。今日の社会は、オブジ...
コンピュータの設計と人間の活動は、共に進化しなければなら...
&small(Apple Computer, 1987, Human Interface Guidelines);
道具の使い方を学ぶことが私たち自身を変える・・
という点に人間と道具の関係の本質がある。
&small(アラン・ケイ, 1994, 人間のためのコンピュータ, Addi...
~
***従来型のプログラミングとオブジェクト指向の違い
従来の「手続き型プログラミング」では、「データ」と「処理...
-プログラムの規模が大きくなるにつれて全体像の把握が難しく...
-機能の追加・拡張・変更が難しい
-コードの再利用が難しい
オブジェクト指向プログラミングでは「''データ(プロパティ...
オブジェクトを具体的な「モノ・コト」に例えみましょう。例...
//[[参考 w3schools.com>https://www.w3schools.com/js/js_ob...
-''プロパティ'':車の名前、型式、重量、色、現在位置、スピ...
-''メソッド'':エンジン始動、エンジン停止、走る、止まる、...
我々が使っている自然言語で例えると・・・
-''プロパティ'':名詞・形容詞(title, place, time, size,...
-''メソッド'':自動詞・他動詞(Start(), Stop(), EditText(...
~
***身近な事例をオブジェクト指向で記述すると・・
> [[ObjectOrientedProgramming#ObjectSample]]
~
~
~
ページ名: