遊び tokidoki 仕事

数学と音楽と教育と遊び

| おしごと - きょういく - がくせい - ゼミ - イベント | すうがく - おんがく - 数理音楽 - DTM - かがく - scratch
| Art - photo - おきにー - Tips - ものもう - あれこれ | About - Top

世界は実在なのか関係なのか

もうそこまで来ているんだね.eetimes.jp

当然これと人工知能技術は結びつくだろうし,そうなると新たな知性との
例の問題も気になってくる.
ネズミではないアルジャーノンと僕らはどう付き合うべきなのかということ.tokidoki.hatenablog.jp

いや,その背景はK.プリブラムの脳ホログラフィーを意識しているのだけどね.

ニューエイジサイエンスにどっぷりはまった大学時代がちょいと懐かしい.
あのころ,ニュートン力学的な世界観に人間存在の意義を揺さぶられ,
それに対抗するべくウィルバーやボーム,ユング...とハマっていったんだった.
まさに世界は実在なのか関係なのか,が問題だった.

ときどきふと思うのは似たようなパラダイムシフトは数学の中ではよく起こる.
それを統一的に記述しているのがCategory theoryなんだと思う.

空像としての世界―ホログラフィをパラダイムとして

空像としての世界―ホログラフィをパラダイムとして

シンクロニシティ

シンクロニシティ

追記:おや,「アルジャーノンに花束を」ドラマリメイク始まるんだね.www.tbs.co.jp
しかも脚本,野島伸司じゃないですか!
明日ママ以来,この国では,もはや90年代のような"自由な表現"が
許されなくなったんだと酷く窮屈に思ったのだけど,さて今度はどう出るのかな,お互い.

アルジャーノンに花束を

アルジャーノンに花束を

箱ひげ図自動作成マクロ作ったよ

統計教育の必要性が叫ばれ始めて随分と経つそうだ.
そして今年度もやがて始まる講義,統計とコンピュータ用に作ってみた.
講義内容・方法を全面的に変えようと画策しているが,未だ目処が立たず.
ちょっと気が滅入ってきている今日このごろ.
f:id:okiraku894:20150402190751p:plain
五数要約と平均値が書かれていれば,その範囲を選択して【Ctrl+b】をすると
そのシートに箱ひげ図ができあがる,というものだ.
2015/04/27 修正!
項目の方向を自動判定させず常に
横方向が項目となるようにした.
余分な系列が表示されていたので消した.
散布図で平均の位置を描いていたのを変更.
項目が文字だとエラーが出るので訂正した.

あちこちサイトを回ってかき集めた情報で何とか作ったシロモノなので,ソースは汚い.
サーフィンしてみてわかったけど,苦労している人が多そうだから
ここにのっけておく.結構需要高いと思う.
あ,エラー対策してないから,間違った範囲選択でCtrl+bするとマクロ画面に変わります.
20150427_boxplot_macro.xlsm 直

