¼ø¶È»ñÎÁ/09

Á°²ó¤Î²ÝÂê¤Ë¤Ä¤¤¤Æ

¤Þ¤ºÁ°²ó¤ÎÁí»Å¾å¤²¤òºÆ·Ç¤¹¤ë¤È¡¤°Ê²¼¤Î¤è¤¦¤Ç¤¢¤Ã¤¿¡¥


n x m ¹ÔÎó¤Î¥Ç¡¼¥¿¤òÆþÎϤ·¤¿¤é¡¤¤½¤Î¹ÔÎó¤ÈžÃÖ¹ÔÎó¤ò¤½¤ì¤Ã¤Ý¤¯É½¼¨¤¹¤ë¥×¥í¥°¥é¥à¤ò½ñ¤³¤¦¡¥
warning.png ¤â¤Á¤í¤ó¡¤Ç¤°Õ¤Î¥µ¥¤¥º¤Î¹ÔÎó¤ËÂФ·¤ÆÆ°ºî¤·¤Ê¤¤¤È¤¤¤±¤Ê¤¤¡ª
¤¿¤À¤·¡¤¹ÔÎó¤Î·Á¤Ë¤Ê¤Ã¤Æ¤¤¤Ê¤¤¥Ç¡¼¥¿¤ÏÁÛÄꤷ¤Ê¤¯¤Æ¤âÎɤ¤¡¥

Á´Âι½Â¤

¤Ê¤Ë¤Ï¤È¤â¤¢¤ì¡¤ºÇ½é¤ÏÁ´Âι½Â¤¤«¤é¤Ç¤¢¤ë¡¥
º£²ó¤Î¾ì¹ç¡¤¹ÔÎó¤ÎžÃÖÁàºî¤Ê¤É¤âɬÍפʤΤǡ¤¤½¤ì¤â¹Íθ¤¹¤ë¤ÈÎ㤨¤Ð¼¡¤Î¤è¤¦¤Ë¤Ê¤ë¤À¤í¤¦¡¥

  1. include Math
  2.  
  3. # ¥Ù¥¯¥È¥ë¤òɽ¼¨¤¹¤ë(°ÊÁ°¤Î¥×¥í¥°¥é¥à¤«¤é¥³¥Ô¡¼)
  4. def print_vec(v_x)
  5.   print("[ ")
  6.   for i in 1..v_x.size do
  7.     print(v_x[i-1]," ")
  8.   end
  9.   print("]\n")
  10. end
  11.  
  12. # ¹ÔÎó¤òɽ¼¨¤¹¤ë(°ÊÁ°¤Î¥×¥í¥°¥é¥à¤«¤é¥³¥Ô¡¼)
  13. def print_mtx(m_a)
  14.   for i in 1..m_a.size do
  15.     print_vec(m_a[i-1])
  16.   end
  17. end
  18.  
  19. # ¹ÔÎó¤ÎžÃÖ¤ò¹Ô¤¦
  20. def transposed_mtx(m_a)
  21.   # ¼ÂÁõ¤Ï¸å¤Ç¡¥
  22.   return m_a
  23. end
  24.  
  25.  
  26. # °Ê²¼¡¤¥×¥í¥°¥é¥àËÜÂÎ
  27.  
  28. # ¹ÔÎó¤ÎÆþÎϤò¼õ¤±¤ëÉôʬ
  29.  
  30. # ÆþÎϹÔÎó¡¥Â礭¤µ¤¬Ê¬¤«¤é¤Ê¤¤°Ê¾å¡¤ºÇ½é¤Ï¶õ¤Ã¤Ý¤Ë¤·¤Æ¤ª¤¯¤·¤«¤Ê¤¤¡¥
  31. matrix = []
  32.  
  33. # ÆþÎϤòÂ¥¤¹
  34. print("? : ")
  35. while (x = gets) do
  36.   x.chomp!
  37.   data = x.split()
  38.   data.map!{ |e| e.to_f }
  39.   # ¤³¤Î¾å¤Þ¤Ç¤Ï·è¤Þ¤Ã¤¿¥Ñ¥¿¡¼¥ó.
  40.  
  41.   # ¤µ¤Æ¡¤¹ÔÎó¤Ë¥Ç¡¼¥¿¤òÆ°¤ä¤Ã¤Æ­¤·¹þ¤à¡©
  42.  
  43.   # ÆþÎϤòÂ¥¤¹
  44.   print("? : ")
  45. end
  46.  
  47. # ÆþÎϹÔÎó¤Îɽ¼¨
  48. print("Input matrix = \n")
  49. print_mtx(matrix)
  50.  
  51. print("\n")
  52.  
  53. # ÆþÎϹÔÎó¤ÎžÃÖ¤Îɽ¼¨
  54. print("Transposed matrix = \n")
  55. print_mtx(transposed_mtx(matrix))

