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


#contents

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

¤Þ¤ºÁ°²ó¤ÎÁí»Å¾å¤²¤òºÆ·Ç¤¹¤ë¤È¡¤°Ê²¼¤Î¤è¤¦¤Ç¤¢¤Ã¤¿¡¥
&br;
n x m ¹ÔÎó¤Î¥Ç¡¼¥¿¤òÆþÎϤ·¤¿¤é¡¤¤½¤Î¹ÔÎó¤ÈžÃÖ¹ÔÎó¤ò¤½¤ì¤Ã¤Ý¤¯É½¼¨¤¹¤ë¥×¥í¥°¥é¥à¤ò½ñ¤³¤¦¡¥
&ref(/materials/warning.png); ¤â¤Á¤í¤ó¡¤Ç¤°Õ¤Î¥µ¥¤¥º¤Î¹ÔÎó¤ËÂФ·¤ÆÆ°ºî¤·¤Ê¤¤¤È¤¤¤±¤Ê¤¤¡ª
¤¿¤À¤·¡¤¹ÔÎó¤Î·Á¤Ë¤Ê¤Ã¤Æ¤¤¤Ê¤¤¥Ç¡¼¥¿¤ÏÁÛÄꤷ¤Ê¤¯¤Æ¤âÎɤ¤¡¥
&br;

** Á´Âι½Â¤ [#u0c10b6b]
¤Ê¤Ë¤Ï¤È¤â¤¢¤ì¡¤ºÇ½é¤ÏÁ´Âι½Â¤¤«¤é¤Ç¤¢¤ë¡¥
º£²ó¤Î¾ì¹ç¡¤¹ÔÎó¤ÎžÃÖÁàºî¤Ê¤É¤âɬÍפʤΤǡ¤¤½¤ì¤â¹Íθ¤¹¤ë¤ÈÎ㤨¤Ð¼¡¤Î¤è¤¦¤Ë¤Ê¤ë¤À¤í¤¦¡¥
// programu source ɽµ­
#highlighter(language=ruby,number=on,cache=on){{
include Math

# ¥Ù¥¯¥È¥ë¤òɽ¼¨¤¹¤ë(°ÊÁ°¤Î¥×¥í¥°¥é¥à¤«¤é¥³¥Ô¡¼)
def print_vec(v_x)
  print("[ ")
  for i in 1..v_x.size do
    print(v_x[i-1]," ")
  end
  print("]\n")
end

# ¹ÔÎó¤òɽ¼¨¤¹¤ë(°ÊÁ°¤Î¥×¥í¥°¥é¥à¤«¤é¥³¥Ô¡¼)
def print_mtx(m_a)
  for i in 1..m_a.size do
    print_vec(m_a[i-1])
  end
end

# ¹ÔÎó¤ÎžÃÖ¤ò¹Ô¤¦
def transposed_mtx(m_a)
  # ¼ÂÁõ¤Ï¸å¤Ç¡¥
  return m_a
end


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

# ¹ÔÎó¤ÎÆþÎϤò¼õ¤±¤ëÉôʬ

# ÆþÎϹÔÎó¡¥Â礭¤µ¤¬Ê¬¤«¤é¤Ê¤¤°Ê¾å¡¤ºÇ½é¤Ï¶õ¤Ã¤Ý¤Ë¤·¤Æ¤ª¤¯¤·¤«¤Ê¤¤¡¥
matrix = []

# ÆþÎϤòÂ¥¤¹
print("? : ")
while (x = gets) do
  x.chomp!
  data = x.split()
  data.map!{ |e| e.to_f }
  # ¤³¤Î¾å¤Þ¤Ç¤Ï·è¤Þ¤Ã¤¿¥Ñ¥¿¡¼¥ó.

  # ¤µ¤Æ¡¤¹ÔÎó¤Ë¥Ç¡¼¥¿¤òÆ°¤ä¤Ã¤Æ­¤·¹þ¤à¡©

  # ÆþÎϤòÂ¥¤¹
  print("? : ")
end

# ÆþÎϹÔÎó¤Îɽ¼¨
print("Input matrix = \n")
print_mtx(matrix)

print("\n")

# ÆþÎϹÔÎó¤ÎžÃÖ¤Îɽ¼¨
print("Transposed matrix = \n")
print_mtx(transposed_mtx(matrix))
}}
¤³¤¦½ñ¤¤¤Æ¤·¤Þ¤¦¤È»Ä¤Ã¤¿½èÍý¤Ï¤´¤¯´Êñ¤Ê¤³¤È¤¬Ê¬¤«¤ë¡¥