Sub boxplot()
'
' boxplot Macro
'
' 五数要約(上から順に,最大・第3四分位・中央・第1四分位・最小値・平均値)とした表から
' 箱ひげ図を作る
'
' Ver. 2015/04/27
' http://tokidoki.hatenablog.jp/
'
' Keyboard Shortcut: Ctrl+b
'
    Dim box0, dWisker, uWisker, Mean
    
    ActSht = ActiveSheet.Name 'アクティブシート名取得
    Set ActArea = Selection
    ActCell = ActArea.Address '選択範囲のアドレスを取得(項目名,最大~平均値を囲う)
    box0 = Range(ActCell)
    UB = UBound(box0, 2)
    UBB = UBound(box0, 1)
    ReDim boxName(1 To UB)  '(1,i):項目名
    ReDim boxLB(1 To UB) '(2,i):箱の下境界
    ReDim boxMid(1 To UB) '(3,i):中央線まで
    ReDim boxUB(1 To UB) '(4,i):箱の上境界まで
    ReDim dWisker(1 To UB) '(5,i):下ヒゲ長
    ReDim uWisker(1 To UB) '(6,i):上ヒゲ長
    ReDim Mean(1 To UB)  '(7,i):平均値
    
    '五数要約からグラフ表示用のデータに変換
    For i = 1 To UB
        boxName(i) = box0(1, i)
        boxLB(i) = box0(5, i)
        boxMid(i) = box0(4, i) - box0(5, i)
        boxUB(i) = box0(3, i) - box0(4, i)
        dWisker(i) = box0(6, i) - box0(5, i)
        uWisker(i) = box0(2, i) - box0(3, i)
        Mean(i) = box0(7, i)
    Next i
    
    'メインの箱の系列データをセット,グラフをSheet内に配置
    Charts.Add
    With ActiveChart
        .ChartType = xlColumnStacked
        .PlotBy = xlRows
        .SeriesCollection(6).Delete
        .SeriesCollection(5).Delete
        .SeriesCollection(4).Delete
        .SeriesCollection(1).XValues = boxName
        .SeriesCollection(1).Values = boxLB
        .SeriesCollection(2).Values = boxMid
        .SeriesCollection(3).Values = boxUB
        .HasLegend = False
        .Location Where:=xlLocationAsObject, Name:=ActSht
    End With
    
    'メインの箱の色と線を変更
    ActiveChart.SeriesCollection(1).Select
    Selection.Format.Fill.Visible = msoFalse
    ActiveChart.SeriesCollection(2).Select
    With Selection.Format.Fill
        .Visible = msoTrue
        .ForeColor.ObjectThemeColor = msoThemeColorAccent5
        .ForeColor.TintAndShade = 0
        .ForeColor.Brightness = 0.6
        .Transparency = 0
        .Solid
    End With
    With Selection.Format.Line
        .Visible = msoTrue
        .ForeColor.RGB = RGB(0, 0, 0)
        .Transparency = 0
    End With
    ActiveChart.SeriesCollection(3).Select
    With Selection.Format.Fill
        .Visible = msoTrue
        .ForeColor.ObjectThemeColor = msoThemeColorAccent5
        .ForeColor.TintAndShade = 0
        .ForeColor.Brightness = 0.6
        .Transparency = 0
        .Solid
    End With
    With Selection.Format.Line
        .Visible = msoTrue
        .ForeColor.RGB = RGB(0, 0, 0)
        .Transparency = 0
    End With
    
    '上下のひげ.ただし下ヒゲもxlErrorBarIncludePlusValuesで行ったので,
    '使う値dWisker()は負になるよう計算してある.
    With ActiveChart
        .SeriesCollection(3).HasErrorBars = True
        .SeriesCollection(3).ErrorBar Direction:=xlY, Include:= _
            xlPlusValues, Type:=xlErrorBarTypeCustom, amount:=0
        .SeriesCollection(3).ErrorBar Direction:=xlY, Include:= _
            xlErrorBarIncludePlusValues, Type:=xlErrorBarTypeCustom, amount:=uWisker
        .SeriesCollection(1).HasErrorBars = True
        .SeriesCollection(1).ErrorBar Direction:=xlY, Include:= _
            xlErrorBarIncludePlusValues, Type:=xlErrorBarTypeCustom, amount:=dWisker
    End With
    
    '平均値をマーカーのみの折れ線グラフで追加
    With ActiveChart
        .SeriesCollection.NewSeries
        .SeriesCollection(4).Values = Mean
        .SeriesCollection(4).ChartType = xlLineMarkers '折れ線グラフ
        .SeriesCollection(4).Select
    End With
    With ActiveChart.SeriesCollection(4)
        .MarkerStyle = 4 'マーカーは×
        .MarkerSize = 8
        .Format.Fill.Visible = msoFalse 'マーカーを塗りつぶさない
        .Format.Line.Visible = msoFalse '折れ線は消す
        .MarkerForegroundColor = RGB(255, 0, 0) 'マーカーは赤で
    End With
    
    ActiveChart.Axes(xlValue).MajorGridlines.Delete ' 横目盛線消去
