¼ø¶È»ñÎÁ/07 ¤ÎÊѹ¹ÅÀ


#contents

* Á°²ó¤Î²ÝÂê¤Ë¤Ä¤¤¤Æ [#na54261f]

Á°²ó¤Î²ÝÂê¤Ï°Ê²¼¤Î¤è¤¦¤Ê¤â¤Î¤Ç¤¢¤Ã¤¿¡¥

¹ÔÎó¤È¥Ù¥¯¥È¥ë¤ÎÀÑ¡¤¹ÔÎó¤È¹ÔÎó¤ÎÀѤò·×»»¤¹¤ë´Ø¿ô¤ò¥×¥í¥°¥é¥ß¥ó¥°

+ ¹ÔÎó¤ÏÀµÊý¹ÔÎó¤Î¤ß°·¤¦¤È¤·¤Æ¤ª¤¯
+ ¼¡¸µ¤Î°ã¤¤¤Î¥Á¥§¥Ã¥¯¤Ï¤·¤Ê¤¯¤Æ¤â¤è¤¤(¤â¤Á¤í¤ó¤·¤Æ¤â¤è¤¤)
+ (¾åµé¼Ô¸þ¤±)¾å¤ÇÄêµÁ¤·¤¿ ''inner_product'' ´Ø¿ô¤òÍѤ¤¤Æ¼ÂÁõ¤¹¤ë

¤½¤·¤Æ¡¤4 x 4 ¤Î¹ÔÎó¤òŬÅö¤ËÆó¤Ä¡¤4¼¡¸µ¥Ù¥¯¥È¥ë¤òŬÅö¤Ë°ì¤ÄÍÑ°Õ¤·¤Æ¡¤¤½¤ì¤é¤ËÂФ·¤ÆÀѤη׻»¤¬¤¦¤Þ¤¯¤¤¤¯¤³¤È¤ò³Îǧ¤»¤è¡¥

&ref(/materials/warning.png); ¤³¤Îʸ¾Ï¤òÆɤà¸Â¤ê ''°ìÈ̤Πn x n ¹ÔÎó¤ò°·¤¨¤Ê¤¤¤È¤¤¤±¤Ê¤¤'' (4 x 4 ¤Ï¤¢¤¯¤Þ¤Ç¤­¤Á¤ó¤ÈÆ°¤¯¤³¤È¤Î³ÎǧÍÑ) ¤Î¤Ç¡¤¤½¤ì¤òǰƬ¤Ë¥×¥í¥°¥é¥à¤ò½ñ¤¤¤Æ¤¤¤³¤¦¡¥
&ref(/materials/warning.png); ¤À¤«¤é¡¤¾ò·ï¤òËþ¤¿¤·¤Æ¤¤¤Ê¤¤¤Î¤Ç ''4 x 4 ¹ÔÎóÀìÍÑ¤Î¥×¥í¥°¥é¥à¤Ï¼º³Ê'' ¤Ç¤¢¤ë¡¥»ÄÇ°¤À¤±¤É¤Í¡¥

&br;
** Á´Âι½Â¤¤ò¹Í¤¨¤ë [#i25568de]

¤¤¤Ä¤â¤Î¤è¤¦¤ËÁ´Âι½Â¤¤ò¹Í¤¨¤ë¡¥
´ðËÜŪ¤Êµ¡Ç½¤È¤·¤Æ¹ÔÎóƱ»Î¤ÎÀѤȹÔÎó¤È¥Ù¥¯¥È¥ë¤ÎÀѤÎÆó¤Ä¤¬É¬Íפǡ¤ÎãÂê¤È¤·¤Æ¤½¤ì¤ò¥Ç¥â¥ó¥¹¥È¥ì¡¼¥·¥ç¥ó¤¹¤ëËÜʸ¤È¤¤¤¦¤³¤È¤Ë¤Ê¤ë¤Î¤Ç¡¤¤Þ¤º¤Ï°Ê²¼¤Î¤è¤¦¤Ë¤Ê¤ë¤À¤í¤¦¡¥ ¤¿¤À¤·¡¤ºÇ½é¤«¤é 4 x 4 ¹ÔÎó¤ò°·¤¦¤Î¤ÏÌÌÅݤʤΤǡ¤¤Þ¤º¤Ï 2 x 2 ¹ÔÎó¤Ê¤É¤Î¡Ö°ìÈÖ¾®¤µ¤ÊÌäÂê¡×¤Ç»î¤¹¤è¤¦¤Ë½ñ¤¤¤Æ¤ª¤¯¡¥
// programu source ɽµ­
#highlighter(language=ruby,number=off,cache=on){{
include Math

# ¹ÔÎóƱ»Î¤ÎÀÑ: ¹ÔÎóÆó¤Ä¤¬°ú¿ô
def mtx_product_mtx(m_a, m_b)
  # ½ÐÎϤϹÔÎ󡥡֤Ȥꤢ¤¨¤ºÆ°¤¯¤è¤¦¤Ë¡×ºÇ½é¤Î°ú¿ô¤òÊÖ¤·¤Æ¤ª¤¯¡¥
  return m_a
end

# ¹ÔÎó¤È¥Ù¥¯¥È¥ë¤ÎÀÑ: ¹ÔÎó¤È¥Ù¥¯¥È¥ë¤¬°ú¿ô
def mtx_product_vec(m_a, v_x)
  # ½ÐÎϤϥ٥¯¥È¥ë¡¥¡Ö¤È¤ê¤¢¤¨¤ºÆ°¤¯¤è¤¦¤Ë¡×°ú¿ô¥Ù¥¯¥È¥ë¤òÊÖ¤·¤Æ¤ª¤¯¡¥
  return v_x
end

# ¹ÔÎó¤ò¿Í´ÖÍѤ˽ÐÎϤ¹¤ë
def print_mtx(m_a)
end

# ¥Ù¥¯¥È¥ë¤ò¿Í´ÖÍѤ˽ÐÎϤ¹¤ë
def print_vec(v_x)
end

# °Ê²¼¡¤¥×¥í¥°¥é¥àËÜÂÎ

# ¥µ¥ó¥×¥ë¤Î 2 x 2 ÌäÂêÍѥǡ¼¥¿
a = [[1,2],
     [3,4]]

b = [[5,6],
     [7,8]]

x = [10,11]

# ¹ÔÎóƱ»Î¤ÎÀѤò·×»»
c = mtx_product_mtx(a,b)

# ¹ÔÎó¤È¥Ù¥¯¥È¥ë¤ÎÀѤò·×»»
y = mtx_product_vec(a,x)

# ²èÌ̤˽ÐÎÏ
print_mtx(c)
print_vec(y)
}}