** ÆþÎϥǡ¼¥¿¤ò¹ÔÎó¤È¤·¤Æ°·¤¦ [#q83107de]

¤Þ¤º¤Ï¡¤ÆþÎϤµ¤ì¤¿¡Ö¹Ô¥Ç¡¼¥¿¡×¤ò¹ÔÎó¤Ë­¤·¹þ¤à½èÍýÉôʬ¤ò´°À®¤µ¤»¤è¤¦¡¥¤½¤Î¤¢¤¿¤ê¤Ï¼¡¤Î¤è¤¦¤Ë¤Ê¤ë¤À¤í¤¦¡¥
// programu source ɽµ­
#highlighter(language=ruby,number=off,cache=on){{
# ÆþÎϤòÂ¥¤¹
print("? : ")
while (x = gets) do
  x.chomp!
  data = x.split()
  data.map!{ |e| e.to_f }
  # ¤³¤Î¾å¤Þ¤Ç¤Ï·è¤Þ¤Ã¤¿¥Ñ¥¿¡¼¥ó.

  # ¹Ô¥Ç¡¼¥¿¤ò push ¤¹¤ë¤À¤±¤Ç¤è¤¤¡ª¡ª
  matrix.push(data)

  # ÆþÎϤòÂ¥¤¹
  print("? : ")
end
}}

** ¹ÔÎó¤ÎžÃÖÁàºî [#l6b7567e]

¤¢¤È¤ÏžÃÖ½èÍý¤À¤±¤À¡¥¤³¤ì¤â¤â¤¦º£¤È¤Ê¤Ã¤Æ¤Ï´Êñ¤Ç¡¤¼¡¤Î¤è¤¦¤Ë¤Ê¤ë¤À¤í¤¦¡¥
// programu source ɽµ­
#highlighter(language=ruby,number=off,cache=on){{
def transposed_mtx(m_a)
  # ¹Í¤¨¤ë¤È¡¤½Ä²£¤Î¥µ¥¤¥º¤Ï²¼¤ÎÊýË¡¤ÇÆÀ¤é¤ì¤ë¡¥
  n = m_a.size
  m = m_a[0].size

  # žÃÖ¹ÔÎó¤Î¤â¤È¤òºî¤ë¡¥
  m_b = Array.new(m){ Array.new(n){0.0} }
  
  # Ãæ¿È¤òÆþ¤ì¤Æ¤¤¤¯¤À¤±.
  for i in 1..n do
    for j in 1..m do
      m_b[j-1][i-1] = m_a[i-1][j-1]
    end
  end

  # žÃÖ¹ÔÎó¤ò½ÐÎÏ¡¥
  return m_b
end
}}
¤ä¤Ã¤Æ¤ß¤ì¤Ð¤³¤ì¤À¤±¤ÎÏäÀ¡¥Æñ¤·¤¯¤Ê¤¤¤À¤í¤¦¡¥

