Excel 各関数の発散のスピードは?
エントリーNo.1
y = x
とても素直で、入力したことをそのまま覚えてくれる
エントリーNo.2
y = logx
マイナスが大嫌い、時々扱いやすい
エントリーNo.3
y = x^2
y = logxとは親せきで、仲がいい。
エントリーNo.4
y = 2^x
のみこみが以上に早く、天才肌
結果、、、
2^x > x^2 >>> x > logx
今回はどうもありがとうございました。
VBA 久しぶりに触ってみるときに記事
お久しぶりです!!
5か月ぶりにさわってみて、この記事のコードを見たら、
「あ、こんな感じだったなぁ、、、」
みたいに思えたら幸いです。
1. 九九の表
2. 四則計算
3. 約数を出す
4. 素数判定
5. ユークリッドの互除法ってなんだっけ?
今日はこのくらいでほどほどに!
Excel さまざまなグラフの比較
どのグラフが適切か
今回は、あるデータセットをグラフで表現してみました!
どのグラフが見やすいのでしょう??
円形1
円形2
棒形1
棒形2
どれがいいかという正解はありません。
個人的には、全体を俯瞰的に見れるのは円形、ある年代が多いという印象を受けるのが棒形なのかなと思います。
見せたい人、対象、また、伝えたいこと、強調したいこと誤解なく表現できるグラフを選択できるように訓練していきましょう!!
今回使ったデータ ↓ グラフに「あ」あ入っててすみません(-_-;)
Excel またまた乱数の収束について考察
前回の記事 ↓
前回はRANDBETWEEN(0,1)関数を使って、累積的に確率をグラフで表しました。
しかし問題なのは、試行回数は変えているにもかかわらず、確率の計算を1度しかしていませんでした。
なので、今回は1回ずつ計算をやり直したうえで、グラフで表現してみました!!
[具体的な方法]
・前回
試行回数を増やしていたが、それまでの実験結果を、次の実験にも使用。
・今回
それまでの結果はいったんリセットしてから、もう一度一から計算。
今回のほうが計算量が1000倍ぐらい多いです(-_-;)
結果 ↓
やっぱり試行回数が多いと、確率は収束していきますねーー!
当たり前のことですが、確認できてよかった(^^)/
今回使用したVBAのコード ↓
Excel ランダムの収束の仕方
エクセルの「RANDBETWEEN(0,1)」の確率収束の様子!
RANDBETWEEN(0,1)関数は0または1をランダムで返す関数ですが、
前回は1から10000回までの精度を刻んでみてきましたが、今回はグラフで確認してみましょう!!
前回 ↓
結果 ↓
やはり試行回数が多いと、確率は0.5に近づいていますね!!
しかし、これは確率を計算上では、試行は1度しかしていません、、
なぜなら、10000個の乱数を生成しても、確率の計算は1度しかしていないからです。
この問題は次回確認していきましょう(^^)/
補足
1から10000までセルに打ち込むのに、ドラッグ以外の方法を紹介します!
この「フィル」というところをクリックします。
その後、「連続データ」をクリックしたのち、次のような画面が出たら、この画像のように入力するだけです!
1000ぐらいならドラッグでもいいですが、100000とかはやりたくないですよね(*_*)
Excel エクセルの乱数ってどの程度の精度??
エクセルの「RANDBETWEEN(0,1)」を制度を測定!
RANDBETWEEN(0,1)関数は0または1をランダムで返す関数ですが、
10,100,1000,10000回実行して、1の数を数えて精度を測ってみようと思います。
結果 ↓
うーん、、、
これだけ見て、いいか悪いかは私には判断することができませんが(*_*)
回数が増えると、50%に近付いていることがわかります。
大数の法則から、たくさん試行すれば、真の確率に近付くことはわかっているので、もしかしたら、この関数は、きっちり50%の確率でランダムなのかもしれません、、
VBA 棒グラフを自動で作ってみよう
Option Explicit
Sub 棒グラフ()
Call C
Call D
Call E
End Sub
Function C()
Range("C2:C4").Select
ActiveSheet.Shapes.AddChart2(201, xlColumnClustered).Select
ActiveChart.SetSourceData Source:=Range("Sheet3!$C$2:$C$4")
ActiveChart.FullSeriesCollection(1).Name = "=Sheet3!$A$2"
ActiveChart.SeriesCollection.NewSeries
ActiveChart.FullSeriesCollection(2).Name = "=Sheet3!$A$5"
ActiveChart.FullSeriesCollection(2).Values = "=Sheet3!$C$5:$C$7"
ActiveChart.SeriesCollection.NewSeries
ActiveChart.FullSeriesCollection(3).Name = "=Sheet3!$A$8"
ActiveChart.FullSeriesCollection(3).Values = "=Sheet3!$C$8:$C$10"
ActiveChart.FullSeriesCollection(3).XValues = "=Sheet3!$B$2:$B$4"
ActiveChart.SetElement (msoElementLegendRight)
ActiveSheet.ChartObjects(1).Chart.HasTitle = True
ActiveSheet.ChartObjects(1).Chart.ChartTitle.Text = Cells(1, 3).Value
ActiveChart.Axes(xlValue, xlPrimary).HasTitle = True
ActiveChart.Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = Cells(2, 9).Value
End Function
Function D()
Range("D2:D4").Select
ActiveSheet.Shapes.AddChart2(201, xlColumnClustered).Select
ActiveChart.SetSourceData Source:=Range("Sheet3!$D$2:$D$4")
ActiveChart.FullSeriesCollection(1).Name = "=Sheet3!$A$2"
ActiveChart.SeriesCollection.NewSeries
ActiveChart.FullSeriesCollection(2).Name = "=Sheet3!$A$5"
ActiveChart.FullSeriesCollection(2).Values = "=Sheet3!$D$5:$D$7"
ActiveChart.SeriesCollection.NewSeries
ActiveChart.FullSeriesCollection(3).Name = "=Sheet3!$A$8"
ActiveChart.FullSeriesCollection(3).Values = "=Sheet3!$D$8:$D$10"
ActiveChart.FullSeriesCollection(3).XValues = "=Sheet3!$B$2:$B$4"
ActiveChart.SetElement (msoElementLegendRight)
ActiveSheet.ChartObjects(2).Chart.HasTitle = True
ActiveSheet.ChartObjects(2).Chart.ChartTitle.Text = Cells(1, 4).Value
ActiveChart.Axes(xlValue, xlPrimary).HasTitle = True
ActiveChart.Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = Cells(2, 9).Value
End Function
Function E()
Range("E2:E4").Select
ActiveSheet.Shapes.AddChart2(201, xlColumnClustered).Select
ActiveChart.SetSourceData Source:=Range("Sheet3!$E$2:$E$4")
ActiveChart.FullSeriesCollection(1).Name = "=Sheet3!$A$2"
ActiveChart.SeriesCollection.NewSeries
ActiveChart.FullSeriesCollection(2).Name = "=Sheet3!$A$5"
ActiveChart.FullSeriesCollection(2).Values = "=Sheet3!$E$5:$E$7"
ActiveChart.SeriesCollection.NewSeries
ActiveChart.FullSeriesCollection(3).Name = "=Sheet3!$A$8"
ActiveChart.FullSeriesCollection(3).Values = "=Sheet3!$E$8:$E$10"
ActiveChart.FullSeriesCollection(3).XValues = "=Sheet3!$B$2:$B$4"
ActiveChart.SetElement (msoElementLegendRight)
ActiveSheet.ChartObjects(3).Chart.HasTitle = True
ActiveSheet.ChartObjects(3).Chart.ChartTitle.Text = Cells(1, 5).Value
ActiveChart.Axes(xlValue, xlPrimary).HasTitle = True
ActiveChart.Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = Cells(2, 9).Value
End Function
結果 ↓