Ruby
計算
今更だが、通常割り算の計算は切り捨てだが、
切り捨てをしないままにするにはmathnを使えば良い。
require 'mathn'
p 5 / 3
p 5 / 3 + 5 / 3 + 5 / 3
出力結果は
1
3
ではなく、
(5/3)
5
となる。
2015年2月27日金曜日
2015年2月25日水曜日
150225
Ruby
Square-free integer
A005117(http://oeis.org/A005117/list)
Square-free integer
m未満のsquare-freeな整数の個数を出力するコードを書いてみた。
オンライン整数列大辞典のA005117(http://oeis.org/A005117/list)
と比較し、答え合わせしてみる。
require 'prime'
N0 = 113
N = 101
# m未満のsquare-freeな整数の個数
def number_of_squarefree_numbers(m , n = m)
s = 0
Prime.each{|x|
break if x * x >= m || x >= n
s += number_of_squarefree_numbers((m - 1) / (x * x) + 1, x)
}
return m - 1 - s
end
for i in (1..N)
p [i, number_of_squarefree_numbers(i + 1, )]
end
# OEIS A005117との比較用
ary = []
fn = 0
for i in (1..N0)
bn = number_of_squarefree_numbers(i + 1, )
ary << i if fn != bn
fn = bn
end
# OEIS A005117のデータ
ary0 =
[1,2,3,5,6,7,10,11,13,14,15,17,19,21,22,23,26,29,
30,31,33,34,35,37,38,39,41,42,43,46,47,51,53,55,
57,58,59,61,62,65,66,67,69,70,71,73,74,77,78,79,
82,83,85,86,87,89,91,93,94,95,97,101,102,103,105,
106,107,109,110,111,113]
# 一致の確認
p ary == ary0
2015年2月24日火曜日
150224(2)
Ruby
Cyclic number
Cyclic number
http://en.wikipedia.org/wiki/Cyclic_number
に載っているcyclic numberを出力するコードを書いてみた。
require 'prime'
N = 70
Full_Reptend_Primes = []
Prime.each(N){|pr|
if pr > 5
i = 1
n = 10
while i < pr - 1 && n != 1
n *= 10
n %= pr
i += 1
end
Full_Reptend_Primes << pr if i == pr - 1
end
}
# cyclic numberの出力
Full_Reptend_Primes.each{|i|
a = 10 ** (i - 1) / i
p sprintf("%0*d", i - 1, a)
}
150224
Python
和について
print sum(range(1, 101))
print sum(x for x in range(1, 101))
上二つを比べると、2つ目の方が一般性がある。
例えば、二乗の和に変更したいなら、
print sum(x ** 2 for x in range(1, 101))
とすればよい。
print sum(f(x) for x in xrange( , ))
の形で覚えていてもいいかもしれない。
和について
print sum(range(1, 101))
print sum(x for x in range(1, 101))
上二つを比べると、2つ目の方が一般性がある。
例えば、二乗の和に変更したいなら、
print sum(x ** 2 for x in range(1, 101))
とすればよい。
print sum(f(x) for x in xrange( , ))
の形で覚えていてもいいかもしれない。
登録:
投稿 (Atom)