* ´Ø¿ô¤Î¼«¸Ê¸ÀµÚ: ºÆµ¢ÄêµÁ [#o676defb]

¤µ¤Æ¡¤Ruby ¤Ê¤É¤Î¤¢¤ëÄøÅÙ¿¿¤ÃÅö¤Ê¸À¸ì¤Ç¤Ï¡¤Èó¾ï¤ËÊØÍø¤Êµ¡Ç½¡Ö´Ø¿ô¤ÎºÆµ¢ÄêµÁ¡×¤¬²Äǽ¤Ç¤¢¤ë¡¥
¤½¤³¤Ç¡¤¤³¤ÎºÆµ¢ÄêµÁ¤Ë¤Ä¤¤¤Æ³Ø¤Ü¤¦¡¥
&br;

¤Þ¤ºÍѸì¤ÎÀâÌÀ¤ò¤·¤Æ¤ª¤¯¤È¡¤´Ø¿ô¤ÎºÆµ¢ÄêµÁ¤¬²Äǽ¤È¤Ï¡¤¡Ö´Ø¿ô¤ÎÄêµÁʸÃæ¤Ë¡¤¼«Ê¬¼«¿È¤Î¸Æ¤Ó½Ð¤·¤¬»È¤¨¤ë¡×¤È¤¤¤¦¤â¤Î¤Ç¤¢¤ë¡¥
¤È¤¤¤Ã¤Æ¤â¥Ô¥ó¤ÈÍè¤Ê¤¤¤À¤í¤¦¤«¤é¡¤Îã¤ò»È¤Ã¤ÆÀâÌÀ¤·¤è¤¦¡¥
&br;

&ref(/materials/notes.png); ''sum(n) := 1 + 2 + ... + n'' ¤È¤¤¤¦´Ø¿ô¤òºÆµ¢ÄêµÁ¤ò»È¤Ã¤ÆÄêµÁ¤·¤Æ¤ß¤ë¤Î¤Ç¡¤°Ê²¼¤ÎÎ㤫¤éÍý²ò¤·¤è¤¦¡¥
&br;

¤Þ¤º¡¤ÂоݤȤʤë´Ø¿ô¤ò¼«Ê¬¼«¿È¤ò¸Æ¤Ó½Ð¤¹·Á¤Ç¡Ö¿ô³ØŪ¤Ë¡×ÄêµÁ¤·¤Ê¤ª¤¹¡¥
¤³¤Î ''sum'' ¤ÎÎã¤À¤È¡¤(n ¤òÀµÀ°¿ô¤È¤·¤Æ)¼¡¤Î¤è¤¦¤Ë¤Ç¤­¤ë¤³¤È¤ò¤Þ¤ºÍý²ò¤·¤è¤¦¡¥
&ref(./sum.png);
&ref(/materials/warning.png); º¸ÊÕ¤òÄêµÁ¤¹¤ë¼°¤Ç¤¢¤ë±¦Êդˡ¤º¸ÊÕ¤ÈƱ¤¸ ''sum'' ´Ø¿ô¤¬Åо줷¤Æ¤¤¤ë¤³¤È¤ËÃåÌܤ¹¤Ù¤·¡¥
&br;

&size(24){''ºÆµ¢ÄêµÁ¤¬À®¤êΩ¤Ä¾ò·ï¤È¤Ï?''};

¤³¤ÎºÆµ¢ÄêµÁ¤¬¡Ö°ÕÌ£¤ò»ý¤Ä¡×¤Ë¤Ï°Ê²¼¤Î¥Ý¥¤¥ó¥È¤¬Ëþ¤¿¤µ¤ì¤Æ¤¤¤ë¤³¤È¤¬É¬ÍפǤ¢¤ë¡¥¤è¤¯¹Í¤¨¤Æ¤ß¤è¤¦¡¥
+ ''º¸ÊÕ¤ò±¦ÊÕ¤ÇÃÖ¤­´¹¤¨¡¤¤µ¤é¤Ë±¦ÊÕ¤ÇÃÖ¤­´¹¤¨¡Ä ¤È³¤±¤Æ¤¤¤±¤ë·Á¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡¥''
+ ''ÃÖ´¹¤¨¤Î·«¤êÊÖ¤·¤¬¡Öɬ¤º½ª¤ï¤ë¡×¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤ë''¡§¤³¤ÎÎã¤À¤È¡¤É¬¤º ''n=1'' ¤Î¾ì¹ç¤ËÅþ㤹¤ë¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡¥

&ref(/materials/NG.png); ÄêµÁÃÖ´¹¤¨¤Î·«¤êÊÖ¤·¤¬¡Ö½ª¤ï¤é¤Ê¤¤¡×ÄêµÁ¤ò¹Ô¤Ã¤¿¾ì¹ç¡¤¥×¥í¥°¥é¥à¤Ï±Ê±ó¤ËÄä»ß¤·¤Ê¤¤! ɬ¤ºÄêµÁ¤¬ºÇ½ªÅª¤Ë´°·ë¤¹¤ë¤è¤¦¤ËÃí°Õ¤·¤ÆÄêµÁ¤·¤è¤¦¡¥
&br;

¤µ¤Æ¡¤ºÆµ¢ÄêµÁ¤Î°ÕÌ£¤Ï¤ï¤«¤Ã¤¿¤È¤·¤Æ¡¤¤³¤ì¤ò¥×¥í¥°¥é¥à¤ÇÍøÍѤ¹¤ë¤Ë¤Ï¤É¤¦¤¹¤ë¤«¤ò³Ø¤Ü¤¦¡¥
¼Â¤Ï»È¤¤Êý¤Ï´Êñ¤Ç¡¤¡Ö¤Û¤Ü¤½¤Î¤Þ¤Þ¡×½ñ¤±¤ÐÎɤ¤¡¥
Î㤨¤Ð¤³¤ÎÎã¤Î¾ì¹ç¤Ï¥×¥í¥°¥é¥à¤ò½ñ¤¯¤È¼¡¤Î¤è¤¦¤Ê´¶¤¸¤Ë¤Ê¤ë¡¥
// programu source ɽµ­
#highlighter(language=ruby,number=off,cache=on){{
def sum(n)
  if (n == 1) then
      return 1
    else
      return sum(n-1) + n
  end
end
}}
&br;