¤³¤¦½ñ¤¤¤Æ¤·¤Þ¤¦¤È»Ä¤Ã¤¿½èÍý¤Ï¤´¤¯´Êñ¤Ê¤³¤È¤¬Ê¬¤«¤ë¡¥

ÆþÎϥǡ¼¥¿¤ò¹ÔÎó¤È¤·¤Æ°·¤¦

¤Þ¤º¤Ï¡¤ÆþÎϤµ¤ì¤¿¡Ö¹Ô¥Ç¡¼¥¿¡×¤ò¹ÔÎó¤Ë­¤·¹þ¤à½èÍýÉôʬ¤ò´°À®¤µ¤»¤è¤¦¡¥¤½¤Î¤¢¤¿¤ê¤Ï¼¡¤Î¤è¤¦¤Ë¤Ê¤ë¤À¤í¤¦¡¥

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

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

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

¹ÔÎó¤ÎžÃÖÁàºî

¤¢¤È¤ÏžÃÖ½èÍý¤À¤±¤À¡¥¤³¤ì¤â¤â¤¦º£¤È¤Ê¤Ã¤Æ¤Ï´Êñ¤Ç¡¤¼¡¤Î¤è¤¦¤Ë¤Ê¤ë¤À¤í¤¦¡¥

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

¤ä¤Ã¤Æ¤ß¤ì¤Ð¤³¤ì¤À¤±¤ÎÏäÀ¡¥Æñ¤·¤¯¤Ê¤¤¤À¤í¤¦¡¥

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

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

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

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

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

ºÆµ¢ÄêµÁ¤¬À®¤êΩ¤Ä¾ò·ï¤È¤Ï?

¤³¤ÎºÆµ¢ÄêµÁ¤¬¡Ö°ÕÌ£¤ò»ý¤Ä¡×¤Ë¤Ï°Ê²¼¤Î¥Ý¥¤¥ó¥È¤¬Ëþ¤¿¤µ¤ì¤Æ¤¤¤ë¤³¤È¤¬É¬ÍפǤ¢¤ë¡¥¤è¤¯¹Í¤¨¤Æ¤ß¤è¤¦¡¥

  1. º¸ÊÕ¤ò±¦ÊÕ¤ÇÃÖ¤­´¹¤¨¡¤¤µ¤é¤Ë±¦ÊÕ¤ÇÃÖ¤­´¹¤¨¡Ä ¤È³¤±¤Æ¤¤¤±¤ë·Á¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡¥
  2. ÃÖ´¹¤¨¤Î·«¤êÊÖ¤·¤¬¡Öɬ¤º½ª¤ï¤ë¡×¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡§¤³¤ÎÎã¤À¤È¡¤É¬¤º n=1 ¤Î¾ì¹ç¤ËÅþ㤹¤ë¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡¥

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

¤µ¤Æ¡¤ºÆµ¢ÄêµÁ¤Î°ÕÌ£¤Ï¤ï¤«¤Ã¤¿¤È¤·¤Æ¡¤¤³¤ì¤ò¥×¥í¥°¥é¥à¤ÇÍøÍѤ¹¤ë¤Ë¤Ï¤É¤¦¤¹¤ë¤«¤ò³Ø¤Ü¤¦¡¥
¼Â¤Ï»È¤¤Êý¤Ï´Êñ¤Ç¡¤¡Ö¤Û¤Ü¤½¤Î¤Þ¤Þ¡×½ñ¤±¤ÐÎɤ¤¡¥
Î㤨¤Ð¤³¤ÎÎã¤Î¾ì¹ç¤Ï¥×¥í¥°¥é¥à¤ò½ñ¤¯¤È¼¡¤Î¤è¤¦¤Ê´¶¤¸¤Ë¤Ê¤ë¡¥

def sum(n)
  if (n == 1) then
      return 1
    else
      return sum(n-1) + n
  end
end


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

¤µ¤Æ¡¤ºÆµ¢ÄêµÁ¤Î¤Ê¤Ë¤¬ÊØÍø¤Ê¤Î¤«¤ò¼¨¤½¤¦¡¥±Ô¤¤³ØÀ¸¤Ë¤Ï¤â¤¦¤ï¤«¤ë¤È»×¤¦¤¬¡¤ºÆµ¢ÄêµÁ¤ÎºÇÂç¤ÎÍøÅÀ¤Ï¤Ä¤®¤Î¤â¤Î¤Ç¤¢¤ë¡¥

