def divisible(x,y) x%y==0 end
irb(main):001:0> divisible(111111111,9)
def sum_loop(n)
s = 0
for i in 1..n
s = s+i
end
s
end
def gd_loop(k,n)
while !divisible(k,n)
n=n-1
end
n
end
gd_loop(1234567,1234566)
def sum(n)
if n>=2
sum(n-1)+n
else
1
end
end
load("./divisible.rb")
def sod(k,n)
if n>=2
if divisible(k,n)
sod(k,n-1)+n
else
sod(k,n-1)
end
else
1
end
end
0 (k > n のとき)
nCk = { 1 (k = 0 のとき)
n-1Ck-1 + n-1Ck ( それ以外)
combination(5,3) -> 10 combination(10,5) -> 252
load("./divisible.rb")
def gd(k,n)
if divisible(k,n)
n
else
gd(k,n-1)
end
end
def make1d(n)
a = Array.new(n)
for i in 0..(n-1)
a[i] = 0
end
a
end
load("./make1d.rb")
def make2d(height,width)
a = Array.new(height)
for i in 0..(height-1)
a[i] = make1d(width)
end
a
end
def combination_loop(n,k)
c=make2d(n+1,n+1)
for i in 0..n
c[i][0] = 1
for j in 1..(i-1)
c[i][j] = c[i-1][j-1] + c[i-1][j]
end
c[i][i] = 1
end
c[n][k]
end
combination_loop(40,32)
def submatch(s,i,p,w)
j=0
while j< w && s[(i+j)..(i+j)]==p[j..j]
j=j+1
end
j
end
def match(s,p)
i=0
w=p.length()
while submatch(s,i,p,w)< w
i=i+1
end
i
end
def match_safe(s,p)
i=0
w=p.length()
while i<=s.length()-w && submatch(s,i,p,w)< w
i=i+1
end
if i<=s.length()-w
# 見つかった時には何を返す?
else
# 見つからなかった時には何を返す?
end
end
match_safe("abra","ra") -> 2
match_safe("abca","ra") -> -1
となることを確認してください.
.ai, .ani, .anim, .apng, .art, .bef, .bmf, .bmp, .bsave, .cal, .cdf, .cdr, .cgm, .cgm, .ciff, .cin, .cpc, .djvu, .dng, . dpx, .dxf, .ecw, .emf, .eps, .eva, .exr, .fits, .flic, .fpx, .gerber, .gif, .hdri, .hvif, .icer, .icns, .ico, .ics, .iges, .iges pgml, .ilbm, .jbig, .jbig2, .jng, .jpeg, .jpeg 2000, .jpeg xr, .jpeg-hdr, .jpeg-ls, .miff, .mng, .pbm, .pcx, .pdf, .pgf, .pgm, .pict, .pict, .pictor, .pixel, .png, .postscript, .ppm, .psd, .psp, .rad, .rgbe, .sgi, .svg, .swf, .tga, .tiff, .vml, .wbmp, .webp, .wmf, .x aml, .xar, .xar, .xbm, .xcf, .xpm
include Math
load("./make2d.rb")
def show_color_picture()
a=make2d(50,50)
for y in 0..49
for x in 0..49
# 穴を埋める.
#a[y][x]にRGB値からなる大きさ3の配列(要素は0から1までの実数)を入れる
(1)
end
end
show(a)
end
たとえば,(1)のところに
a[y][x]=[x/49.0,1.0-y/49.0,1.0]
と入れると,
irb(main):014:0> rand(3) => 1 irb(main):015:0> rand(3) => 2 irb(main):016:0> rand(3) => 0実数の乱数は rand() で0.0以上1.0以下の一様乱数が返る.
irb(main):017:0> rand() => 0.65583344076718 irb(main):018:0> rand() => 0.336235732920702 irb(main):019:0> rand() => 0.324077367496
irb(main):020:0> x=2.9 => 2.9 irb(main):021:0> x.to_i() => 2 irb(main):022:0> x=-2.9 => -2.9 irb(main):023:0> x.to_i() => -2四捨五入ではないので,注意が必要.
というPNG形式の画像ファイルがある時,
convert globe.png -compress none globe.ppmを実行すると,以下のようなテキスト形式のファイル globe.ppm が作られる.
P3 34 42 255 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 .... 246 246 246 246 246 246 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245このファイル形式はPNM(Wikipedia) のように扱いやすいので,これをテキストエディタで編集して,rubyの配列の初期化の形に修正すると楽と思われる.