¤µ¤Æ¡¤¤³¤ì¤ÇÆ°¤¯¤Î¤À¤í¤¦¤«? ¤È¤¤¤¦µ¿Ìä¤ò»ý¤Ä³ØÀ¸¤â¤¤¤ë¤À¤í¤¦¡¥¤½¤³¤Ç¼ÂºÝ¤Ë»î¤·¤Æ¤ß¤è¤¦¡¥
¾å¤ÎºÆµ¢ÄêµÁ¤ò»È¤Ã¤Æ¡¤''sum(10)'' ¤Ê¤É¤¬³Î¤«¤ËÀµ¤·¤¤¿ô»ú¤Ë¤Ê¤ë¤³¤È¤ò³Îǧ¤·¤Æ¤ß¤è¤¦¡¥
&br;

¤µ¤Æ¡¤ºÆµ¢ÄêµÁ¤Î¤Ê¤Ë¤¬ÊØÍø¤Ê¤Î¤«¤ò¼¨¤½¤¦¡¥±Ô¤¤³ØÀ¸¤Ë¤Ï¤â¤¦¤ï¤«¤ë¤È»×¤¦¤¬¡¤ºÆµ¢ÄêµÁ¤ÎºÇÂç¤ÎÍøÅÀ¤Ï¤Ä¤®¤Î¤â¤Î¤Ç¤¢¤ë¡¥
&br;
CENTER:&ref(/materials/OK.png);&size(24){''ºÆµ¢ÄêµÁ¤Ï¡ÖÄêµÁ¤ò½ñ¤¯¤À¤±¤Ç¤è¤¤¡×.''};
CENTER:&size(24){''·×»»¼ê½ç¤ò¥×¥í¥°¥é¥à¤·¤Ê¤¯¤ÆÎɤ¤.''};
&br;

¤è¤¯¹Í¤¨¤ì¤ÐÉԻ׵Ĥʤ³¤È¤Ç¤Ï¤Ê¤¤¡¥·«¤êÊÖ¤·¤ÆÄêµÁ¤òŬÍѤ¹¤ì¤Ð¤¤¤Ä¤«É¬¤º´°·ë¤¹¤ëÄêµÁ¤Ê¤Î¤À¤«¤é¡¤¥³¥ó¥Ô¥å¡¼¥¿¤¬¤½¤¦¤·¤Æ¤¯¤ì¤ë¤À¤±¤Ê¤Î¤À¡¥
¤·¤«¤·¡¤¤³¤ì¤¬¼ÂºÝ¤Ï¤È¤Æ¤âÊØÍø¤Ê¤³¤È¤¬Â¿¤¤¤Î¤À¡¥°Ê²¼¡¤Îã¤ÇÍý²ò¤·¤è¤¦¡¥