OK.pngºÆµ¢ÄêµÁ¤Ï¡ÖÄêµÁ¤ò½ñ¤¯¤À¤±¤Ç¤è¤¤¡×.
·×»»¼ê½ç¤ò¥×¥í¥°¥é¥à¤·¤Ê¤¯¤ÆÎɤ¤.

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

¥æ¡¼¥¯¥ê¥Ã¥É¤Î¸ß½üË¡

Æó¤Ä¤ÎÀµÀ°¿ô n, m (n >= m) ¤ÎºÇÂç¸øÌó¿ô¤ò¹Í¤¨¤è¤¦¡¥
¤³¤Î»þ¡¤¿ô³ØŪ¤Ë¼¡¤ÎÀ­¼Á¤¬À®¤êΩ¤Ä¡¥

n ¤È m ¤ÎºÇÂç¸øÌó¿ô¤Ï m ¤È (n mod m) ¤ÎºÇÂç¸øÌó¿ô¤ËÅù¤·¤¤

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

¤³¤ì¤ò¤½¤Î¤Þ¤Þ¥×¥í¥°¥é¥ß¥ó¥°¤¹¤ë¤È°Ê²¼¤Î¤è¤¦¤Ë¤Ê¤ë¡¥¤¿¤À¤·¡¤(n >= m) ¤È¤¤¤¦¾ò·ï¤òÇ°¤Î¤¿¤á¤Ë³Î¼Â¤Ë¤·¤Æ¤ª¤³¤¦¡¥¤½¤Î¤¿¤á¤Ë¤Á¤ç¤Ã¤È¤À¤±½èÍý¤¬É¬ÍפÀ¤¬¤É¤¦¤ä¤Ã¤Æ¤¤¤ë¤«¤Ï²¼¤Î¥×¥í¥°¥é¥à¤òÆɤ⤦¡¥

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

notes.png ¤³¤ì¤Ç¼ÂºÝ¤ËÎ㤨¤Ð 120 ¤È 45 ¤ÎºÇÂç¸øÌó¿ô 15 ¤¬Àµ¤·¤¯µá¤Þ¤ë¤³¤È¤ò³Îǧ¤·¤è¤¦¡¥
warning.png ¤³¤ÎºÆµ¢ÄêµÁ¤ò¡Ö»È¤ï¤º¤Ë¡×ºÇÂç¸øÌó¿ô¤òµá¤á¤ë¥×¥í¥°¥é¥à¤¬¤É¤ì¤¯¤é¤¤ÌÌÅݤʤâ¤Î¤Ë¤Ê¤ë¤«ÁÛÁü¤·¤è¤¦.


¤Ê¤ª¡¤ÅÓÃæ¤Î·Ð²á¤¬¤è¤¯Ê¬¤«¤é¤Ê¤¤¤È¤¤¤¦¿Í¤Ï¡¤¼¡¤Î¤è¤¦¤ËÅÓÃæ·Ð²á¤ò½ÐÎϤ¹¤ë¤è¤¦¤Ë¿ô¹ÔÉÕ¤±²Ã¤¨¤¿¥×¥í¥°¥é¥à¤òÆ°¤«¤·¤Æ¤ß¤ë¤ÈÎɤ¤¡¥

  1. include Math
  2.  
  3. # ºÇÂç¸øÌó¿ô¤òµá¤á¤ë´Ø¿ô
  4. def gcd(n,m)
  5.   # Ç°¤Î¤¿¤á¡¤n >= m ¤ò³Î¼Â¤Ë¤·¤Æ¤ª¤¯.
  6.   if (n < m) then
  7.     n,m = m,n
  8.   end
  9.  
  10.   # ¸½ºß ÂоݤȤ·¤Æ¤¤¤ë¤ÎÆó¤Ä¤Î¿ô»ú¤È¡¤¤½¤Î mod ¤ò½ÐÎÏ.
  11.   print(n," mod ",m, " = ",n % m,"\n")
  12.  
  13.   # ¤¢¤È¤ÏºÆµ¢ÄêµÁ¤Î¼°¤ÎÄ̤ê.
  14.   if (n % m == 0) then
  15.       # ·×»»½ªÎ»
  16.       print("Finished. \n")
  17.       return m
  18.     else
  19.       return gcd(m, (n % m) )
  20.   end
  21. end
  22.  
  23. # °Ê²¼¡¤¥×¥í¥°¥é¥àËÜÂÎ
  24. n = 1071
  25. m = 1029
  26.  
  27. # ºÇÂç¸øÌó¿ô¤ò´Ø¿ô¤ò»È¤Ã¤Æ·×»»¤·¤Æɽ¼¨
  28. print("gcd(",n,", ",m,") = ",gcd(n,m),"\n")