End Sub

Super Π day!


Π.円周率を表す記号.
ただそれだけなんだが,海外ではSuper PI Dayとしてイベントが行われているらしい.
なぜなら今日は2015/3/14,これを西洋風に書くと3/14/15となる.
で,更に9:26:53と続けば3.141592653...
↓わざわざその時間にキャプりました.
f:id:okiraku894:20150314094246p:plain

Scratchのページに,高速に1000桁から500000桁まで計算するプロジェクトが置いてあった.
DadOfMrLog氏の作品.

まぁ,なんというか,で?ということだが,
例えば2000年1月1日0:00だって,単にキリが良いだけってことだし,
数字(の並び)に意味を見出すのは神秘主義的な見方なわけだ.

おっと,そういえば今期実験的に始めたScratchの講義,
最終作品が出そろって,非常に良いものがいくつかあるのでそのうちここで紹介しよっと.

複雑ネットワークとしての戦闘シミュレーション

本年度の卒論発表会も無事終わったところで,すぐに次の学年のゼミ指導へ.

ゼミ生のひとりが,ランチェスター則を複雑ネットワークで解釈する,
といった試みを始めている.で,自分もちょっとシミュレーションしてみた.

複雑ネットワークとしての戦争シミュレーション - YouTube
緑軍(下側)と赤軍(上側)が100万個体ずつ並んで,お互い弾を交互に撃ちあう.
各個体は弾が当たったら即退場.当たらぬ限り次のターンで攻撃者の候補になり,
毎度ランダムに候補者から次のターンでの攻撃者が1個体選ばれ攻撃する.
ただし武器性能が異なっていて,緑軍は1個体が一度に200発撃つのに対し,赤軍は50発.
右下のグラフは各時間での残存兵数,
左下の2つのグラフは撃った弾が当たったらその2者間にネットワークができたとして,
そのとき出来上がっているグラフ
(今回の場合,相討ちという状況がないからランダム木になるのだけど)
の頂点次数の分布を描いている.

開戦当初は頂点次数がそれぞれ200と50に集中するが,
次第に互いの残存兵数が減ってくると弾が当たりにくくなり
(というのも,ここでの実験では毎回被弾者を
その生死に関わらず100万個体からランダムに選ぶので)
小さな頂点次数を持った頂点が増えていくのが見える.
そしてその先にべき乗則が現れてくる.

f:id:okiraku894:20150216124730p:plain

久しぶりに10進BASICで遊んでみた.
あ,今回のネタ元はここ↓
べき乗則とランチェスターの法則 Lanchester's law and Power-law: HPO:個人的な意見 ココログ版

動機づけの内在化への新たな挑戦-中間報告 その2-

f:id:okiraku894:20141221150246p:plain
中間報告その2というのは名ばかりで,実はできあがったScratch作品を見せたかっただけ.
年末のシリーズでは「図形についての算数・数学教材を作る」ことを主眼にしたので,
前回動機づけの内在化への新たな挑戦-中間報告- - 遊び tokidoki 仕事
「なんちゃってGC」に続き,
今回は二次関数の最大最小をビジュアルに見せる作品を考えてみたのだった.

前回シリーズの「整数を素材にした算数・数学教材を作る」では,(予想の範囲内ではあるが)
シューティングゲーム作りのときほどのテンションが見られず,
提出される課題の出来は果たして如何程か?と心配したが,
なかなか凝った良い作品が届いてきているのが嬉しい.
中でも意外だったのは,Project Eulerの問題を解いて提出してくる学生が多いこと.

翻訳版は→Project Euler - PukiWiki

紹介した問題5だけでなく,何問か解いて
(つまりScratchでアルゴリズムを作成して)提出してくる学生もいた.
一方でデジタル教科書的な,非常にかわいらしい作品を追求した学生もいる.
こういった良い意味での想定外の反応は嬉しいものだ.

↓冒頭のScratch作品.ターボモードで実行を!