&br;
** µ¡Ç½¤òÁý¤ä¤·¤Æ¤¤¤¯: ·ë²Ì¤ò¤¹¤°¥Á¥§¥Ã¥¯¤Ç¤­¤ë¤è¤¦¤Ë¡¤É½¼¨µ¡Ç½¤òÀè¤Ë¼ÂÁõ¤·¤Æ¤ß¤ë [#s3e2c194]

º£²ó¤Î²ÝÂê¤Ï¹ÔÎó¤Îź»ú¤Î¥º¥ì¤Ê¤É¤Î¤¢¤Á¤³¤Á¤Ë´Ö°ã¤¤¤¬È¯À¸¤·¤ä¤¹¤¤¡¥¤½¤ì¤òºÇ¾®¸Â¤ËÍÞ¤¨¤ë¤¿¤á¤Ë¤âɽ¼¨µ¡Ç½¤¬Áá¤á¤Ë¼ÂÁõ¤µ¤ì¤ë¤È³Ú¤¬½ÐÍ褽¤¦¤À¡¥¤½¤³¤Ç¡¤''print_ '' ´Ø¿ô¤òÀè¤Ë¼ÂÁõ¤·¤è¤¦¡¥
¤Þ¤º¤Ï¡¤¥Ù¥¯¥È¥ë¤Îɽ¼¨¤«¤é¼ê¤òÉÕ¤±¤ë¤Î¤¬´Êñ¤À¤í¤¦¡¥Î㤨¤Ð°Ê²¼¤Î¤è¤¦¤Ë¤Ê¤ë¤À¤í¤¦¡¥
// programu source ɽµ­
#highlighter(language=ruby,number=off,cache=on){{
def print_vec(v_x)
  print("[ ")
  for i in 1..v_x.size do
    print(v_x[i-1]," ")
  end
  print("]\n")
end
}}
¤³¤Î´Ø¿ô¤¬¤Ç¤­¤ì¤Ð¡¤¹ÔÎó¤Îɽ¼¨¤Ë¤Ï¤³¤ì¤òÍøÍѤ¹¤ë¤Î¤¬¿¿¤ÃÅö¤Ê¿Í´Ö¤Î»×¹Í¤È¤¤¤¦¤â¤Î¤À¡¥°Ê²¼¤Î¤è¤¦¤Ë¤Ê¤ë¤À¤í¤¦¡¥
// programu source ɽµ­
#highlighter(language=ruby,number=off,cache=on){{
def print_mtx(m_a)
  for i in 1..m_a.size do
    print_vec(m_a[i-1])
  end
end
}}

¤³¤ÎÎã¤Ç¤Ï ''print_vec'' ´Ø¿ô¤ò»È¤¨¤Ð ''print_mtx'' ´Ø¿ô¤Ç¤Ï¤Û¤È¤ó¤ÉÄã¥ì¥Ù¥ë¤Î¼ÂÁõ¤ò¤·¤Ê¤¯¤ÆÎɤ¤¡¥

&ref(/materials/warning.png);¤³¤Î¤è¤¦¤Ë¡¤¡Ö´û¤Ë¥×¥í¥°¥é¥à¤·¤Æ¤¢¤ë¤³¤È¤òÍøÍѤ·¤Æ¥×¥í¥°¥é¥à¤¹¤ë¡×¤³¤È¤ÏÈó¾ï¤Ë½ÅÍפǤ¢¤ë¡¥ ¤Ê¤¼¤Ê¤é¡¤
+ Ʊ¤¸¤è¤¦¤Ê¤³¤È¤ò²¿ÅÙ¤â½ñ¤«¤Ê¤¯¤ÆÎɤ¤¤Î¤Ç¡¤¥ß¥¹¤¬Æþ¤ê¹þ¤à³ÎΨ¤¬²¼¤¬¤ë
+ ½¤Àµ¤¹¤ë»þ¤Ë¡¤½¤Àµ²Õ½ê¤¬É¬Í׺Ǿ®¸Â¤ÇºÑ¤à
+ ¥×¥í¥°¥é¥à¤ÎÃê¾ÝÅÙ¤¬¾å¤¬¤ê¡¤¤è¤ê¤­¤Á¤ó¤È¤·¤¿¤â¤Î¤Ë¤Ê¤ë²ÄǽÀ­¤¬¹â¤Þ¤ë

¤«¤é¤Ç¤¢¤ë(Don't Repeat Yourself = ''DRY ¸¶Â§''¤Ë¶á¤¤¤«)¡¥¤Þ¤¢´Êñ¤Ë¸À¤¨¤Ð¡¤
CENTER:&size(24){''¥×¥í¥°¥é¥à¤Ç¤ÏƱÅù¤Î½èÍý¤ò½ÅÊ£¤·¤Æ½ñ¤¯¤³¤È¤Ï¡Ö°­¡×''};

¤À¤È»×¤¨¤ÐÎɤ¤¡¥

&br;
** µ¡Ç½¤òÁý¤ä¤·¤Æ¤¤¤¯: ¹ÔÎó¤È¥Ù¥¯¥È¥ë¤ÎÀÑ [#h04340c6]

¼¡¤Ë´Êñ¤Ê¤Î¤Ï¡¤¹ÔÎó¤È¥Ù¥¯¥È¥ë¤ÎÀѤμÂÁõ¤À¤í¤¦¡¥¤³¤ì¤ÏÆâÀѤò»È¤¦¤è¤¦¤Ë¤¹¤ì¤Ð´Êñ¤À¡¥
¤¿¤À¡¤·è¤á¤é¤ì¤¿¼¡¸µ¤Î¥Ù¥¯¥È¥ë¤Î¡Ö¤Ò¤Ê¤¬¤¿¡×¤òÍÑ°Õ¤¹¤ëÊýË¡¤¬¤ï¤«¤é¤Ê¤¤¤È¤¤¤¦¾ì¹ç¤â¤¢¤ë¤À¤í¤¦¤«¤é¡¤¤½¤³¤ò´Ø¿ô¤È¤·¤Æ¡Ö¤È¤ê¤¢¤¨¤º¸å¤Ç¹Í¤¨¤ë¡×¤è¤¦¤Ë¤¹¤ì¤Ð¡¤¼¡¤Î¤è¤¦¤Ë¤Ê¤ë¤À¤í¤¦¡¥
&ref(/materials/warning.png); ¿Í´Ö¤ÎǾ¤ß¤½¤Ï¤¢¤ëÄøÅٰʾå¤ÎÊ£»¨¤µ¤ËÂнè¤Ç¤­¤Ê¤¤¤Î¤Ç¡¤¤³¤Î¤è¤¦¤Ë¡Ö¸å¤Ç¹Í¤¨¤ëÉôʬ¤òʬΥ¤¹¤ëǽÎϡפÏÈó¾ï¤Ë½ÅÍפÀ¡¥µÞ¤¤¤Ç¿È¤Ë¤Ä¤±¤è¤¦¡¥
¤³¤ì¤â¶¯Ä´¤·¤Æ¤ª¤³¤¦¡¥

CENTER:&size(24){''Æñ¤·¤¤Éôʬ¤Ï´Ø¿ô¤Ë¤·¤ÆÄɤ¤½Ð¤·¤Æ¡Ö¸å¤Ç¹Í¤¨¤ë¡×¤Ù¤·''};

Ç¡²¿¤ËÊ£»¨¤µ¤òʬ²ò¤¹¤ë¤«¤¬¥×¥í¥°¥é¥ß¥ó¥°¤Î¡Ö¥­¥â¡×¤Ç¤¢¤ë¡¥
// programu source ɽµ­
#highlighter(language=ruby,number=off,cache=on){{
# ¥Ù¥¯¥È¥ë¤ÎÆâÀÑ¡¥Á°²ó¤Î¥³¥Ô¡¼
def inner_product(v_a, v_b)
  sum = 0.0
  for i in 1..v_a.size do
    sum += v_a[i-1]*v_b[i-1]
  end
  return sum
end

# n ¼¡¸µ¥Ù¥¯¥È¥ë¤òºî¤ë
def make_vec(n)
  # ¤µ¤¢¤É¤¦¤¹¤ë?
end

# ¹ÔÎó¤È¥Ù¥¯¥È¥ë¤ÎÀÑ: ¹ÔÎó¤È¥Ù¥¯¥È¥ë¤¬°ú¿ô
def mtx_product_vec(m_a, v_x)
  v_y = make_vec(m_a.size)

  for i in 1..m_a.size do
    v_y[i-1] = inner_product(m_a[i-1], v_x)
  end

  return v_y
end
}}
¤½¤·¤Æ¡¤·è¤á¤é¤ì¤¿¼¡¸µ¤Î¥Ù¥¯¥È¥ë¤Î¡Ö¤Ò¤Ê¤¬¤¿¡×¤òÍÑ°Õ¤¹¤ë´Ø¿ô ''make_vec'' ¤Ï¤³¤ì¤Þ¤Ç¤ÎÃ챤À¤±¤«¤éºî¤ë¤Ê¤é¤Ð°Ê²¼¤Î¤è¤¦¤Ë¤Ê¤ë¤À¤í¤¦¡¥
#highlighter(language=ruby,number=off,cache=on){{
# n ¼¡¸µ¥Ù¥¯¥È¥ë¤òºî¤ë
def make_vec(n)
  # ¤Þ¤ºÍ×ÁǤ¬¤Ò¤È¤Ä¤â¤Ê¤¤¡Ö¶õ½¸¹ç¡×¤òºî¤ë¡¥
  a = []
  # Í×ÁÇ 0.0 ¤ò n¸ÄÄɲ乤롥
  n.times { a.push(0.0) }
  # ½ÐÎÏ
  return a