** ¥æ¡¼¥¯¥ê¥Ã¥É¤Î¸ß½üË¡ [#aa8190f7]

Æó¤Ä¤ÎÀµÀ°¿ô ''n, m'' (n >= m) ¤ÎºÇÂç¸øÌó¿ô¤ò¹Í¤¨¤è¤¦¡¥
¤³¤Î»þ¡¤¿ô³ØŪ¤Ë¼¡¤ÎÀ­¼Á¤¬À®¤êΩ¤Ä¡¥
CENTER:&size(18){''n ¤È m ¤ÎºÇÂç¸øÌó¿ô¤Ï m ¤È (n mod m) ¤ÎºÇÂç¸øÌó¿ô¤ËÅù¤·¤¤''};
&br;

¤è¤Ã¤Æ¡¤¤³¤ì¤ò»È¤¦¤ÈÆó¤Ä¤ÎÀµÀ°¿ô ''n, m'' (n >= m) ¤ÎºÇÂç¸øÌó¿ô¤òµá¤á¤ë´Ø¿ô ''gcd(n,m)'' ¤Ë¤Ä¤¤¤Æ¼¡¤Î¤è¤¦¤ÊºÆµ¢ÄêµÁ¼°¤¬À®¤êΩ¤Ä¡¥
&ref(./gcd.png);
&ref(/materials/warning.png); ¤³¤Î¼°¤¬ºÆµ¢ÄêµÁ¤Î¾ò·ï¤òËþ¤¿¤·¤Æ¤¤¤ë¤³¤È¤ò³Îǧ¤·¤è¤¦.
&br;

¤³¤ì¤ò¤½¤Î¤Þ¤Þ¥×¥í¥°¥é¥ß¥ó¥°¤¹¤ë¤È°Ê²¼¤Î¤è¤¦¤Ë¤Ê¤ë¡¥¤¿¤À¤·¡¤(n >= m) ¤È¤¤¤¦¾ò·ï¤òÇ°¤Î¤¿¤á¤Ë³Î¼Â¤Ë¤·¤Æ¤ª¤³¤¦¡¥¤½¤Î¤¿¤á¤Ë¤Á¤ç¤Ã¤È¤À¤±½èÍý¤¬É¬ÍפÀ¤¬¤É¤¦¤ä¤Ã¤Æ¤¤¤ë¤«¤Ï²¼¤Î¥×¥í¥°¥é¥à¤òÆɤ⤦¡¥ 
// programu source ɽµ­
#highlighter(language=ruby,number=off,cache=on){{
def gcd(n,m)
  # Ç°¤Î¤¿¤á¡¤n >= m ¤ò³Î¼Â¤Ë¤·¤Æ¤ª¤¯.
  if (n < m) then
    n,m = m,n
  end

  # ¤¢¤È¤ÏºÆµ¢ÄêµÁ¤Î¼°¤ÎÄ̤ê.
  if (n % m == 0) then
      return m
    else
      return gcd(m, (n % m) )
  end

end
}}
&ref(/materials/notes.png); ¤³¤ì¤Ç¼ÂºÝ¤ËÎ㤨¤Ð 120 ¤È 45 ¤ÎºÇÂç¸øÌó¿ô 15 ¤¬Àµ¤·¤¯µá¤Þ¤ë¤³¤È¤ò³Îǧ¤·¤è¤¦¡¥
&ref(/materials/warning.png); ¤³¤ÎºÆµ¢ÄêµÁ¤ò¡Ö»È¤ï¤º¤Ë¡×ºÇÂç¸øÌó¿ô¤òµá¤á¤ë¥×¥í¥°¥é¥à¤¬¤É¤ì¤¯¤é¤¤ÌÌÅݤʤâ¤Î¤Ë¤Ê¤ë¤«ÁÛÁü¤·¤è¤¦.
&br;
¤Ê¤ª¡¤ÅÓÃæ¤Î·Ð²á¤¬¤è¤¯Ê¬¤«¤é¤Ê¤¤¤È¤¤¤¦¿Í¤Ï¡¤¼¡¤Î¤è¤¦¤ËÅÓÃæ·Ð²á¤ò½ÐÎϤ¹¤ë¤è¤¦¤Ë¿ô¹ÔÉÕ¤±²Ã¤¨¤¿¥×¥í¥°¥é¥à¤òÆ°¤«¤·¤Æ¤ß¤ë¤ÈÎɤ¤¡¥
// programu source ɽµ­
#highlighter(language=ruby,number=on,cache=on){{
include Math

# ºÇÂç¸øÌó¿ô¤òµá¤á¤ë´Ø¿ô
def gcd(n,m)
  # Ç°¤Î¤¿¤á¡¤n >= m ¤ò³Î¼Â¤Ë¤·¤Æ¤ª¤¯.
  if (n < m) then
    n,m = m,n
  end

  # ¸½ºß ÂоݤȤ·¤Æ¤¤¤ë¤ÎÆó¤Ä¤Î¿ô»ú¤È¡¤¤½¤Î mod ¤ò½ÐÎÏ.
  print(n," mod ",m, " = ",n % m,"\n")

  # ¤¢¤È¤ÏºÆµ¢ÄêµÁ¤Î¼°¤ÎÄ̤ê.
  if (n % m == 0) then
      # ·×»»½ªÎ»
      print("Finished. \n")
      return m
    else
      return gcd(m, (n % m) )
  end
end

# °Ê²¼¡¤¥×¥í¥°¥é¥àËÜÂÎ
n = 1071
m = 1029

# ºÇÂç¸øÌó¿ô¤ò´Ø¿ô¤ò»È¤Ã¤Æ·×»»¤·¤Æɽ¼¨
print("gcd(",n,", ",m,") = ",gcd(n,m),"\n")
}}