¥ë¡¼¥×Áàºî¤È¤Î´Ø·¸

for ¤ä while ¤Ê¤É¤Î¥ë¡¼¥×¤Ç¤Ï¥ë¡¼¥×¤¬½ª¤ï¤Ã¤Æ¤«¤éºÆ¤Ó¥ë¡¼¥×¤ËÆþ¤ëÆ°ºî¤¬¼ç¤ÊÆ°ºî¤À¤¬¡¤¤³¤ì¤Ï¼«Ê¬¼«¿È¤ò¸Æ¤Ó½Ð¤¹ºÆµ¢ÄêµÁ¤ÈËܼÁŪ¤Ë¤ÏƱ¤¸¹Ô°Ù¤À¡¥
¤È¤¤¤¦¤³¤È¤Ï¡¤¥ë¡¼¥×·×»»¤ÏºÆµ¢ÄêµÁ¤Ç½ñ¤­¤Ê¤ª¤¹¤³¤È¤¬¤Ç¤­¤ë¤Ï¤º¤À¤·¡¤µÕ¤â¤Þ¤¿¿¿¤Î¤Ï¤º¤À¡¥
¤Ä¤Þ¤ê¡¤

¥ë¡¼¥×·×»»¤ÏºÆµ¢ÄêµÁ¤Ç½ñ¤­Ä¾¤¹¤³¤È¤¬½ÐÍ衤
ºÆµ¢ÄêµÁ¤Ï¥ë¡¼¥×·×»»¤Ç½ñ¤­Ä¾¤¹¤³¤È¤¬½ÐÍè¤ë¤Ï¤º¡¥

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

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

Î㤨¤Ð¡¤Àè¤Î Fizz Buzz ´Ø¿ô¤Ç¿ô»ú¤¬²¿²óÊÑ´¹¤µ¤ì¤¿¤«¤ò¥Á¥§¥Ã¥¯¤¹¤ë¥×¥í¥°¥é¥à¤òºÆµ¢ÄêµÁ¤ò»È¤Ã¤Æ½ñ¤­´¹¤¨¤ë¤È°Ê²¼¤Î¤è¤¦¤Ë¤Ê¤ë¡¥

  1. include Math
  2.  
  3. # Fizz Buzz ´Ø¿ô
  4. def fb(n)
  5.   if (n % 15 == 0) then
  6.       return "Fizz Buzz"
  7.     elsif (n % 3 == 0) then
  8.       return "Fizz"
  9.     elsif (n % 5 == 0) then
  10.       return "Buzz"
  11.     else 
  12.       return n
  13.   end
  14. end
  15.  
  16. # ÊÑ´¹¤µ¤ì¤¿À°¿ô¤¬ last_n ¤Ë¤Ê¤ë¤Þ¤ÇÄ´¤Ù³¤±¤ë´Ø¿ô
  17. # i ¤Ï Fizz Buzz ´Ø¿ô¤Ç¤³¤ì¤«¤é¥Á¥§¥Ã¥¯¤¹¤ëÀ°¿ô¡¥
  18. # n ¤Ï ¤³¤ì¤Þ¤ÇÊÑ´¹¤µ¤ì¤¿À°¿ô¤Î¸Ä¿ô¡¥
  19. def fb_count(i, n, last_n)
  20.  
  21.   # ¤Þ¤À¡ÖÊÑ´¹¿ô¡×¤¬Â­¤ê¤Ê¤¤¤Ê¤é
  22.   if (n < last_n) then 
  23.     # ²èÌ̽ÐÎÏ
  24.     print(fb(i),"\n")
  25.  
  26.     #¡ÖFizz Buzz ¤Î½ÐÎϤ¬Ã±¤Ê¤ë¿ô»ú¤Ç¤Ê¤¤ = ÊÑ´¹¤µ¤ì¤¿¡×¤È¤·¤Æ¥«¥¦¥ó¥È¤òÁý¤ä¤¹
  27.     if (fb(i) != i) then
  28.       n += 1
  29.     end
  30.  
  31.     # ¼¡¤Î¿ô¤Ø
  32.     i += 1
  33.  
  34.     # ¼«Ê¬¼«¿È¤ò²¼ÀÁ¤±¤Ë¤·¤Æ
  35.     fb_count(i, n, last_n)
  36.  
  37.   end
  38. end
  39.  
  40. # °Ê²¼¡¤¥×¥í¥°¥é¥àËÜÂÎ
  41.  
  42. # ÊÑ´¹¤µ¤ì¤¿À°¿ô¤ò¤¤¤¯¤Ä¿ô¤¨¤ë¤«
  43. n_upper = ARGV[0].to_i
  44.  
  45. # ÊÑ´¹¤µ¤ì¤¿À°¿ô¤¬ n_upper ¤Ë¤Ê¤ë¤Þ¤Ç¥Á¥§¥Ã¥¯¤µ¤»¤ë.
  46. fb_count(1,0,n_upper)

