このあたりを見ていて、なんとなくアホになる割合って50%ぐらいなのかな?と思って検証したくなったのがきっかけ。
アホっぽく以下のコードを走らせ続けてみた。
#!/usr/bin/ruby
include Math
puts "n,aho_count,aho_percent"
aho_count = 0
n = 0
prec = 10
loop {
n+=1
aho_count +=1 if n%3 == 0 || n.to_s =~ /3/
if n % prec == 0
aho_percent = aho_count / n.to_f * 100.0;
puts "#{n},#{aho_count},#{aho_percent}"
$stdout.flush
prec = 10**((log10(n)).to_i)
end
}
Intel Core 2 Duo E8400(3GHz)のPCで12時間ぐらい走らせ続けて、100億オーバーぐらいまでカウント。ちょっとこれ以上は現実的ではなさそうかも…
以下は実行結果のファイル
これをグラフにしてみるとこんな感じ。x軸は対数です。

グラフを見ていると、意外と80%ぐらいで収束しそうな感じなのね。
あと、30とか300とかの連続してアホになるゾーンで急激に割合が高くなるのがグラフからわかります。
よく考えたら、桁数が増えてくると3を含まない数字は逆に少なくなってくるような気が。限りなく100%に近づくのかな?
さらに考えてみた検証結果はこちら