end
}}
&ref(/materials/warning.png); (¾åµé¼Ô¸þ¤±) Ruby ¤Îµ¡Ç½¤ò¤­¤Á¤ó¤È»È¤Ã¤Æ½ñ¤¯¤Ê¤é¤Ð
#highlighter(language=ruby,number=off,cache=on){{
# n ¼¡¸µ¥Ù¥¯¥È¥ë¤òºî¤ë
def make_vec(n)
  return Array.new(n){0.0}
end
}}
¤È¤¤¤¦´¶¤¸¤Ë¤Ê¤ë¤À¤í¤¦¡¥

¤µ¤Æ¡¤¤³¤¦¤¹¤ë¤³¤È¤Ç¹ÔÎó¤È¥Ù¥¯¥È¥ë¤ÎÀѤϤ­¤Á¤ó¤È·×»»¤Ç¤­¤ë¤Ï¤º¤Ç¤¢¤ë¤«¤é¡¤¼ÂºÝ¤ËÆ°¤«¤·¤Æ¤ß¤ë¤È¡¤
>  [ 1 2 ]
>  [ 3 4 ]
>  [ 32.0 74.0 ]

¤È¤¤¤¦½ÐÎϤ¬ÆÀ¤é¤ì¡¤³Î¤«¤Ë 2 x 2 ¹ÔÎó¤È¥Ù¥¯¥È¥ë¤ÎÀѤ¬·×»»¤µ¤ì¤Æ¤¤¤ë¤³¤È¤¬³Îǧ¤Ç¤­¤ë¡¥

&br;
** µ¡Ç½¤òÁý¤ä¤·¤Æ¤¤¤¯: ¹ÔÎó¤È¹ÔÎó¤ÎÀÑ [#e7a15e78]

¤µ¤Æ¡¤ºÇ¸å¤Ï¹ÔÎó¤È¹ÔÎó¤ÎÀѤǤ¢¤ë¡¥¤³¤ì¤â¡¤¹ÔÎó¤ò¥Ù¥¯¥È¥ë¤Î½¸¤Þ¤ê¤È»×¤¨¤ÐÆñ¤·¤¯¤Ê¤¤¡¥
¤¢¤È¤Ï¡¤¹ÔÎ󤫤é¹Ô¥Ù¥¯¥È¥ë¡¤Îó¥Ù¥¯¥È¥ë¤òÈ´¤­½Ð¤¹Áàºî¤ò¤·¤Ã¤«¤ê¹Ô¤¨¤ì¤Ð¡¤ÆâÀѤ¬»È¤¨¤ë¡¥
¤À¤«¤é¡¤Î㤨¤Ð¼¡¤Î¤è¤¦¤Ë¤Ê¤ë¤À¤í¤¦¡¥
// programu source ɽµ­
#highlighter(language=ruby,number=off,cache=on){{
# Îó¥Ù¥¯¥È¥ë¤òÈ´¤­½Ð¤¹
def col_vec(m_a, k)
  v_y = make_vec(m_a.size)
  # ¶ñÂÎŪ¤Êµ¡Ç½¤Ï¤¢¤È¤Ç¼ÂÁõ¤¹¤ë
  return v_y
end

# n x m ¹ÔÎó¤òºî¤ë
def make_mtx(n,m)
  # ¤µ¤¢¤É¤¦¤¹¤ë?
end

# ¹ÔÎóƱ»Î¤ÎÀÑ: ¹ÔÎóÆó¤Ä¤¬°ú¿ô
def mtx_product_mtx(m_a, m_b)
  m_c = make_mtx(m_a.size,m_a.size)

  # ÆâÀѤò»È¤¨¤Ð¡¤¤¢¤È¤Ï¿ô³Ø¤ÎÄêµÁÄ̤ꡥ
  for i in 1..m_a.size do
    for j in 1..m_a.size do
      m_c[i-1][j-1] = inner_product(m_a[i-1],col_vec(m_b,j))
    end
  end

  return m_c
end
}}
¤Ç¡¤¤³¤³¤ÇɬÍפˤʤä¿Æó¤Ä¤Î´Ø¿ô¤Îµ¡Ç½¤ò¼ÂÁõ¤¹¤ë¡¥
¤Þ¤º¤Ï¡Ö¹ÔÎ󤫤éÎó¥Ù¥¯¥È¥ë¤òÈ´¤­½Ð¤¹¡×µ¡Ç½¤À¤¬¡¤¤³¤ì¤Ï´Êñ¤Ç¡¤¼¡¤Î¤è¤¦¤Ë¤¹¤ì¤ÐÎɤ¤¡¥
// programu source ɽµ­
#highlighter(language=ruby,number=off,cache=on){{
def col_vec(m_a, k)
  v_y = make_vec(m_a.size)

  for i in 1..m_a.size do
    v_y[i-1] = m_a[i-1][k-1]
  end

  return v_y
end
}}
»Ä¤Ã¤¿¡Ö¹ÔÎó¤Î¤Ò¤Ê¤¬¤¿¤òºî¤ë¡×µ¡Ç½¤Ï¡¤¥Ù¥¯¥È¥ë¤òºî¤ëµ¡Ç½¤ò»È¤Ã¤Æ
// programu source ɽµ­
#highlighter(language=ruby,number=on,cache=on){{
# n x m ¹ÔÎó¤òºî¤ë
def make_mtx(n,m)
  a = []
  n.times { a.push( make_vec(m) ) }
  return a
end
}}
¤È¤¹¤ì¤Ð¤è¤¤¡¥´Êñ¤¹¤®¤ÆÇϼ¯¤Ë¤µ¤ì¤Æ¤¤¤ëµ¤Ê¬¤âÍ­¤ë¤«¤â¤·¤ì¤Ê¤¤¤±¤ì¤É¤â¡¥
&ref(/materials/warning.png); (¾åµé¼Ô¸þ¤±) Ruby ¤Îµ¡Ç½¤ò¤­¤Á¤ó¤È»È¤Ã¤Æ½ñ¤¯¤Ê¤é¤Ð
#highlighter(language=ruby,number=off,cache=on){{
# n x m ¹ÔÎó¤òºî¤ë
def make_mtx(n,m)
  return Array.new(n){ Array.new(m){0.0} }