warning.png while ¥ë¡¼¥×¤ÎÂå¤ï¤ê¤ËºÆµ¢ÄêµÁ¤¬»È¤ï¤ì¤Æ¤¤¤ëÉôʬ¤ËÆäËÃåÌܤ·¤Æ¡¤Íý²ò¤·¤è¤¦¡¥


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

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

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


ºÆµ¢¤È¥ë¡¼¥×¡¤¤É¤Ã¤Á¤¬ÆÀ?

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

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

ºÆµ¢¤È¥ë¡¼¥×¤Î¤É¤Á¤é¤¬¤ï¤«¤ê¤ä¤¹¤¤¤«¤ÏÌäÂê¤Ë¤è¤ë

¼¡¤Ë¡¤·×»»¤Î®¤µ¤ä¥³¥ó¥Ô¥å¡¼¥¿¤Ë¤«¤«¤ëÉé²Ù¤Ë¤Ä¤¤¤Æ¤Ç¤¢¤ë¡¥
¤³¤ì¤Ï¤Û¤Ü¤Ï¤Ã¤­¤ê¤·¤Æ¤¤¤Æ¡¤¼«Ê¬¼«¿È¤ò²¿²ó¤â¸Æ¤Ó½Ð¤¹»ÅÁȤ߾åºÆµ¢ÄêµÁ¤ÎÊý¤¬Éé²Ù¤¬¹â¤¤¡¥
¤³¤ì¤òÂ礭¤¯½ñ¤¤¤Æ¤ª¤¯¤È¡¤

ºÆµ¢¤ÏËâË¡¤Ê¤Î¤Ç MP ¤ò¶ô¤¦ (MP = Machine Power)

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


º£Æü¤ÎÁí»Å¾å¤²

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

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

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

warning.png ¥×¥í¥°¥é¥à¤¬Æó¤Ä¤Ç¤­¤¿¤é¡¤Î¾Êý¼Â¹Ô¤·¤Æ¡ÖÅú¤¨¤¬¤ª¤Ê¤¸¤Ë¤Ê¤ë¤³¤È¡×¡Ö·×»»Â®ÅÙ¤¬°ã¤¦¤³¤È¡×¤ò¤­¤Á¤ó¤È³Î¤«¤á¤è¤¦¡¥ ¤Þ¤¿¡¤¥×¥í¥°¥é¥à¤Îºî¤ê°×¤µ¤Î°ã¤¤¤Ë¤Ä¤¤¤Æ¤â¹Í»¡¤·¤Æ¤ª¤³¤¦¡¥


warning.png (¾åµé¼Ô¸þ¤±) ºÆµ¢ÄêµÁ¤Ç¤¢¤ê¤Ê¤¬¤é¡Ö¼Â¹Ô®ÅÙ¤¬Â®¤¤¡×¥×¥í¥°¥é¥à¤ò½ñ¤¤¤Æ¤ß¤è¤¦¡¥¤É¤¦¤¹¤ì¤Ð¤è¤¤¤À¤í¤¦¤«.


¥ì¥Ý¡¼¥È

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

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

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

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

about Icons, ClipArts

Some icons in this page are downloadable at ICONFINDER.

The "note" icon notes.png designed by Marco Martin is distributed with the LGPL licence,
the "warning" icon warning.png designed by Alexandre Moore with the GPL licence
and the "triangle" icon JNorth_arrow-right-sm.png designed by Joseph North is distributed with the Creative Commons (Attribution-Noncommercial-Share Alike 3.0 Unported) licence.

Some clip arts used in this page are downloadable at Open Clip Art Library.
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.


źÉÕ¥Õ¥¡¥¤¥ë: filesum.png 130·ï [¾ÜºÙ] filegcd.png 150·ï [¾ÜºÙ]