![見出し画像](https://assets.st-note.com/production/uploads/images/145368141/rectangle_large_type_2_88a04dad3d82144524503628ed5d4181.png?width=1200)
あれこれ(2024前)
コンピュータは小数計算が苦手
(2024年1月 181号)
何はともあれ、Pythonで書いた次のコードを実行してみてください。
s=0
for i in range(10):
s=s+0.1
print(s)
要は 0.1 を10回足しているだけなのですが、結果は 1 になりません。若干の誤差を生じます。コンピュータは2進法で計算しているわけですが、0.1 は2進数では割り切れない数、つまりコンピュータにしてみればキリの悪い数なので、正確に計算することができないのです。
でも、諦めちゃいけない。そんなときこそ工夫のしがいがあるというものです。
ここはアメリカ、ドル額を足し算するコードを書く場面を想定してください。基本はドル額を整数値で入力しながら、時々セントの単位の金額(1セント=0.01ドル)が登場して、その際は小数で入力するとしましょう。
s=0
a=float(input("ドル額を入力、セントは小数で。最後に0を "))
while a>0:
s=s+a[ア][イ]
a=float(input("ドル額を入力、セントは小数で。最後に0を "))
print(s[ウ][イ])
上のコードで[ア],[イ],[ウ]が無いと誤差が出そうです。誤差を無くすために[ア]と[ウ]に四則計算の記号を、[イ]には数を入れてください。
さっそく正解を言っちゃいましょう。4行目を「s=s+a*100」、6行目を「print(s/100)」とすれば誤差無く正確に動きます。なんのことはない、100倍して整数値に直して足し算して、最後に100で割って帳尻を合わせています。そう、これだけで計算ミスを回避できるのです。
ついでながら、上のコードは Python で次のように書くこともできます
s=0
while True:
a=float(input("ドル額を入力、セントは小数で。最後に0を "))
if a==0:
break
s=s+a*100
print(s/100)
2行目で無条件に while のループに入って、4行目の条件(a==0)を満たしたら、5行目の break でループから抜け出します。私としては分かりやすいので、よく使う書き方です。
パスカルの三角形を再帰関数で書いてみる
(2024年2月 182号)
〈パスカルの三角形〉を書けば (a+b)ⁿ の展開式の係数を簡単に求めることができます。パスカルの三角形の書き方は、
○ 各段両端は 1 ・・・(1)
○ 上段の2数の和を、2数の真ん中下段に書く ・・・(2)
○ これを繰り返す ・・・(3)
これだけです。上から n 段目の数が (a+b)ⁿ の展開式の各項の係数というわけです。
また (a+b)ⁿ の展開式の aⁿ⁻ʳbʳ の係数は、組合せCを使って ₙCᵣ と表せます〈二項定理〉。これを使えば、上の(1)と(2)は次のように書けます。
○ ₙC₀=1 , ₙCₙ=1 ・・・(1)
○ ₙCᵣ=ₙ₋₁Cᵣ₋₁+ₙ₋₁Cᵣ ・・・(2)
さらに、上の(3)「繰り返す」をプログラミングのコードで書くのに適しているのは、再帰関数です。というわけで、Pythonで組んでみました。
def c(n,r):
if (r==0)or(n==r):
return 1
return c(n-1,r-1)+c(n-1,r)
n=int(input())
r=int(input())
print(c(n,r))
コードの1〜4行目で関数 c(n,r) を定義しています。2〜3行目が上の(1)に、4行目が上の(2)に当たります。
コードの5行目以降がプログラム本体で、ここで表示(print)するものは、パスカルの三角形の上からn段目、左からr番目の値でもありますし、組合せ ₙCᵣ の値でもあります。
また、プログラム本体部分で次のようにfor文で1回転させれば「パスカルの三角形のn段目」すなわち「(a+b)ⁿ の展開式の係数」を順に表示できます。
n=int(input())
for r inrange(n+1):
print(c(n,r),end=" ")
さらに、プログラム本体部分で次のようにfor文の2重ループで回せば「パスカルの三角形の1段目からn段目まで」すなわち「パスカルの三角形の全体像」を表示できます。
m=int(input())
for n in range(m+1):
for r in range(n+1):
print(c(n,r),end=" ")
print()
お試しください。(LaTeX数式・画像付きはこちら → https://note.com/omori55/n/n99a8cd396169 をどうぞ)
2024年はAI元年
(2024年3月 183号)
一般の人がAIを使うようになるという点において「2024年はAI元年」と言って良いだろうと思います。
象徴的だったのは「芥川賞受賞作がAIを駆使して書き上げた作品だった」ということ。年明け1/17にニュースになりました。
その作者を含めて2023年にも一部の人は使っていたわけですが、2024年には自分では使わなくとも、身の回りを見渡せば「身近な人が使っている」という状況が当たり前になるでしょう。その点において「AI元年」と呼ぶにふさわしいと私は思うのです。
合わせて、2024年は「AIに対する自分の立ち位置」をいやがおうにも考えなければならない年になるでしょう。立ち位置とは、例えば、
▷ 使いこなす
▷ 人並みに使う
▷ 距離を置く
▷ 背を向ける
など。「使うか、使わないか」あるいは「どのように使うか」は各自の自由なのですが、どっちつかずのあやふやな態度は早晩立ち行かなくなるでしょう。仕事場でAIを効果的に使う人が現れれば「自分はどうなのか」を表明しないとお互いにやりにくいでしょうし、その姿勢は日替わりで変えられるものでありませんから、意識してどこかに置かざるを得なくなります。
そういう日が今年中に、おそらく今年の前半くらいにはやってくるだろうと私は思います。その意味でも「2024年はAI元年」だと私は言いたいのです。
加えてもう一つ。多くの人は「AIに対する漠然とした不安」みたいなものを抱えています。現に「AIに支配される」というようなフレーズを老若男女、誰でもが口にします。
それが「根拠の無い戯言」だとは私は思いません。むしろ、なんらかのシグナルだと思うのです。
これを放置できないんじゃないでしょうか。AI元年の今年、その感覚が頭をもたげてくるとか、折り合いをつけなきゃいけないとか、個人の心の内でも、組織の中でも、そんな場面がきっとあるでしょう。面白い1年になりそうです。
哲学対話はじめました
(2024年4月 184号)
私、勤務校で哲学対話を始めました。興味を持ってくれた生徒たち何人かと放課後に集まって、1時間ほど対話しています。
哲学対話とは「日常で感じる問いに対して、考えたことや感じたことをみんなで話し合うもの」で、街場では「哲学カフェ」と呼ばれたりもしています。対面またはオンラインで、幼児から老人まで、いろんなテーマで、行われています。
今日は私が経験しながら考えたことをお話しして、「哲学対話とAIの共通項」へと話を進めます。
さて、対話は「聞く」ことから始まります(私はそう捉えています、話すより聞くのが先)。この場合の「聞く」は、次の3つの意味を含みます。
▷ 耳で聴く
▷ 受け入れる
▷ 質問する
普段の会話では、聞いているようでいて実は「聞き流し」ていたり、もしくは(粗探ししながら)批判的に聞いていることが多いように思うのです。私自身、哲学対話を始めて「最近ようやく人の話が聞けるようになってきた」と実感しています。
一方で、私は ChatGPT を使ってみて「哲学対話とAIの共通項」を感じています。以下のこと、どちらにも当てはまります。
▷ 正解を求めない姿勢
▷ 問うことの方が大事
▷ 参加者みんなの共同作業
AIに「教えてもらう・作ってもらう」のではなくて、自分とAIとで「一緒に創り上げる」つもりでいましょう。AIから何が得られるかは、問い方次第です。問い方によって、どちら方向にどれだけ進むかが、まるで変わってきます。
こうしてみると、人との対話もAIとの対話も同じようなものなんですね。大事なのは、聞くこと=問うこと。
ところで、上のようなやり取りを通じて ChatGPT が出してくるものは、すでに誰かが発した言葉であって、上手く編集・要約されているけれども、そこに真新しさはありません。
一方、人と人との対話では、うーんと唸りながら新しいものがポッと出てきたりします。それはAIには出せないものです。それが人の強みです。哲学対話の醍醐味です。
AI時代になれば、対話の重要性は減るどころか、ますます増えていくでしょう。AIとの対話が上手になれば、人との対話にも活かせます。逆も然りです。両者には相乗効果が期待できます。それでいながら、
▷ AIとの対話術を身につけて人と対話すると、AIを超えたものが飛び出して来る
そんなことが十分ありえるのです。面白いですね。
※ 私の勤務校での哲学対話について、拙いものですが、こちら(→ https://note.com/omori55/n/ne23363a39322 )をご覧ください。
◇ ◇ ◇
〜 あれこれ(2024年) 〜
あれこれ(2024前)
あれこれ(2024中)
あれこれ(2024後)