end
}}
¤È¤¤¤¦´¶¤¸¤Ë¤Ê¤ë¤À¤í¤¦¡¥

¤µ¤Æ¡¤¤³¤ì¤Ç¤³¤Îµ¡Ç½¤â´°À®¤·¤¿¡¥»î¤·¤ËÆ°¤«¤·¤Æ¤ß¤ë¤È¡¤
>  [ 19.0 22.0 ]
>  [ 43.0 50.0 ]
>  [ 32.0 74.0 ]

¤È¤Ê¤ê¡¤³Î¤«¤ËÀµ¤·¤¯Æ°¤¤¤Æ¤¤¤ë¤³¤È¤¬Ê¬¤«¤ë¡¥

&br;
** ÌäÂê¤òÂ礭¤á¤ËÊѹ¹: ºÇ½ªÃʳ¬¤Ø [#zfba35ec]

¤µ¤Æ¡¤¤­¤Á¤ó¤ÈÆ°¤¤¤Æ¤¤¤ë¤è¤¦¤Ë¸«¤¨¤ë¤Î¤Ç¡¤ÌäÂê¤ò»Ø¼¨¤µ¤ì¤¿ 4 x 4 ¤Ë¼è¤ê´¹¤¨¤è¤¦¡¥
¤Þ¤¿¡¤½ÐÎϤ⾯¤·Æɤߤ䤹¤¯¤·¤¿¤¤¡¥
¤È¤¤¤¦¤³¤È¤Ç¡¤Î㤨¤Ð°Ê²¼¤Î¤è¤¦¤Ë¤Ê¤ë¤À¤í¤¦¡¥
// programu source ɽµ­
#highlighter(language=ruby,number=on,cache=on){{
include Math

# ¥Ù¥¯¥È¥ë¤ÎÆâÀÑ¡¥Á°²ó¤Î¥³¥Ô¡¼
def inner_product(v_a, v_b)
  sum = 0.0
  for i in 1..v_a.size do
    sum += v_a[i-1]*v_b[i-1]
  end
  return sum
end

# n ¼¡¸µ¥Ù¥¯¥È¥ë¤òºî¤ë
def make_vec(n)
  a = []
  n.times { a.push(0.0) }
  return a
end

# n x m ¹ÔÎó¤òºî¤ë
def make_mtx(n,m)
  a = []
  n.times { a.push( make_vec(m) ) }
  return a
end

# Îó¥Ù¥¯¥È¥ë¤òÈ´¤­½Ð¤¹
def col_vec(m_a, k)
  v_y = make_vec(m_a.size)

  for i in 1..m_a.size do
    v_y[i-1] = m_a[i-1][k-1]
  end

  return v_y
end

# ¹ÔÎóƱ»Î¤ÎÀÑ: ¹ÔÎóÆó¤Ä¤¬°ú¿ô
def mtx_product_mtx(m_a, m_b)
  m_c = make_mtx(m_a.size, m_a.size)

  for i in 1..m_a.size do
    for j in 1..m_a.size do
      m_c[i-1][j-1] = inner_product(m_a[i-1],col_vec(m_b,j))
    end
  end

  return m_c
end

# ¹ÔÎó¤È¥Ù¥¯¥È¥ë¤ÎÀÑ: ¹ÔÎó¤È¥Ù¥¯¥È¥ë¤¬°ú¿ô
def mtx_product_vec(m_a, v_x)
  v_y = make_vec(m_a.size)

  for i in 1..m_a.size do
    v_y[i-1] = inner_product(m_a[i-1], v_x)
  end

  return v_y
end

# ¹ÔÎó¤ò¿Í´ÖÍѤ˽ÐÎϤ¹¤ë
def print_mtx(m_a)
  for i in 1..m_a.size do
    print_vec(m_a[i-1])
  end
end

# ¥Ù¥¯¥È¥ë¤ò¿Í´ÖÍѤ˽ÐÎϤ¹¤ë
def print_vec(v_x)
  print("[ ")
  for i in 1..v_x.size do
    print(v_x[i-1]," ")
  end
  print("]\n")
end

# °Ê²¼¡¤¥×¥í¥°¥é¥àËÜÂÎ

a = [[1,2,3,4],
     [5,6,7,8],
     [9,10,11,12],
     [13,14,15,16]]

b = [[17,18,19,20],
     [21,22,23,24],
     [25,26,27,28],
     [29,30,31,32]]

x = [3,4,5,6]

# ¹ÔÎóƱ»Î¤ÎÀѤò·×»»
c = mtx_product_mtx(a,b)

# ¹ÔÎó¤È¥Ù¥¯¥È¥ë¤ÎÀѤò·×»»
y = mtx_product_vec(a,x)

# °Ê²¼¡¤²èÌ̤˽ÐÎÏ
print("A = \n")
print_mtx(a)
print("\n")

print("B = \n")
print_mtx(b)
print("\n")

print("A B = \n")
print_mtx(c)
print("\n")

print("x = \n")
print_vec(x)
print("\n")

print("A x = \n")
print_vec(y)
}}
¤½¤·¤Æ¡¤¤³¤ì¤òÆ°¤«¤¹¤È¼¡¤Î¤è¤¦¤Ë¤Ê¤ë¡¥
¼ê·×»»¤Ê¤É¤Ç¡¤³Î¤«¤ËÀµ¤·¤¤·ë²Ì¤Ç¤¢¤ë¤³¤È¤¬³Î¤«¤á¤é¤ì¤ë¡¥
>  A =
>  [ 1 2 3 4 ]
>  [ 5 6 7 8 ]
>  [ 9 10 11 12 ]
>  [ 13 14 15 16 ]
>  &br;
>  B =
>  [ 17 18 19 20 ]
>  [ 21 22 23 24 ]
>  [ 25 26 27 28 ]
>  [ 29 30 31 32 ]
>  &br;
>  A B =
>  [ 250.0 260.0 270.0 280.0 ]
>  [ 618.0 644.0 670.0 696.0 ]
>  [ 986.0 1028.0 1070.0 1112.0 ]
>  [ 1354.0 1412.0 1470.0 1528.0 ]
>  &br;
>  x =
>  [ 3 4 5 6 ]
>   
>  A x =
>  [ 50.0 122.0 194.0 266.0 ]

