Hatena::Grouprubyist

たばさの RSSフィード

04/24(月) 2017

はやりもの観察

はやりもの観察 - たばさの を含むブックマーク はてなブックマーク - はやりもの観察 - たばさの

https://instances.mastodon.xyz/list

jpぽいものの比率をなまあたかかく観察。

使う場合は、上のをユーザー数で並べ替えてからコピーしてファイルに保存しましょう。


nstant

(動かないままだと何なので更新するが、それ以上の意味はないので、何かの参考にはしないように。手元で動くと面白いでしょうっていう程度の趣旨。jsonがあるようなのでそれを使った方がよい 2017-05-02)


むにゃむにゃ追っていたら

なんだかpawooのusersが一度1000くらい減った、id消せないということらしいのに、なにがあったのだろうか。調べないけど

トラックバック - http://rubyist.g.hatena.ne.jp/hatecha/20170424

12/09(金) 2016

平方根 その3

平方根 その3 - たばさの を含むブックマーク はてなブックマーク - 平方根 その3 - たばさの

そしてニュートン法。

bigdecimalでも使っているようです。

しかし終了時間が予測できないし、続きを計算という手段がないので自前で作ります。

というより、bigdecimalというのがあったんだぁ、と後で気づくわけですが。


参考に収束する様子のグラフを探す。

> http://s-taichan.blogspot.jp/2012/02/sicp17.html

適当なxの値とその時点の接線から徐々に真の値に近づけていく感じ。ほんとに近づくのかとか、収束の速さはとか、思ったら結構速い。さすがニュートン。

#!/usr/bin/ruby
# -*- coding: utf-8 -*-

require 'optparse'

max=5
check=false
opt = OptionParser.new
opt.on('-a v',"loop max") {|v| max=v.to_i }
opt.on('-c',"check") {|v| check=v }
opt.parse!(ARGV)

def sqrtN x
  s=x.to_s.size-1
  d=("1"+"0"*(s*2)).to_i
  y=x*x-2*d
  a=2*x
  b=-(a*x-y)
  x=-b*d/a
end

st=Time.now
r=sqrtN(141421)
lim=6
max.times{|i|
  r=sqrtN(r)
  lim*=2
  r=r.to_s[0,lim].to_i
  STDERR.print","
  if check
    (r**2).to_s=~/^(20*|19*)/
    et=Time.now
    STDERR.puts "#{format"%.2f",et-st},#{$&.size}" if $&
  else
    et=Time.now
    STDERR.puts "#{format("%.2f",et-st)} #{i}"
  end
  print i,": "
  puts r
}

説明書こうかと思ったけど面倒なのでやめておくすまん。ルート2限定でとりあえず。前回と違い、検算しないと何桁まであっているか分からない状態。桁が増えると検算がまた大変。

実際に動かすと割と収束が速いなという印象だけども、印象だとか適当なこと言っているとまじめにやっている人には怒られてしまうのだ。たぶん。


そして、どうやら数値から文字列への変換がコストが高いよう。高速化を検索して見つかったので使ってみるも速くはならない、すでにruby本体に取り込まれている感触。感触?


有効桁数を考えなければ、1ステップごとに桁が倍々になる感じなので、そのへんが前回のbigdecimalでやった時の癖に関わるのかなという印象。

トラックバック - http://rubyist.g.hatena.ne.jp/hatecha/20161209

12/08(木) 2016

ランダムっぽい数列

ランダムっぽい数列 - たばさの を含むブックマーク はてなブックマーク - ランダムっぽい数列 - たばさの

息抜きに、2の平方根を2万桁ほど求めたところで、

ans.scan(/[12345]+/).sort_by{|i|i.size}

などとやって1から5までの数字だけから構成されるランダムっぽい長めの数列を探してみます

[:pos, 10780, :val, "1221413242532", :size, 13]

[:pos, 10293, :val, "134142214511", :size, 12]

[:pos, 19875, :val, "245352422314", :size, 12]

[:pos, 5217, :val, "45444122255", :size, 11]

[:pos, 8959, :val, "41123515355", :size, 11]

[:pos, 2024, :val, "45512331421", :size, 11]

[:pos, 5631, :val, "3152512411", :size, 10]

[:pos, 11596, :val, "1245211244", :size, 10]

[:pos, 11679, :val, "352454514", :size, 9]

[:pos, 5316, :val, "454512424", :size, 9]

まあそこそこいいんじゃないでしょうか。(なにが?)

下のほうにはランダムっぽくないのもありますね。

一応、ネットで検索して意味ありげな結果があるか確かめておきましょう。

トラックバック - http://rubyist.g.hatena.ne.jp/hatecha/20161208
カレンダー
<< 2017/06 >>
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30
archive Error : RSSが取得できませんでした。