** ¥ë¡¼¥×Áàºî¤È¤Î´Ø·¸ [#x2f67147]

''for'' ¤ä ''while'' ¤Ê¤É¤Î¥ë¡¼¥×¤Ç¤Ï¥ë¡¼¥×¤¬½ª¤ï¤Ã¤Æ¤«¤éºÆ¤Ó¥ë¡¼¥×¤ËÆþ¤ëÆ°ºî¤¬¼ç¤ÊÆ°ºî¤À¤¬¡¤¤³¤ì¤Ï¼«Ê¬¼«¿È¤ò¸Æ¤Ó½Ð¤¹ºÆµ¢ÄêµÁ¤ÈËܼÁŪ¤Ë¤ÏƱ¤¸¹Ô°Ù¤À¡¥
¤È¤¤¤¦¤³¤È¤Ï¡¤¥ë¡¼¥×·×»»¤ÏºÆµ¢ÄêµÁ¤Ç½ñ¤­¤Ê¤ª¤¹¤³¤È¤¬¤Ç¤­¤ë¤Ï¤º¤À¤·¡¤µÕ¤â¤Þ¤¿¿¿¤Î¤Ï¤º¤À¡¥
¤Ä¤Þ¤ê¡¤
&br;
CENTER:&size(24){''¥ë¡¼¥×·×»»¤ÏºÆµ¢ÄêµÁ¤Ç½ñ¤­Ä¾¤¹¤³¤È¤¬½ÐÍ衤''};
CENTER:&size(24){''ºÆµ¢ÄêµÁ¤Ï¥ë¡¼¥×·×»»¤Ç½ñ¤­Ä¾¤¹¤³¤È¤¬½ÐÍè¤ë¤Ï¤º¡¥''};
&br;

¤È¤¤¤¦¤³¤È¤Ë¤Ê¤ë¡¥

*** ¥ë¡¼¥×¤òºÆµ¢¤Ç½ñ¤­Ä¾¤¹Îã [#ga7a420b]

Î㤨¤Ð¡¤Àè¤Î Fizz Buzz ´Ø¿ô¤Ç¿ô»ú¤¬²¿²óÊÑ´¹¤µ¤ì¤¿¤«¤ò¥Á¥§¥Ã¥¯¤¹¤ë¥×¥í¥°¥é¥à¤òºÆµ¢ÄêµÁ¤ò»È¤Ã¤Æ½ñ¤­´¹¤¨¤ë¤È°Ê²¼¤Î¤è¤¦¤Ë¤Ê¤ë¡¥
// programu source ɽµ­
#highlighter(language=ruby,number=on,cache=on){{
include Math

# Fizz Buzz ´Ø¿ô
def fb(n)
  if (n % 15 == 0) then
      return "Fizz Buzz"
    elsif (n % 3 == 0) then
      return "Fizz"
    elsif (n % 5 == 0) then
      return "Buzz"
    else 
      return n
  end
end

# ÊÑ´¹¤µ¤ì¤¿À°¿ô¤¬ last_n ¤Ë¤Ê¤ë¤Þ¤ÇÄ´¤Ù³¤±¤ë´Ø¿ô
# i ¤Ï Fizz Buzz ´Ø¿ô¤Ç¤³¤ì¤«¤é¥Á¥§¥Ã¥¯¤¹¤ëÀ°¿ô¡¥
# n ¤Ï ¤³¤ì¤Þ¤ÇÊÑ´¹¤µ¤ì¤¿À°¿ô¤Î¸Ä¿ô¡¥
def fb_count(i, n, last_n)

  # ¤Þ¤À¡ÖÊÑ´¹¿ô¡×¤¬Â­¤ê¤Ê¤¤¤Ê¤é
  if (n < last_n) then 
    # ²èÌ̽ÐÎÏ
    print(fb(i),"\n")

    #¡ÖFizz Buzz ¤Î½ÐÎϤ¬Ã±¤Ê¤ë¿ô»ú¤Ç¤Ê¤¤ = ÊÑ´¹¤µ¤ì¤¿¡×¤È¤·¤Æ¥«¥¦¥ó¥È¤òÁý¤ä¤¹
    if (fb(i) != i) then
      n += 1
    end

    # ¼¡¤Î¿ô¤Ø
    i += 1

    # ¼«Ê¬¼«¿È¤ò²¼ÀÁ¤±¤Ë¤·¤Æ
    fb_count(i, n, last_n)

  end
end

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

# ÊÑ´¹¤µ¤ì¤¿À°¿ô¤ò¤¤¤¯¤Ä¿ô¤¨¤ë¤«
n_upper = ARGV[0].to_i

# ÊÑ´¹¤µ¤ì¤¿À°¿ô¤¬ n_upper ¤Ë¤Ê¤ë¤Þ¤Ç¥Á¥§¥Ã¥¯¤µ¤»¤ë.
fb_count(1,0,n_upper)
}}
&ref(/materials/warning.png); ''while'' ¥ë¡¼¥×¤ÎÂå¤ï¤ê¤ËºÆµ¢ÄêµÁ¤¬»È¤ï¤ì¤Æ¤¤¤ëÉôʬ¤ËÆäËÃåÌܤ·¤Æ¡¤Íý²ò¤·¤è¤¦¡¥