&ref(/materials/warning.png); ´°À®¤·¤¿¥×¥í¥°¥é¥à¤ÏŤ¤¤¬¡¤¤³¤¦¤·¤¿¤ä¤êÊý¤Ç½ç½øΩ¤Æ¤Çºî¤ì¤ÐÆñ¤·¤¤¤³¤È¤Ï²¿¤â̵¤¤¡¥
º£²ó¤Î²ÝÂ꤬Æñ¤·¤¤¤È»×¤Ã¤¿¿Í¤Ï¡¤Á´Âι½Â¤¤ò¹Í¤¨¤º¤Ë¤Ê¤ó¤È¤Ê¤¯¥×¥í¥°¥é¥ß¥ó¥°¤·¤è¤¦¤È¤·¤¿¤Î¤Ç¤Ï¤Ê¤¤¤À¤í¤¦¤«¡¥¤½¤Î¤è¤¦¤Ê³ØÀ¸¤Ï¡Ö»×¤¤¤Ä¤«¤Ê¤«¤Ã¤¿¡×¤Èȯ¸À¤¹¤ë¤³¤È¤¬Â¿¤¤¤¬¡¤¤½¤ì¤Ï°Ê²¼¤ÎÆóÅÀ¤Ë¤ª¤¤¤Æ¤½¤â¤½¤â¹Í¤¨Êý¤¬´Ö°ã¤Ã¤Æ¤¤¤ë¡¥
+ Ê£»¨¤Ê¤â¤Î¤ËÂФ¹¤ëÂнè¤ò¤¤¤­¤Ê¤ê¡Ö»×¤¤¤Ä¤¯¡×¤Û¤ÉÉáÄ̤οʹ֤ÎǾ¤ß¤½¤ÏÎɤ¯½ÐÍè¤Æ¤¤¤Ê¤¤¡¥¤Ë¤â´Ø¤ï¤é¤º¼«Ê¬¤Ï¤Ç¤­¤ë¤È»×¤¤¹þ¤ó¤Ç¤¤¤ë¤È¤¤¤¦°ÕÌ£¤Ç ''ÐþËý'' ¤Ç¤¢¤ë.
+ ¥×¥í¥°¥é¥à¤Ï¡ÖÂоݤòʬ²ò¤·¤Æµ¡Ç½¤òµ­½Ò¤¹¤ëÁàºî¤ò·«¤êÊÖ¤·¤¿·ë²Ì¡×¤Ê¤Î¤Ë¤½¤Î·ë²Ì¤ò¡Ö»×¤¤¤Ä¤¯¡×¤È¤ß¤Ê¤¹¤Î¤Ï¡¤''how'' ¤¬º¬Ëܤ«¤é´Ö°ã¤Ã¤Æ¤¤¤ë¤È¤¤¤¦°ÕÌ£¤Ç¡Ö¤ª¶â¤¬¶õ¤«¤é¹ß¤Ã¤Æ¤¯¤ë¤Î¤òÂԤĤȤ¤¤¦¤Î¤ÈƱ¤¸¡×¤À¡¥

¤³¤ì¤Ï¤ª¤½¤é¤¯¡¤¡ÖÊ£»¨¤µ¤òʬ²ò¤¹¤ë¤³¤È¤ÎËܼÁ¤µ¡¤½ÅÍ×À­¤òÍý²ò¤·¤Æ¤¤¤Ê¤¤¡×¤³¤È¤¬¸¶°ø¤À¤í¤¦¡¥¤³¤Î¤³¤È¤Ï·Ú»ë¤·¤Æ¤Ï¤Ê¤é¤Ê¤¤¡¥Âç»ö¤Ê¤³¤È¤Ê¤Î¤Çɸ¸ìŪ¤ËÂ礭¤¯½ñ¤¤¤Æ¤ª¤³¤¦¡¥
&br;

// CENTER:&size(24){''¥×¥í¥°¥é¥ß¥ó¥°¤Ï»×¤¤¤Ä¤¯¤â¤Î¤Ç¤Ï¤Ê¤¤¡¥''};
// CENTER:&size(24){''ÂоݤÎÊ£»¨¤µ¤òʬ²ò¤·¤Æ¤«¤éµ¡Ç½¤ò¼ÂÁõ¤¹¤ë¡ÖÁàºî¡×¤Ç¤¢¤ë¡¥''};
CENTER:&size(24){''¥×¥í¥°¥é¥ß¥ó¥°¤Ç¤Ï¥Æ¥¯¥Ë¥«¥ë¤Êµ¡Ç½¼ÂÁõ¤ËÌܤòÃ¥¤ï¤ì¤¬¤Á¤À¤¬¡¤''};
CENTER:&size(24){''¤à¤·¤í¡ÖÌäÂê¤ò¤É¤¦Ê¬²ò¤¹¤ë¤«¡×¤ËÃíÎϤ¹¤Ù¤­¤Ç¤¢¤ë¡¥''};
&br;

&ref(/materials/warning.png); ¡ÖÆñ¤·¤«¤Ã¤¿¡×¡Ö»×¤¤¤Ä¤«¤Ê¤«¤Ã¤¿¡×¤È¥ì¥Ý¡¼¥È¤Ë½ñ¤¤¤¿¿Í¤Ï¡¤¼«Ê¬¤Ë²¿¤¬Â­¤ê¤Ê¤¤¤Î¤«¤â¤¦°ìÅÙ¤æ¤Ã¤¯¤ê¹Í¤¨¤Æ¤ß¤è¤¦¡¥