&br;
*** ºÆµ¢¤ò¥ë¡¼¥×¤Ç½ñ¤­Ä¾¤¹Îã [#e26fc0a8]

Î㤨¤ÐºÇ½é¤ÎºÆµ¢ÄêµÁ¤ÎÎã¤Ç¤¢¤ë ''sum'' ´Ø¿ô¤â¡¤''for'' ¥ë¡¼¥×¤Ç½ñ¤­Ä¾¤¹¤Î¤Ï´Êñ¤À¡¥
¤Þ¤¿, ¥æ¡¼¥¯¥ê¥Ã¥É¤Î¸ß½üË¡¤âƱÍͤËŬÀڤʥ롼¥×¤Ç½ñ¤­´¹¤¨²Äǽ¤Ç¤¢¤ë¡¥

&ref(/materials/notes.png);  (»þ´Ö¤Ë;͵¤Î¤¢¤ë¿Í¸þ¤±) ¥æ¡¼¥¯¥ê¥Ã¥É¤Î¸ß½üË¡¤òºÆµ¢ÄêµÁ¤ò»È¤ï¤º¤Ë¥×¥í¥°¥é¥ß¥ó¥°¤·¤Æ¤ß¤è¤¦¡¥

&br;
*** ºÆµ¢¤È¥ë¡¼¥×¡¤¤É¤Ã¤Á¤¬ÆÀ? [#b14d721d]

ºÆµ¢ÄêµÁ¤È¥ë¡¼¥×·×»»¤¬ËܼÁŪ¤ËƱ¤¸¤Ê¤é¡¤¤É¤Á¤é¤òÁª¤Ö¤Ù¤­¤«¤È¤¤¤¦ÌäÂ꤬¤Ç¤Æ¤¯¤ë¡¥
¤³¤ì¤Ë¤Ä¤¤¤Æ¤Ï¡¤Æó¤Ä¤Î»ëÅÀ¤¬¤¢¤ë¡¥
&br;

¤Þ¤º¡¤¥×¥í¥°¥é¥à¤Î¤ï¤«¤ê¤ä¤¹¤µ¤À¤¬¡¤¤³¤ì¤ÏÌäÂê¤Ë¤è¤ë¡¥¥æ¡¼¥¯¥ê¥Ã¥É¤Î¸ß½üË¡¤Ê¤É¤ÏºÆµ¢ÄêµÁ¤¬¤ï¤«¤ê¤ä¤¹¤¤¤¬¡¤Àè¤Î Fizz Buzz ¤Ê¤É¤Ï¥ë¡¼¥×¤ÎÊý¤¬¤ï¤«¤ê¤ä¤¹¤¤¤À¤í¤¦¡¥
Â礭¤¯½ñ¤¤¤Æ¤ª¤¯¤È¡¤
&br;
CENTER:&size(24){''ºÆµ¢¤È¥ë¡¼¥×¤Î¤É¤Á¤é¤¬¤ï¤«¤ê¤ä¤¹¤¤¤«¤ÏÌäÂê¤Ë¤è¤ë''};
&br;

¼¡¤Ë¡¤·×»»¤Î®¤µ¤ä¥³¥ó¥Ô¥å¡¼¥¿¤Ë¤«¤«¤ëÉé²Ù¤Ë¤Ä¤¤¤Æ¤Ç¤¢¤ë¡¥
¤³¤ì¤Ï¤Û¤Ü¤Ï¤Ã¤­¤ê¤·¤Æ¤¤¤Æ¡¤¼«Ê¬¼«¿È¤ò²¿²ó¤â¸Æ¤Ó½Ð¤¹»ÅÁȤ߾åºÆµ¢ÄêµÁ¤ÎÊý¤¬Éé²Ù¤¬¹â¤¤¡¥
¤³¤ì¤òÂ礭¤¯½ñ¤¤¤Æ¤ª¤¯¤È¡¤
&br;
CENTER:&size(24){''ºÆµ¢¤ÏËâË¡¤Ê¤Î¤Ç MP ¤ò¶ô¤¦''}; (MP = Machine Power)
&br;

¤È¤Ê¤ë¡¥
·ë¶É¡¤¥á¥ê¥Ã¥È¤â¥Ç¥á¥ê¥Ã¥È¤â¤¢¤ë¤Î¤Ç¡¤ºÆµ¢ÄêµÁ¤ò»È¤¦¤Ù¤­¤«¤É¤¦¤«¤Ï¥±¡¼¥¹¥Ð¥¤¥±¡¼¥¹¤È¤¤¤¦¤³¤È¤Ë¤Ê¤ë¡¥

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

Fibonacci ¿ôÎó ''F_0, F_1, F_2, ... '' ¤ò·×»»¤·¤Æ½ÐÎϤ¹¤ë¥×¥í¥°¥é¥à¤ò¡ÖÆó¤Ä¡×½ñ¤³¤¦(Fibonacci ¿ôÎó¤ÎÄêµÁ¤òÃΤé¤Ê¤¤¿Í¤ÏÄ´¤Ù¤è¤¦)¡¥
¤¿¤À¤·¡¤°Ê²¼¤Î¾ò·ï¤òËþ¤¿¤¹¤â¤Î¤È¤¹¤ë¡¥

+ F_0 = 0, F_1 = 1 ¤È¤¹¤ë.
+ µ¯Æ°»þ¤ËÀµÀ°¿ô¥Ñ¥é¥á¡¼¥¿ ''n'' (30¤°¤é¤¤¤òÁÛÄê)¤¬Í¿¤¨¤é¤ì¡¤F_0, F_1, F_2,... F_n ¤Þ¤Ç¤ò½ÐÎϤ¹¤ë¤â¤Î¤È¤¹¤ë¡¥
+ ¥×¥í¥°¥é¥àA ¤Ï¡¤ºÆµ¢ÄêµÁ¤òÍѤ¤¤Æ·×»»¤¹¤ë¤È¤¹¤ë¡¥
+ ¥×¥í¥°¥é¥àB ¤Ï¡¤¥ë¡¼¥×·×»»¤òÍѤ¤¤Æ·×»»¤¹¤ë¤È¤¹¤ë¡¥

¶ñÂÎŪ¤Ë¤Ï¡¤Î㤨¤Ð¥×¥í¥°¥é¥àA ¤Î¥Õ¥¡¥¤¥ë̾¤¬ fibonacciA.rb ¤À¤È¤¹¤ë¤È¡¤
  ruby -w fibonacciA.rb 30

¤È¤·¤Æ¼Â¹Ô¤¹¤ë¤È¡¤
>  F_0 = 0
>  F_1 = 1
>  F_2 = 1
>  F_3 = 2
>  F_4 = 3
>  F_5 = 5
>  F_6 = 8
>  F_7 = 13
>  F_8 = 21
>  F_9 = 34
>  F_10 = 55
>  F_11 = 89
>  F_12 = 144
>  F_13 = 233
>  F_14 = 377
>  F_15 = 610
>  F_16 = 987
>  F_17 = 1597
>  F_18 = 2584
>  F_19 = 4181
>  F_20 = 6765
>  F_21 = 10946
>  F_22 = 17711
>  F_23 = 28657
>  F_24 = 46368
>  F_25 = 75025
>  F_26 = 121393
>  F_27 = 196418
>  F_28 = 317811
>  F_29 = 514229
>  F_30 = 832040

¤È¤¤¤¦·ë²Ì¤¬¤Ç¤ë¤è¤¦¤Ë¤·¤í¡¤¤È¤¤¤¦¤³¤È¤Ë¤Ê¤ë¡¥

&ref(/materials/warning.png); ¥×¥í¥°¥é¥à¤¬Æó¤Ä¤Ç¤­¤¿¤é¡¤Î¾Êý¼Â¹Ô¤·¤Æ¡ÖÅú¤¨¤¬¤ª¤Ê¤¸¤Ë¤Ê¤ë¤³¤È¡×¡Ö·×»»Â®ÅÙ¤¬°ã¤¦¤³¤È¡×¤ò¤­¤Á¤ó¤È³Î¤«¤á¤è¤¦¡¥ ¤Þ¤¿¡¤¥×¥í¥°¥é¥à¤Îºî¤ê°×¤µ¤Î°ã¤¤¤Ë¤Ä¤¤¤Æ¤â¹Í»¡¤·¤Æ¤ª¤³¤¦¡¥
&br;
&ref(/materials/warning.png); (¾åµé¼Ô¸þ¤±) ºÆµ¢ÄêµÁ¤Ç¤¢¤ê¤Ê¤¬¤é¡Ö¼Â¹Ô®ÅÙ¤¬Â®¤¤¡×¥×¥í¥°¥é¥à¤ò½ñ¤¤¤Æ¤ß¤è¤¦¡¥¤É¤¦¤¹¤ì¤Ð¤è¤¤¤À¤í¤¦¤«.

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

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

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

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

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

* about Icons, ClipArts [#h567ccfb]
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){{}}