&br;
** ¥×¥í¥°¥é¥àÃæ¤ËƱ¤¸¤³¤È¤ò·«¤êÊÖ¤µ¤Ê¤¤ [#adc95422]

Àè¤Ë½ñ¤¤¤¿¤¬¡¤Æ±ÍͤνèÍý¤ò¤Ê¤ó¤É¤â½ñ¤«¤º¤Ë¡Ö´û¤Ë¥×¥í¥°¥é¥à¤·¤Æ¤¢¤ë¤³¤È¤òÍøÍѤ·¤Æ¥×¥í¥°¥é¥à¤¹¤ë¡×¤³¤È¤Ï½ÅÍפǤ¢¤ë¡¥
&ref(/materials/warning.png); ¼ÂºÝ¤Ë¡¤¾å¤Î¥µ¥ó¥×¥ë¤Ç¤Ï¡ÖÍ×ÁǤò³Ý¤±¤Æ­¤·¤Æ¤¤¤¯Áàºî¡×¤¬°ì²Õ½ê¤Ë¤·¤«Ìµ¤¤¤³¤È¤ËÃåÌܤ·¤è¤¦¡¥¤½¤·¤Æ¡¤¼«Ê¬¤Î½ñ¤¤¤¿¥×¥í¥°¥é¥à¤Ç¤Ï¤½¤¦¤·¤¿Áàºî¤¬²¿²Õ½ê¤Ë½ñ¤«¤ì¤Æ¤¤¤ë¤«¡¤¥Á¥§¥Ã¥¯¤·¤Æ¤ß¤è¤¦¡¥

&br;
* ¾ò·ï¤¬Ëþ¤¿¤µ¤ì¤Æ¤¤¤ë´Ö¤Ï¥ë¡¼¥×¤¹¤ë : while Ì¿Îá [#d2fc21da]

¾ò·ï¤¬Ëþ¤¿¤µ¤ì¤Æ¤¤¤ë´Ö¤Ï¥ë¡¼¥×¤¹¤ë¤È¤¤¤¦À©¸æ¤ò³Ø¤Ü¤¦¡¥
¤Þ¤º¤Ïʸˡ¤ò½ñ¤¤¤Æ¤ª¤³¤¦¡¥
&br;

&size(24){''while (&color(blue){¾ò·ï};) do''};
        &size(16){''&color(blue){¾å¤Î¾ò·ï¤¬Ëþ¤¿¤µ¤ì¤¿¤é¼Â¹Ô¤µ¤ì¤ë};''};
        &size(16){''&color(blue){¡Ä};''};
        &size(16){''&color(blue){# ¤³¤³¤Þ¤ÇÍ褿¤é¡¤¤â¤¦°ìÅÙ¾å¤ËÌá¤Ã¤Æ¾ò·ï¤¬¥Á¥§¥Ã¥¯¤µ¤ì¤ë};''};
&size(24){''end''};
&br;

&ref(/materials/warning.png); ''for'' ¤È ''if'' ¤òÁȤ߹ç¤ï¤»¤Æµ¼»÷Ū¤Ë¼Â¸½¤¹¤ë¤³¤È¤â¤Ç¤­¤ë.

&ref(/materials/notes.png); ¤³¤Î ''while'' Ì¿Îá¤ò»È¤Ã¤Æ¡¤1 + 2 + 3 + ... ¤È¤¤¤¦·×»»¤¬¤¤¤Ä»ØÄꤵ¤ì¤¿¿ô»ú¤òĶ¤¨¤ë¤«Ä´¤Ù¤ë¥×¥í¥°¥é¥à¤ò½ñ¤¤¤Æ¤ß¤è¤¦¡¥ÅÓÃæ·Ð²á¤â½ÐÎϤ¹¤ë¤è¤¦¤Ë¤·¤è¤¦¡¥
&br;
¤³¤Î¾ì¹ç¤Ï¡¤Î㤨¤Ð¼¡¤Î¤è¤¦¤Ê¥×¥í¥°¥é¥à¤Ë¤Ê¤ë¤À¤í¤¦¡¥
// programu source ɽµ­
#highlighter(language=ruby,number=on,cache=on){{
include Math

# Ķ¤¨¤ë¤«¤É¤¦¤«Ä´¤Ù¤ë¿ô¤Ïµ¯Æ°»þ¤Ë¤â¤é¤¦
n = ARGV[0].to_i

# ¹ç·×¤Î½é´üÃͤϤâ¤Á¤í¤ó¥¼¥í¡¥
sum = 0

# ­¤·¤Æ¤¤¤¯¿ô¡¥ ºÇ½é¤Ï 1 ¤«¤é¤À¤¬¡¤¤³¤ÎÃʳ¬¤Ç¤Î sum ¤ËÂФ·¤Æ¤Ï¤Þ¤À 0 ¤·¤«Â­¤µ¤ì¤Æ¤¤¤Ê¤¤¤Î¤Ç¡¤
# ¥¼¥í¤Ë¤·¤Æ¤ª¤¯¤Î¤¬¹çÍýŪ¡¥
i = 0

# n ¤òĶ¤¨¤Æ¤Ê¤¤¤È while ¤ÎÃæ¿È¤¬¼Â¹Ô¤µ¤ì¡¤ºÆ¤Ó n ¤òĶ¤¨¤Æ¤¤¤Ê¤¤¤«¥Á¥§¥Ã¥¯¡Ä¤ò·«¤êÊÖ¤¹¡¥
while (sum <= n) do
  print("i = ", i, ", sum = ", sum, " <= ", n, "\n") 
  # Àè¤Ë½ÐÎÏ. ¤³¤ÎÃʳ¬¤Ê¤é³Î¼Â¤Ë sum <= n.
  # while ¤Ç¤Ï¡¤·ë²Ì¤ËÂФ¹¤ëȽÃǤä½ÐÎϤϾò·ï¥Á¥§¥Ã¥¯¤Î¤¹¤°¤¢¤È¤Ë¹Ô¤¦¤Î¤¬¶Ú¡¥

  i += 1     # i ¤ò 1Áý¤ä¤¹¡¥
  sum += i   # i ¤À¤±¹ç·×¤¹¤ë¡¥
end

# i ¤òÁý¤ä¤·¤Æ¤«¤é i ¤ò sum ¤Ë­¤¹¤³¤È! 
# sum ¤Ë­¤·¤Æ¤«¤é i ¤òÁý¤ä¤¹¤È¡¤ºÇ¸å¤Ë¤Ä¤¸¤Ä¤Þ¤¬¹ç¤ï¤Ê¤¯¤Ê¤ë¤è¡¥
# ¤è¤¯Ê¬¤«¤é¤Ê¤¤¿Í¤Ï¡¤sum ¤Ë­¤·¤Æ¤«¤é i ¤òÁý¤ä¤¹¤è¤¦¤Ë¤·¤Æ¥×¥í¥°¥é¥à¤òÆ°¤«¤·¤Æ¤ß¤è¤¦.

# ºÇ¸å¤Ë·ë²Ì¤ò½ÐÎÏ¡¥
print("i = ", i, ", sum = ", sum, " > ", n, "\n")
}}
¤³¤ì¤ò
  ruby -w ./over.rb 100

¤Ê¤É¤È¤·¤Æµ¯Æ°¤¹¤ë¤È¡¤
>  i = 0, sum = 0 <= 100
>  i = 1, sum = 1 <= 100
>  i = 2, sum = 3 <= 100
>  i = 3, sum = 6 <= 100
>  i = 4, sum = 10 <= 100
>  i = 5, sum = 15 <= 100
>  i = 6, sum = 21 <= 100
>  i = 7, sum = 28 <= 100
>  i = 8, sum = 36 <= 100
>  i = 9, sum = 45 <= 100
>  i = 10, sum = 55 <= 100
>  i = 11, sum = 66 <= 100
>  i = 12, sum = 78 <= 100
>  i = 13, sum = 91 <= 100
>  i = 14, sum = 105 > 100

¤È¤¤¤¦¤è¤¦¤Ë·ë²Ì¤¬ÆÀ¤é¤ì¤ë¡¥¤É¤¦¤À¤í¤¦¤«¡¥¼«Ê¬¤Ç¤Ç¤­¤¿¤À¤í¤¦¤«¡¥

&br;
&ref(/materials/warning.png); ´ª¤ÎÎɤ¤¿Í¤Ï¤â¤¦µ¤¤Å¤¤¤Æ¤¤¤ë¤À¤í¤¦¤¬¡¤while Ì¿Îá¤ÎËܼÁ¤ò½ñ¤¤¤Æ¤ª¤¯¤È¡¤
CENTER:&size(24){''while = æ½ÐȽÄê¤Ä¤­Ìµ¸Â¥ë¡¼¥×¤Î°ì¼ï''};

¤Ç¤¢¤ë¡¥

&br;
** Fizz Buzz ¤ËÄ©Àï [#w6428d88]

Fizz Buzz ¤È¤Ï¸ÀÍÕÍ·¤Ó¤Î°ì¼ï¤Ç¡¤1, 2,... ¤È½ç¤Ë¿ô»ú¤ò½Ò¤Ù¤Æ¤¤¤¯»þ¤Ë¡¤
- 3 ¤Ç³ä¤êÀÚ¤ì¤ë¤È¤­¤Ï¤½¤Î¿ô»ú¤ÎÂå¤ï¤ê¤Ë ''Fizz'' ¤È¸À¤¦
- 5 ¤Ç³ä¤êÀÚ¤ì¤ë¤È¤­¤Ï¤½¤Î¿ô»ú¤ÎÂå¤ï¤ê¤Ë ''Buzz'' ¤È¸À¤¦
- ¤¿¤À¤·¡¤3 ¤Ç¤â 5 ¤Ç¤â³ä¤êÀÚ¤ì¤ë¤È¤­¤ÏÆÃÊ̤ˤ½¤Î¿ô»ú¤ÎÂå¤ï¤ê¤Ë ''Fizz Buzz'' ¤È¸À¤¦

¤È¤¤¤¦¤â¤Î¤Ç¤¢¤ë¡¥¤½¤³¤Ç¡¤¤³¤ì¤ò°Ê²¼¤Î¤è¤¦¤Ë¥×¥í¥°¥é¥à¤·¤è¤¦¡¥

- ¥×¥í¥°¥é¥àµ¯Æ°»þ¤Ë¤¢¤ëÄøÅÙÂ礭¤Ê¿ô ''n'' (100 ¤°¤é¤¤?) ¤¬Í¿¤¨¤é¤ì¤ë¡¥
- 1,2,... ¤È¿ô¤ò¾å¤Î¥ë¡¼¥ë¤Ç½ÐÎϤ·¤Æ¤¤¤Ã¤Æ¡¤''Fizz'', ''Buzz'', ''Fizz Buzz'' ¤Î½Ð¸½²ó¿ô¤Î¹ç·×¤¬ ''n'' ¤Ë¤Ê¤Ã¤¿¤éÄä»ß¤¹¤ë¡¥

¶ñÂÎŪ¤Ë¤Ï¡¤Î㤨¤Ð
  ruby -w fb.rb 10

¤È¤·¤Æ 10¸Ä¤Î¡ÖÂå¤ï¤ê¡×¤¬½Ð¤Æ¤¯¤ë¤Þ¤Ç¤ò½ÐÎϤµ¤»¤ë¤È¡¤
>  1
>  2
>  Fizz
>  4
>  Buzz
>  Fizz
>  7
>  8
>  Fizz
>  Buzz
>  11
>  Fizz
>  13
>  14
>  Fizz Buzz
>  16
>  17
>  Fizz
>  19
>  Buzz
>  Fizz

¤È¤Ê¤ë¡¥¤µ¤Æ¡¤¤ß¤Ê¤µ¤ó¤Ï¤¦¤Þ¤¯¤Ç¤­¤ë¤À¤í¤¦¤«¡¥
&ref(/materials/warning.png); ¤½¤ì¤Ã¤Ý¤¤Æ°ºî¤¬ÆÀ¤é¤ì¤Æ¤â°Â¿´¤·¤Æ¤Ï¤¤¤±¤Ê¤¤¡¥¤­¤Á¤ó¤È»ä¤Î¥µ¥ó¥×¥ë¤ÈƱ¤¸½ÐÎϤˤʤäƤ¤¤ë¤«¡¤ÊѤʤȤ³¤í¤Ç´Ö°ã¤¨¤Æ 15 ¤ÎÂå¤ï¤ê¤Ë ''Buzz'' ¤Ê¤É¤È¤Ê¤Ã¤Æ¤¤¤Ê¤¤¤«¡¤Ãí°Õ¿¼¤¯³Î¤«¤á¤è¤¦¡¥

&br;
** (¾åµé¼Ô¸þ¤±) 3¤ÎÇÜ¿ô¤È3¤Î¤Ä¤¯¿ô¤Î¤È¤­¤À¤±¥¢¥Û [#y02db8ad]

¡Ö3¤ÎÇÜ¿ô¤È3¤Î¤Ä¤¯¿ô¤Î¤È¤­¤À¤±¥¢¥Û¤Ë¤Ê¤ë¡×¤È¤·¤Æ¾å¤ÈƱ¤¸¤³¤È¤ËÄ©À路¤Æ¤ß¤è¤¦¡¥
¤¿¤À¤·¡¤¡Ö3¤Î¤Ä¤¯¡×¤È¤¤¤¦¾ò·ï¤Ëʸ»úÎó½èÍý¤¬É¬Íפǡ¤¤³¤ì¤Ï¶µ¤¨¤¿ÈϰϤËÆþ¤Ã¤Æ¤Ê¤¤Ã챤¬É¬ÍפʤΤǼ«Ê¬¤ÇÄ´¤Ù¤ëɬÍפ¬¤¢¤ë¡¥

&br;
** Collatz ¤ÎͽÁÛ¤òÄ´¤Ù¤Æ¤ß¤è¤¦ [#a4adf91b]

''Collatz ¤ÎͽÁÛ'' ¤È¤¤¤¦Í½ÁÛ¤¬¤¢¤ë¡¥¤³¤ì¤ò ''while'' ¤ò»È¤Ã¤Æ¾¯¤·³Î¤«¤á¤Æ¤ß¤è¤¦¡¥
¤Þ¤º¤³¤ÎͽÁۤˤĤ¤¤Æµ­½Ò¤·¤è¤¦¡¥¤³¤ÎͽÁۤȤϡ¤ÀµÀ°¿ô ''n'' ¤ËÂФ¹¤ë´Ø¿ô ''f'' ¤ò
- n ¤¬¶ö¿ô¤Î¾ì¹ç: f(n) = n / 2
- n ¤¬´ñ¿ô¤Î¾ì¹ç: f(n) = (3 * n) + 1

¤È¤¹¤ë¤È¡¤¡Ö¤¤¤«¤Ê¤ëÀµÀ°¿ô¤ËÂФ·¤Æ¤â¤³¤Î ''f'' ¤ò·«¤êÊÖ¤·¤ÆŬÍѤ¹¤ë¤È¤¤¤º¤ìɬ¤º 1 ¤Ë¤Ê¤ë¡×¤È¤¤¤¦¤â¤Î¤Ç¤¢¤ë¡¥

&ref(/materials/notes.png); ¤³¤ÎͽÁÛ¤¬Í¿¤¨¤é¤ì¤¿¿ô¤Ë¤Ä¤¤¤ÆÀ®¤êΩ¤Ä¤«¤É¤¦¤«¤ò³Î¤«¤á¤ë¤¿¤á¤Ë¡¤ÆþÎϤ·¤¿¿ô¤Ë ''f'' ¤òŬÍѤ·¤Æ 1 ¤Ë¤Ê¤ë¤Þ¤Ç¤Î·Ð°Þ¤ò½ÐÎϤ¹¤ë¥×¥í¥°¥é¥à¤ò½ñ¤³¤¦¡¥
¶ñÂÎŪ¤Ë¤Ï¡¤Î㤨¤Ð
  ruby -w collatz.rb 100

¤È¤·¤ÆºÇ½é¤Ë "100" ¤«¤é¥¹¥¿¡¼¥È¤·¤¿¾ì¹ç¤ò¥Á¥§¥Ã¥¯¤µ¤»¤ë¤È
>  100 -> 50 -> 25 -> 76 -> 38 -> 19 -> 58 -> 29 -> 88 -> 
>  44 -> 22 -> 11 -> 34 -> 17 -> 52 -> 26 -> 13 -> 40 
>  -> 20 -> 10 -> 5 -> 16 -> 8 -> 4 -> 1.

¤È¤¤¤¦¤è¤¦¤Ê½ÐÎϤò½Ð¤¹¤è¤¦¤Ë¤·¤è¤¦¡¥
&ref(/materials/warning.png); ¡Ö''f'' ¤Î·ë²Ì¤¬ 1 ¤Ç¤Ê¤¤´Ö¤Ï ''while'' ¤ÎÃæ¿È¤¬¼Â¹Ô¤µ¤ì¤ë¡×¤È¤¤¤¦¥¹¥È¡¼¥ê¡¼¤Ë¤Ê¤ë¤Ï¤º¤À¡¥

&br;
* º£Æü¤ÎÁí»Å¾å¤² [#be9b628a]

¾å¤Î Collatz ¤ÎͽÁÛ¤ò°Ê²¼¤Î¤è¤¦¤ËÄ´¤Ù¤ë¥×¥í¥°¥é¥à¤ò½ñ¤¤¤Æ¡¤·ë²Ì¤ò¥Õ¥¡¥¤¥ë¤Ë¤È¤Ã¤Æ¤ª¤¤¤Æ¤«¤éŬÅö¤Ë¥°¥é¥Õ¤Ë¤·¤è¤¦¡¥
¾ò·ï¤Ï°Ê²¼¤ÎÄ̤ê¤Ç¤¢¤ë¡¥

- ÀµÀ°¿ô ''k'' ¤ËÂФ·¤Æ¡¤Collatz ¤Î´Ø¿ô ''f'' ¤ò²¿²óŬÍѤ¹¤ë¤È 1 ¤Ë¤Ê¤ë¤«¤ò½ÐÎϤ¹¤ë´Ø¿ô ''num_col(k)'' ¤¬ ''def'' ¤ò»È¤Ã¤ÆÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡¥
- ¥×¥í¥°¥é¥àµ¯Æ°»þ¤Ë¤¢¤ëÄøÅÙÂ礭¤Ê¿ô ''n'' (100¤°¤é¤¤) ¤¬Í¿¤¨¤é¤ì¤ë¡¥
- 1 ¤«¤é»Ï¤á¤Æ¡¤''n'' ¤Þ¤Ç ''num_col'' ¤Î·ë²Ì¤ò½ÐÎϤ¹¤ë¡¥
- Ãí: ''num_col(1)'' ¤Ï¤Þ¤¢ 3 ¤È²ò¼á¤·¤Æ¤â¤è¤¤¤À¤í¤¦( 0 ¤È¤·¤Æ¤¯¤ì¤ë¤È¤è¤êÎɤ¤¤¬)

&ref(/materials/warning.png); ''num_col(1)'' ¤¬ 3 ¤Ë¤Ê¤Ã¤¿¤ê¤·¤Ê¤¤¤è¤¦¤ËÃí°Õ¤·¤è¤¦¡¥

¶ñÂÎŪ¤Ë¤Ï¡¤Î㤨¤Ð
  ruby -w col_num.rb 30

¤È¤·¤Æ 30 ¤Þ¤Ç¤òÄ´¤Ù¤µ¤»¤ë¤È
>  1, 0
>  2, 1
>  3, 7
>  4, 2
>  5, 5
>  6, 8
>  7, 16
>  8, 3
>  9, 19
>  10, 6
>  11, 14
>  12, 9
>  13, 9
>  14, 17
>  15, 17
>  16, 4
>  17, 12
>  18, 20
>  19, 20
>  20, 7
>  21, 7
>  22, 15
>  23, 15
>  24, 10
>  25, 23
>  26, 10
>  27, 111
>  28, 18
>  29, 18
>  30, 18

¤È¤¤¤¦¤è¤¦¤Ê½ÐÎϤò½Ð¤¹¤è¤¦¤Ë¤È¤¤¤¦¤³¤È¤Ç¤¢¤ë¡¥
¤½¤·¤Æ¡¤¤³¤Î½ÐÎϥǡ¼¥¿¤ò¥Õ¥¡¥¤¥ë¤ËÊݸ¤·¤Æ¤ª¤¤¤ÆŬÅö¤Ê¥Ä¡¼¥ë¤Ç¥°¥é¥Õ¤Ë¤·¤Æ(¤¿¤À¤·¡¤¥¨¥¯¥»¥ëÅù¤Îɽ¥Ä¡¼¥ë¤Ï¶Ø»ß)¡¤
&ref(./collatz.png,80%);

¤È¤¤¤¦¤è¤¦¤Ê¤â¤Î¤òºî¤í¤¦¤È¤¤¤¦¤³¤È¤Ë¤Ê¤ë¡¥

¤³¤ÎÎã¤Ç¤Ï 30¤Þ¤Ç¤À¤¬¡¤¤³¤ì¤ò 100 ¤°¤é¤¤¤ÎÃͤǼ¹Ԥ·¤Æ¡¤¥Ç¡¼¥¿¤È¥°¥é¥Õ¤òÆÀ¤é¤ì¤¿¤é´°À®¡¤¤È¤¤¤¦¤³¤È¤Ë¤Ê¤ë¡¥

&br;
* ¥ì¥Ý¡¼¥È [#z0c9dd1e]

ËÜÆü¼õ¤±¤¿¹ÖµÁ¤ª¤è¤Ó¹Ô¤Ã¤¿¼Â½¬¤Ë¤Ä¤¤¤Æ¡¤´Êñ¤Ë¤Þ¤È¤á¤¿Êó¹ð¤ò¤»¤è.
¤Þ¤¿¡¤Áí»Å¾å¤²¤ÎÉôʬ¤Ç¼«Ê¬¤Ç½ñ¤¤¤¿¥×¥í¥°¥é¥à¤òÊó¹ð¤»¤è.

¤â¤Á¤í¤ó³Æ¼«¤Î

+ ½ê°(³ØÉô¡¤³Ø²Ê)
+ ³ØÀÒÈÖ¹æ
+ ³Øǯ
+ »á̾
+ Æü»þ
+ ´Î¿´¤Î¥ì¥Ý¡¼¥ÈÆâÍÆ(ÆÀ¤¿Ãθ«¡¤ºî¶È¤Ë¤Ä¤¤¤Æµ¤¤Å¤¤¤¿¤³¤ÈÅù¤â)

¤ò½ñ¤¯¤Î¤ò˺¤ì¤Ê¤¤¤è¤¦¤Ë. 

* about Icons, ClipArts [#ubfbbb67]
Some icons in this page are downloadable at [[ICONFINDER:http://www.iconfinder.net/]].

The "note" icon &ref(/materials/notes.png); designed by [[Marco Martin:http://www.notmart.org/]] is distributed with the LGPL licence,
the "warning" icon &ref(/materials/warning.png); designed by [[Alexandre Moore:http://nuovext.pwsp.net/]] with the GPL licence
and the "triangle" icon &ref(/materials/JNorth_arrow-right-sm.png); designed by [[Joseph North:http://sweetie.sublink.ca/]] is distributed with the [[Creative Commons (Attribution-Noncommercial-Share Alike 3.0 Unported):http://creativecommons.org/licenses/by-nc-sa/3.0/]] licence.

Some clip arts used in this page are downloadable at [[Open Clip Art Library:http://www.openclipart.org/]].
We deeply appreciate their superb works. With licence, they describe that "the actual clipart content on open clipart library is Public domain" in the web.

// ¨¬¨­¨®¨¯¨°¨±¨²¨³¨´¨µ¨¶


// ¥³¥Þ¥ó¥É¥é¥¤¥óÆþÎϤϡֹÔƬ¤ò¥Ö¥é¥ó¥¯¤Ç»Ï¤á¤ë¡×.
// ¥³¥Þ¥ó¥É¥é¥¤¥ó½ÐÎϤϡֹÔƬ¤ò > ¤Ç»Ï¤á¤ë¡×.

// ¼Â½¬¥¢¥¤¥³¥ó
// &ref(/materials/notes.png);

// Ãí°Õ¥¢¥¤¥³¥ó
// &ref(/materials/warning.png);

// Link ¥¢¥¤¥³¥ó
// &ref(/materials/JNorth_arrow-right-sm.png);

// Âçʸ»ú¤Ç¤Î¶¯Ä´ 
// CENTER:&size(24){''¤Û¤²¤Û¤²''};

// programu source ɽµ­
// #highlighter(language=ruby,number=on,cache=on){{}}