¼ø¶È»ñÎÁ/08

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

Fizz Buzz

´Êñ¤ÊÌäÂê¤À¤¬¡¤¶ìÏ«¤·¤¿³ØÀ¸¤â¤¤¤ë¤è¤¦¤Ê¤Î¤Ç Fizz Buzz ¤Ë¤Ä¤¤¤Æ¤â¥µ¥ó¥×¥ë¤È¤½¤Îºî¤êÊý¤ò¼¨¤·¤Æ¤ª¤³¤¦¡¥

Á´Âι½Â¤

¤Þ¤º¤Ï¤¤¤Ä¤â¤Î¤è¤¦¤ËÁ´Âι½Â¤¤«¤é¤Ç¤¢¤ë¡¥

  1. include Math
  2.  
  3. # Fizz Buzz ¤òÀµ¤·¤¯ÊÖ¤¹´Ø¿ô
  4. def fb(n)
  5.   # ¼ÂÁõ¤Ï¤³¤ì¤«¤é¡¥¤È¤ê¤¢¤¨¤º¡Ö¥×¥í¥°¥é¥à¤¬Æ°¤¯¤è¤¦¤Ë¡× n ¤ò½ÐÎϤ·¤Æ¤ª¤¯
  6.   return n
  7. end
  8.  
  9. # °Ê²¼¡¤¥×¥í¥°¥é¥àËÜÂÎ
  10.  
  11. # ÊÑ´¹¤µ¤ì¤¿À°¿ô¤ò¤¤¤¯¤Ä¿ô¤¨¤ë¤«
  12. n_upper = ARGV[0].to_i
  13.  
  14. # ÊÑ´¹¤µ¤ì¤¿À°¿ô¤Î¿ô
  15. n = 0
  16.  
  17. # Fizz Buzz ¤ò»î¤·¤Æ¹Ô¤¯¡¥ºÇ½é¤Ï 1 ¤«¤é.
  18. i = 1
  19.  
  20. # n ¤¬»ØÄꤵ¤ì¤¿¿ô¤Ë¤Ê¤ë¤Þ¤Ç i ¤òÁý¤ä¤·¤Æ¤¤¤¯
  21. while (n < n_upper) do
  22.   # ²èÌ̽ÐÎÏ
  23.   print(fb(i),"\n")
  24.  
  25.   # ¡ÖFizz Buzz ¤Î½ÐÎϤ¬Ã±¤Ê¤ë¿ô»ú¤Ç¤Ê¤¤ = ÊÑ´¹¤µ¤ì¤¿¡×¤È¤·¤Æ¥«¥¦¥ó¥È¤òÁý¤ä¤¹
  26.   if (fb(i) != i) then
  27.     n += 1
  28.   end
  29.  
  30.   # ¼¡¤Î¿ô¤Ø
  31.   i += 1
  32. end

Fizz Buzz ´Ø¿ô¤Î¼ÂÁõ

Fizz Buzz ¤ÎÀ­¼Á¤«¤é¤·¤Æ¡¤ÂоݤȤʤëÀ°¿ô n ¤ËÂФ·¤Æ¥×¥í¥°¥é¥à¤Î¤ä¤ë¤Ù¤­¤³¤È¤Ï(ÁÇľ¤Ë¤Ï)

  1. ¤Þ¤º 15 ¤ÎÇÜ¿ô¤«¥Á¥§¥Ã¥¯ (·ë²Ì¤Ï Yes = Fizz Buzz ¤ò½ÐÎÏ or No)
  2. ¾å¤Î¥Á¥§¥Ã¥¯¤Î·ë²Ì¤¬ No ¤Ê¤é¤Ð¡¤(Î㤨¤Ð) 3 ¤ÎÇÜ¿ô¤«¥Á¥§¥Ã¥¯ (·ë²Ì¤Ï Yes = Fizz ¤ò½ÐÎÏ or No)
  3. ¾å¤Î¥Á¥§¥Ã¥¯¤Î·ë²Ì¤¬ No ¤Ê¤é¤Ð¡¤(Î㤨¤Ð) 5 ¤ÎÇÜ¿ô¤«¥Á¥§¥Ã¥¯ (·ë²Ì¤Ï Yes = Buzz ¤ò½ÐÎÏ or No)
  4. ¾å¤Î¥Á¥§¥Ã¥¯¤Î·ë²Ì¤¬ No ¤Ê¤é¤Ð¡¤À°¿ô n ¤½¤Î¤â¤Î¤ò½ÐÎÏ

¤È¤¤¤¦½ç½ø¤Ë¤Ê¤ë¡¥¤³¤ì¤Ï´Êñ¤Ê»»¿ô¤ÎÌäÂê¤À¡¥¤³¤ì¤òÂç³ØÀ¸¤¬´Ö°ã¤¨¤ë¤ÈÁêÅöÃѤº¤«¤·¤¤¡Ä

Fizz Buzz ¤Ç´Ö°ã¤¨¤¿³ØÀ¸¤Ï»»¿ô¤ÎǽÎϤˤĤ¤¤ÆÈ¿¾Ê¤¬É¬Íפ«¤â

¤µ¤Æ¡¤ÏäòÌᤷ¤Æ 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

̤¦¤È¤³¤í¤Ê¤É²¿¤â̵¤¤¤°¤é¤¤´Êñ¤À¡¥¤â¤Á¤í¤ó¡¤elsif ¤Ê¤É»È¤ï¤Ê¤¯¤Æ¤â ¼¡¤Î¤è¤¦¤Ë if ʸ¤òÁÇľ¤Ë½Å¤Í¤Æ¤¤¤Ã¤Æ¤âÎɤ¤¡¥¤¤¤º¤ì¤Ë¤·¤Æ¤âÏÀÍý¤¬¤ï¤«¤Ã¤Æ¤¤¤ì¤Ð¤³Éôʬ¤Î¥×¥í¥°¥é¥à¤Ï¤Þ¤Ã¤¿¤¯Æñ¤·¤¯¤Ê¤¤¡¥

def fb(n)
  if (n % 15 == 0) then
    return "Fizz Buzz"
  else 
    if (n % 3 == 0) then
      return "Fizz"
    else 
      if (n % 5 == 0) then
        return "Buzz"
      else
        return n
      end
    end
  end
end

½ÐÍè¤Ê¤«¤Ã¤¿ or Æñ¤·¤«¤Ã¤¿¤È»×¤Ã¤¿¿Í¤Ï¡¤

¥×¥í¥°¥é¥ß¥ó¥°¤¹¤ëÁ°¤Ë¡¤ÏÀÍý¤ò¤­¤Á¤ó¤ÈÀ°Íý¤·¤Æ¤¤¤ë¤«¡©

¤È¼«Ê¬¤Î¹ÔÆ°¤ò¿¶¤êÊ֤äƤߤ褦¡¥¤â¤·¤â»×¤¤Åö¤¿¤ë¤Õ¤·¤¬¤¢¤ë¤Ê¤é¤Ð¡¤¥­¡¼¥Ü¡¼¥É¤Ë¿¨¤ëÁ°¤ËÌäÂê¤òÀ°Íý¤·¤Æ¤«¤é¼è¤êÁȤà¤è¤¦¤Ë¤·¤Æ¤ß¤è¤¦¡¥


Collatz ÌäÂê

¤Þ¤º¡¤¥×¥í¥°¥é¥à¤Ë²Ý¤»¤é¤ì¤¿¾ò·ï¤òºÆ·Ç¤·¤è¤¦¡¥

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

¤È¤¤¤¦¤³¤È¤À¤Ã¤¿¡¥¤À¤«¤é¤â¤Á¤í¤ó¡¤
warning.png num_col ´Ø¿ô¤¬¤Ê¤±¤ì¤Ð¼º³Ê¤Ç¤¢¤ë¡¥
¤â¤Ã¤È¤­¤Á¤ó¤È¸À¤¦¤È¡¤Áí»Å¾å¤²¤ÎÌäÂê¤Ë¤Ä¤¤¤Æ¤ÏÅöÁ³

²Ý¤»¤é¤ì¤¿¾ò·ï¤òËþ¤¿¤µ¤Ê¤±¤ì¤Ð¥ì¥Ý¡¼¥È¤È¤·¤Æ¼õÍý¤µ¤ì¤Ê¤¤

¤Î¤Ç¡¤Å¬Åö¤Ë½Ð¤»¤Ð¤¤¤¤¤ä¤È¤ª¤â¤Ã¤Æ¤¤¤ë¤Èñ°Ì¤¬¤Ä¤«¤Ê¤¯¤Æò¤¯¤³¤È¤Ë¤Ê¤ë¡¥

Á´Âι½Â¤

¤µ¤Æ¡¤Á´Âι½Â¤¤Ïñ½ã¤Ë°Ê²¼¤Î¤è¤¦¤Ë¤Ê¤ë¤À¤í¤¦¡¥

  1. include Math
  2.  
  3. # Collatz ´Ø¿ô
  4. def col(n)
  5.   # ¼ÂÁõ¤Ï¸å¤Ç¡¥
  6.   return n
  7. end
  8.  
  9. # Collatz ´Ø¿ô¤ò²¿²óŬÍѤ·¤¿¤é 1 ¤Ë¤Ê¤ë¤«¤òÊÖ¤¹´Ø¿ô. ¤³¤Î´Ø¿ô¤òºî¤ì¤È»Ø¼¨¤µ¤ì¤Æ¤¤¤ë¡¥
  10. def num_col(k)
  11.   # ¼ÂÁõ¤Ï¸å¤Ç
  12.   return k
  13. end
  14.  
  15. # °Ê²¼¡¤programËÜÂÎ
  16.  
  17. # ¤É¤³¤Þ¤ÇÄ´¤Ù¤ë¤«
  18. n_upper = ARGV[0].to_i
  19.  
  20. # 1 ¤«¤é½ç¤Ë¡¤n_upper ¤Þ¤Ç num_col ¤Î·ë²Ì¤ò½ÐÎϤ¹¤ë
  21. for i in 1..n_upper do
  22.   print(i, ", ",num_col(i),"\n")
  23. end


³Æ´Ø¿ô¤Î¼ÂÁõ

¤Þ¤º¡¤ÄêµÁÄ̤ê¤ÇºÑ¤à Collatz ´Ø¿ô¤ò¼ÂÁõ¤·¤è¤¦¡¥¼¡¤Î¤è¤¦¤Ë¤Ê¤ë¤À¤í¤¦¡¥

def col(n)
  if (n % 2 == 0) then
      return (n/2)
    else
      return (3*n)+1
  end
end

¤½¤·¤Æ¡¤Collatz ´Ø¿ô¤ò²¿²óŬÍѤ·¤¿¤é 1 ¤Ë¤Ê¤ë¤«¤òÊÖ¤¹´Ø¿ô¤Ï while ¤ò»È¤Ã¤ÆÎ㤨¤Ð¼¡¤Î¤è¤¦¤Ë¤Ê¤ë¤À¤í¤¦¡¥

def num_col(k)
  i = 0
  n = k

  while (n > 1) do # ¤Þ¤À 1 ¤Ë¤Ê¤Ã¤Æ¤Ê¤±¤ì¤Ð Collatz ´Ø¿ô¤òŬÍѤ¹¤ë.
    n = col(n)
    i += 1
  end

  # ¤³¤³¤ØÍè¤ë¤Î¤Ï¡¤while ¤òÈ´¤±¤¿»þ¤Ê¤Î¤Ç¡¤n=1 ¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡¥
  return i
end

¤¢¤È¤Ï¡¤¤³¤Î¥×¥í¥°¥é¥à¤ò 100 ¤°¤é¤¤¤Þ¤ÇÆ°¤«¤·¤Æ¡¤·ë²Ì¤ò¥°¥é¥Õ¤Ë¤·¤Æ¥°¥é¥Õ¤È¥×¥í¥°¥é¥à¤ÎξÊý¤ò¥ì¥Ý¡¼¥È¤È¤·¤ÆÄó½Ð¤¹¤ì¤ÐÎɤ«¤Ã¤¿¡¤¤È¤¤¤¦´Êñ¤ÊÏäÀ¡¥

¥×¥í¥°¥é¥àÆ°ºîÃæ¤Ë¥Ç¡¼¥¿¤òÌ㤦 : gets Ì¿Îá

¥×¥í¥°¥é¥à¤ÎÆ°ºîÃæ¤Ë¡¤¥­¡¼¥Ü¡¼¥É¤ä¥Õ¥¡¥¤¥ë¤«¤é¥Ç¡¼¥¿¤òÌ㤤¤¿¤¤¤È¤¤¤¦¥·¥Á¥å¥¨¡¼¥·¥ç¥ó¤¬¤¢¤ë¡¥
¤³¤¦¤¤¤¦»þ¤Ë»È¤¦Ì¿Îá¤È¤·¤Æ gets (get string ¤Îά) ¤È¤¤¤¦Ì¿Î᤬¤¢¤ë¤Î¤Ç¤³¤ì¤ò³Ø¤Ü¤¦¡¥

»È¤¤Êý¤Ï¡¤¤ª¤ª¤¶¤Ã¤Ñ¤Ë¤¤¤Ã¤Æ°Ê²¼¤ÎÄ̤ê¤À¡¥

1¹Ô¤Ë1¸Ä¤Î¥Ç¡¼¥¿¤òÌ㤦¾ì¹ç

¥Ç¡¼¥¿¤òÆþÎϤ·¤Æ¤â¤é¤¦¤¿¤Ó¤Ë¡¤¼¡¤Î¥»¥Ã¥È¤ò¹Ô¤¨¤ÐÎɤ¤¡¥
¤¿¤À¤·¡¤a ¤Ï¥Ç¡¼¥¿¤òÆþ¤ì¤ëÊÑ¿ô̾¤Î¡ÖÎã¡×¤Ç¤¢¤ë¡¥

a = gets
a.chomp!

²òÀ⤷¤è¤¦¡¥

ºÇ½é¤Î a=gets ¤Ç¥­¡¼¥Ü¡¼¥É¤«¤é°ì¹Ôʬ¤Îʸ»úÎóÆþÎϤ¬ÆÀ¤é¤ì¡¤ÊÑ¿ô a ¤ËÂåÆþ¤µ¤ì¤ë¡¥
¤¿¤À¤·¡¤¤³¤Î¤Þ¤Þ¤À¤È a ¤ÎºÇ¸å¤Ë¡Ö²þ¹Ô¥³¡¼¥É \n¡×¤È¤¤¤¦Æüì¤Êʸ»ú¤¬Æþ¤Ã¤¿¤Þ¤Þ¤Ç¤¢¤ê¡¤Ä̾ï¤Ïº¤¤ë¤À¤±¤Ê¤Î¤Ç¡¤¼¡¤Î a.chomp! ¤Ç¤½¤ÎÆüì¤Êʸ»ú \n ¤ò¾Ãµî¤·¤Æ¤¤¤ë¡¥

ÆþÎϥǡ¼¥¿¤Ë¤Ï¤¤¤Ä¤â¤¹¤° .chomp! ¤·¤Æ¤ª¤³¤¦

warning.png gets = get string ¤Ç¤¢¤ë¤³¤È¤«¤é¤ï¤«¤ë¤è¤¦¤Ë¡¤ÆþÎϥǡ¼¥¿¤Ï¡Öʸ»úÎó¡×¤È¤·¤Æ°·¤ï¤ì¤ë¡¥¿ô»ú¤È¤·¤Æ°·¤¤¤¿¤¤¤È¤­¤ÏÊÑ´¹¤¬É¬ÍפÀ¡¥

notes.png ¿ô»ú¤òÆó¤Ä¤â¤é¤Ã¤Æ¤½¤ÎÊ¿¶Ñ¤òµá¤á¤ë´Êñ¤Ê¥×¥í¥°¥é¥à¤òÁȤ⤦¡¥¤¿¤À¤·¡¤ÆþÎϤòÂ¥¤¹É½¼¨¤â¤¹¤ë¤è¤¦¤Ë¤·¤è¤¦¡¥


¤³¤Î¾ì¹ç¤ÏÎ㤨¤Ð¼¡¤Î¤è¤¦¤Ë¤Ê¤ë¤À¤í¤¦(¤¿¤À¤·¡¤»÷¤¿Íͤʷ«¤êÊÖ¤·¤¬½Ð¤Æ¤­¤Æ¤¤¤Æ¤¢¤Þ¤êÎɤ¯¤Ê¤¤¥×¥í¥°¥é¥à¤Ç¤¢¤ë)¡¥

  1. include Math
  2.  
  3. print("What is x? : ") # ÆþÎϤòÂ¥¤¹É½¼¨
  4. x = gets
  5. x.chomp!
  6.  
  7. print("What is y? : ") # ÆþÎϤòÂ¥¤¹É½¼¨
  8. y = gets
  9. y.chomp!
  10.  
  11. z = (x.to_f + y.to_f) / 2.0
  12. # x, y ¤Ë .to_f ¤Ê¤É¤ò¤Ä¤±¤Ê¤¤¤È¿ô»ú°·¤¤¤Ë¤Ê¤é¤Ê¤¤¤³¤È¤ËÃí°Õ¡ª
  13.  
  14. print("Average = ",z,"\n")

Î㤨¤Ð¤³¤Î¥×¥í¥°¥é¥à¤ò¼Â¹Ô¤¹¤ë¤È¡¤

What is x? : 1

What is y? : 2

Average = 1.5

¤Ê¤É¤È¤Ê¤ë¡¥

[±þÍÑ] 1¹Ô¤Ë1¸Ä¤Î¥Ç¡¼¥¿¤òÌ㤦¾ì¹ç. ¤¿¤À¤·¡¤²¿¹Ô¤ÎÆþÎϤ¬¤¢¤ë¤«¤ï¤«¤é¤Ê¤¤¾ì¹ç

Î㤨¤Ð¡¤¡Ö¤¤¤¯¤Ä¤«¤Î¡×¥Ç¡¼¥¿¤ÎÊ¿¶Ñ¤òÃΤꤿ¤¤¤¬¡¤¥Ç¡¼¥¿¤¬¤¤¤¯¤ÄÍ­¤ë¤«»öÁ°¤Ëʬ¤«¤é¤Ê¤¤¤è¤¦¤Ê¾ì¹ç¤¬¤¢¤ë¡¥¤³¤¦¤·¤¿¾ì¹ç¤°¤é¤¤¡¤ÆþÎϤ˽ÀÆðÀ­¤ò»ý¤¿¤»¤¿¤¤¡¥
¤½¤¦¤·¤¿¾ì¹ç¤Ë¤Ï while ¤ò»È¤Ã¤Æ¼¡¤Î¤è¤¦¤Ë¤¹¤ë¤Î¤¬¥Ñ¥¿¡¼¥ó¤À¡¥

while (a = gets) do
    a.chomp!
    ½èÍý¤·¤¿¤¤¤³¤È¤ò¤É¤ó¤É¤óµ­½Ò
    ¡Ä
    ¤³¤³¤Þ¤Ç¤­¤¿¤é¡¤¤â¤¦°ìÅÙ¾å¤ËÌá¤Ã¤Æ¡ÖÆþÎϤ¬¤¢¤ì¤Ð¡×while ¤Î¼¡¤Î¹Ô¤ËÆÍÆþ¡¥
    ¡ÖÆþÎϤ¬¤Ê¤±¤ì¤Ð¡×²¼¤Î end °Ê¹ß¤Ë°Ü¤ë
end

warning.png (¾åµé¼Ô¸þ¤±) ¤ï¤«¤ë¿ÍÍѤ˲òÀ⤹¤ë¤È¡¤ÆþÎϤ¬¤Ê¤±¤ì¤Ð gets ¤Î·ë²Ì¤¬¶õ¤Ã¤Ý¤Ë¤Ê¤ê¡¤a = get ¤ÎÂåÆþ¤Ë¡Ö¼ºÇԡפ¹¤ë¡¥¤½¤Î¤¿¤á¡¤while ʸ¤Î¾ò·ï¤¬À®¤êΩ¤¿¤º¤Ë¡¤end °Ê²¼¤ØÀ©¸æ¤¬Î®¤ì¤ë¤È¤¤¤¦»ÅÁȤߤÀ¡¥

¤³¤ì¤Ï¼ÂÎã¤ò¸«¤Ê¤¤¤È¥Ô¥ó¤È¤³¤Ê¤¤¿Í¤â¤¤¤ë¤À¤í¤¦¡¥
notes.png ¿ô»ú¤òÊ£¿ô²óÆþÎϤ·¤Æ¤â¤é¤Ã¤Æ¤½¤ÎÊ¿¶Ñ¤òµá¤á¤ë´Êñ¤Ê¥×¥í¥°¥é¥à¤òÁȤ⤦¡¥¤¿¤À¤·¡¤²¿²óÆþÎϤµ¤ì¤ë¤«¤Ï»öÁ°¤Ë¤Ïʬ¤«¤é¤Ê¤¤¤È¤·¤è¤¦¡¥


¤³¤Î¾ì¹ç¤ÏÎ㤨¤Ð¼¡¤Î¤è¤¦¤Ë¤Ê¤ë¤À¤í¤¦¡¥

  1. include Math
  2.  
  3. # ¥Ç¡¼¥¿¤Î¸Ä¿ô
  4. n = 0
  5.  
  6. # ¥Ç¡¼¥¿¤Î¹ç·×
  7. sum = 0.0
  8.  
  9. print("? (to stop, push Ctrl+d): ") # ÆþÎϤòÂ¥¤¹É½¼¨.ºÇ½é¤Î°ì²óʬ¤À¤±Í¾·×¤ËɬÍס¥
  10. while (x = gets) do
  11.   x.chomp!
  12.  
  13.   sum += x.to_f
  14.   n += 1
  15.  
  16.   print("? (to stop, push Ctrl+d): ") # (¼¡¤Î)ÆþÎϤòÂ¥¤¹É½¼¨
  17. end
  18.  
  19. average = sum/n
  20.  
  21. print("\nAverage = ",average,"\n")

Î㤨¤Ð¤³¤Î¥×¥í¥°¥é¥à¤ò¼Â¹Ô¤¹¤ë¤È¡¤

? (to stop, push Ctrl+d): 3

? (to stop, push Ctrl+d): 2.1

? (to stop, push Ctrl+d): 4.3

? (to stop, push Ctrl+d):

Average = 3.13333333333333

(4²óÌܤÎÆþÎÏ»þ¤Ë¡¤Ctrl ¥­¡¼¤È d ¥­¡¼¤òƱ»þ¤Ë²¡¤·¤Æ¤¤¤ë)
¤Ê¤É¤È¤Ê¤ë¡¥

warning.png ¥³¥ó¥Ô¥å¡¼¥¿¤ÎÀ¤³¦¤Ç¤Ï¡¤¡ÖÆþÎϤϽª¤ê¤À¤è¡×¤È±þÅú¤·¤¿¤¤¤È¤­¤Ï Ctrl ¥­¡¼¤È d ¥­¡¼¤òƱ»þ¤Ë²¡¤¹Ìó«¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡¥³Ð¤¨¤Æ¤ª¤¯¤È¤è¤¤¤³¤È¤¬¤¢¤ë¤«¤â¤·¤ì¤Ê¤¤.

1¹Ô¤ËÊ£¿ô¤Î¥Ç¡¼¥¿¤òÌ㤦¾ì¹ç

1¹Ô¤ËÊ£¿ô¤Î¥Ç¡¼¥¿¤ò½ñ¤¤¤Æ¤â¤é¤Ã¤ÆÆþÎϤȤ¤¤¦¾ì¹ç¤Ï¡¤¥Ç¡¼¥¿¤òʬ³ä¤·¤ÆÇÛÎó¤ÎÍ×ÁǤˤ·¤Æ¤·¤Þ¤¦¤Î¤¬¤Þ¤¢»È¤¤°×¤¤¤ä¤êÊý¤À¤í¤¦¡¥
¥Ç¡¼¥¿¤¬¶õÇò¤Ç¶èÀÚ¤é¤ì¤ÆÆþÎϤµ¤ì¤ë¾ì¹ç¡¤¶ñÂÎŪ¤Ë¤Ï¼¡¤Î¤è¤¦¤Ë¤Ê¤ë¡¥

a = gets
a.chomp!
ary = a.split()


¤³¤Î¾ì¹ç¤Ï¡¤ÊÑ¿ô ary ¤¬Ê£¿ô¤Î¥Ç¡¼¥¿¤ò³ÊǼ¤·¤¿ÇÛÎó¤È¤Ê¤ë¡¥
¤è¤¯¤ï¤«¤é¤Ê¤¤¤È¤¤¤¦¿Í¤Ï¡¤ÌµÍý¤ËÍý²ò¤»¤º¡¤¤³¤Î¡Ö¥Ñ¥¿¡¼¥ó¡×¤ò°Åµ­¤·¤Æ¤·¤Þ¤Ã¤Æ¤âÎɤ¤¡¥

warning.png (¾åµé¼Ô¸þ¤±) .split() ¤Ï¡¤() ¤ÎÃæ¤Ë»ØÄꤷ¤¿¤â¤Î¤Ç¶èÀÚ¤é¤ì¤Æ¤¤¤ë¤È¤·¤Æʸ»úÎó¤òʬ³ä¤·¤ÆÇÛÎó¤òÊÖ¤¹Áàºî¤Ç¤¢¤ë¡¥²¿¤â¤¤¤ì¤Ê¤¤¤È¶õÇò¶èÀÚ¤ê¤Ë¤Ê¤ë¡¥Â¾¤Î¾ì¹ç¤Ë¤Ä¤¤¤Æ¤Ï³Æ¼«Ä´¤Ù¤è¡¥

¤µ¤é¤Ë¡¤ÆþÎϥǡ¼¥¿¤¬¼Â¤ÏÁ´Éô¿ô»ú¤Î¤Ä¤â¤ê¤À¤È¤¤¤¦¾ì¹ç¤Ï¡¤¼¡¤Î°ì¹Ô¤ò²Ã¤¨¤ÆÇÛÎó¤òÊÑ´¹¤¹¤ì¤ÐÎɤ¤¡¥

ary.map!{|e| e.to_f }


¤è¤¯¤ï¤«¤é¤Ê¤¤¤È¤¤¤¦¿Í¤Ï¡¤ÌµÍý¤ËÍý²ò¤»¤º¡¤¤³¤Î¡Ö¥Ñ¥¿¡¼¥ó¡×¤ò°Åµ­¤·¤Æ¤·¤Þ¤Ã¤Æ¤âÎɤ¤¡¥

warning.png (¾åµé¼Ô¸þ¤±) .map! ¤ÏÇÛÎó¤ÎÃæ¿È¤½¤ì¤¾¤ì¤ËƱ¤¸Áàºî¤ò²Ã¤¨¤ëÌ¿Îá¤Ç¤¢¤ë¡¥

notes.png ¤µ¤Æ¡¤¤³¤Îµ¡Ç½¤ò»È¤Ã¤Æ¡¤¿ô»ú¤ò1¹Ô¤ËÊ£¿ô¸ÄÆþÎϤ·¤Æ¤â¤é¤Ã¤Æ¤½¤ÎÊ¿¶Ñ¤òµá¤á¤ë´Êñ¤Ê¥×¥í¥°¥é¥à¤òÁȤ⤦¡¥¤¿¤À¤·¡¤²¿¸ÄÆþÎϤµ¤ì¤ë¤«¤Ï»öÁ°¤Ë¤Ïʬ¤«¤é¤Ê¤¤¤È¤·¤è¤¦¡¥ ¤Þ¤¿¡¤ÅÓÃæ¤ÎÊÑ¿ô¤ÎÊÑ´¹Åù¤¬¤É¤¦¤Ê¤Ã¤Æ¤¤¤ë¤Î¤«¤òÍý²ò¤¹¤ë¤¿¤á¤Ë¡¤ÅÓÃæ¤Î·Ð°Þ¤âɽ¼¨¤â¤¹¤ë¤è¤¦¤Ë¤·¤è¤¦.


¤³¤Î¾ì¹ç¤ÏÎ㤨¤Ð¼¡¤Î¤è¤¦¤Ë¤Ê¤ë¤À¤í¤¦¡¥

  1. include Math
  2.  
  3. # ÆþÎϤòÂ¥¤¹É½¼¨.
  4. print("? : ") 
  5.  
  6. # ¤Þ¤ºÉáÄ̤ËÂ礭¤Êʸ»úÎó°ì¤Ä¤È¤·¤ÆÆþÎÏ
  7. x = gets
  8. x.chomp!
  9.  
  10. # ¸½¾õ¤Î x ¤òɽ¼¨¤·¤Æ¤ß¤ë
  11. p x
  12.  
  13. # ¶õÇò¤Ç¶èÀڤäÆÇÛÎó¤ËÊÑ´¹¤¹¤ë
  14. data = x.split()
  15.  
  16. # ¤½¤ÎÇÛÎó¤òɽ¼¨¤·¤Æ¤ß¤ë
  17. p data
  18.  
  19. # ÇÛÎó¤ÎÍ×ÁǤ¹¤Ù¤Æ¤ò¼Â¿ô°·¤¤¤ËÊÑ´¹
  20. data.map!{ |e| e.to_f }
  21.  
  22. # ¤½¤ÎÇÛÎó¤òɽ¼¨¤·¤Æ¤ß¤ë
  23. p data
  24.  
  25. # ¤¢¤È¤ÏÊ¿¶Ñ¤ò·×»»¡¥
  26. sum = 0.0
  27. for i in 1..data.size do
  28.   sum += data[i-1]
  29. end
  30. average = sum/data.size
  31.  
  32. # Ê¿¶Ñ¤òɽ¼¨
  33. print("Average = ",average,"\n")

Î㤨¤Ð¤³¤Î¥×¥í¥°¥é¥à¤ò¼Â¹Ô¤¹¤ë¤È¡¤

? : 3 2.1 4.3

"3 2.1 4.3"

["3", "2.1", "4.3"]

[3.0, 2.1, 4.3]

Average = 3.13333333333333

¤Ê¤É¤È¤Ê¤ë("3 2.1 4.3" ¤ÈÆþÎϤ·¤¿¾ì¹ç)¡¥

¥­¡¼¥Ü¡¼¥É¤«¤é¤Ç¤Ï¤Ê¤¯¡¤¥Õ¥¡¥¤¥ë¤«¤é¥Ç¡¼¥¿¤òÆþÎϤ¹¤ë

¥Ç¡¼¥¿¤¬Â¿¤¤¾ì¹ç¤Ï¥­¡¼¥Ü¡¼¥É¤«¤éÆþÎϤ¹¤ë¤Î¤ÏÌÌÅݤÀ¡¥¤Þ¤¿¡¤´û¤Ë¥Õ¥¡¥¤¥ë¤Ë¥Ç¡¼¥¿¤¬Â¸ºß¤¹¤ë¤Ê¤é¤Ð¡¤¤Ï¤ä¤ê¤½¤ì¤òľÀÜÍøÍѤ¹¤ë¤Î¤¬¸­¤¤¡¥
¤½¤³¤Ç¡¤¾å¤Î ¥×¥í¥°¥é¥à¤òÊѹ¹¤»¤º¤Ë¡¤¥Õ¥¡¥¤¥ë¤«¤é¥Ç¡¼¥¿¤òÆþÎϤ¹¤ëÊýË¡¤ò¶µ¤¨¤Æ¤ª¤³¤¦¡¥

Î㤨¤Ð¡¤data.txt ¤È¤¤¤¦¥Õ¥¡¥¤¥ë¤Ë¥­¡¼¥Ü¡¼¥É¤ÇÆþÎϤ¹¤ë¤Î¤ÈƱ¤¸¥Ç¡¼¥¿¤¬½ñ¤¤¤Æ¤¢¤Ã¤Æ¡¤¥×¥í¥°¥é¥à̾¤¬ prg.rb¤À¤È¤·¤¿¤é¡¤


ruby -w prg.rb < data.txt


¤È¤¤¤¦¤è¤¦¤Ë¡¤

¥×¥í¥°¥é¥à¤Îµ¯Æ°»þ¤Ë
< ¥Ç¡¼¥¿¤ÎÆþ¤Ã¤¿¥Õ¥¡¥¤¥ë̾ ¤ò¸å¤í¤Ë¤¯¤Ã¤Ä¤±¤ë

¤È¡¤¤½¤Î¥Õ¥¡¥¤¥ë¤ÎÃæ¿È¤¬¥­¡¼¥Ü¡¼¥ÉÆþÎϤÎÂå¤ï¤ê¤Ë»È¤ï¤ì¤ë¡¥

¤Þ¤¿¡¤Æ±ÍͤË


cat data.txt | ruby -w prg.rb


¤È¤¤¤¦¤è¤¦¤Ë¡¤

¥×¥í¥°¥é¥à¤Îµ¯Æ°»þ¤Ë
cat ¥Ç¡¼¥¿¤ÎÆþ¤Ã¤¿¥Õ¥¡¥¤¥ë̾ | ¤òÁ°¤Ë¤¯¤Ã¤Ä¤±¤ë

¤È¤·¤Æ¤â¡¤¤½¤Î¥Õ¥¡¥¤¥ë¤ÎÃæ¿È¤¬¥­¡¼¥Ü¡¼¥ÉÆþÎϤÎÂå¤ï¤ê¤Ë»È¤ï¤ì¤ë¡¥


| tee ¤ÈƱ»þ¤Ë»È¤¤¤¿¤¤

¤Á¤Ê¤ß¤Ë¡¤°ÊÁ°³Ø¤ó¤À | tee ¤ÈƱ»þ¤Ë»È¤¤¤¿¤¤¾ì¹ç¤Ï¡¤(½ÐÎÏ¥Õ¥¡¥¤¥ë̾¤ò output.dat ¤È²¾¤Ë¤·¤Æ)¤½¤ì¤¾¤ì



ruby -w prg.rb < data.txt | tee output.dat
cat data.txt | ruby -w prg.rb | tee output.dat

¤È¤¹¤ì¤Ð¤è¤¤¡¥

notes.png º£¤Þ¤Ç¤Î¥­¡¼¥Ü¡¼¥ÉÆþÎϤò¡¤¤¹¤Ù¤Æ¥Õ¥¡¥¤¥ë¤«¤é¤ÎÆþÎϤËÂ夨¤Æ¤¦¤Þ¤¯¤¤¤¯¤³¤È¤ò³Î¤«¤á¤Æ¤ß¤è¤¦¡¥
warning.png ¥Õ¥¡¥¤¥ë¤«¤é¤ÎÆþÎϤξì¹ç¡¤¡Ö¥Ç¡¼¥¿¤¬¤â¤¦½ª¤ï¤ê¡×¤È¤¤¤¦¤Î¤Ï¡Ö¥Õ¥¡¥¤¥ë¤¬½ª¤ï¤ê¤Ë㤷¤¿¡×¤³¤È¤Çɽ¤µ¤ì¤ë¡¥


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

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

¶ñÂÎŪ¤Ë¤Ï¼Â¹Ô¤¹¤ë¤È

? : 1 2 5 8

? : 2 3 8 10

? :


Input matrix =

[ 1.0 2.0 5.0 8.0 ]

[ 2.0 3.0 8.0 10.0 ]


Transposed matrix =

[ 1.0 2.0 ]

[ 2.0 3.0 ]

[ 5.0 8.0 ]

[ 8.0 10.0 ]

(1²óÌܤÎÆþÎÏ¤Ç "1 2 5 8" ¤ÈÆþÎϤ·¡¤2²óÌܤÎÆþÎÏ¤Ç "2 3 8 10" ¤ÈÆþÎϤ·¡¤3²óÌܤÎÆþÎÏ¤Ç Ctrl ¥­¡¼¤È d ¥­¡¼¤òƱ»þ¤Ë²¡¤·¤Æ¤¤¤ë)
¤È¤¤¤¦¤è¤¦¤ÊÆ°ºî¤ò¤¹¤ë¥×¥í¥°¥é¥à¤ò½ñ¤±¡¤¤È¤¤¤¦¤³¤È¤Ë¤Ê¤ë¡¥

warning.png °ÊÁ°¤Ë¹ÔÎó¤Ë¤Ä¤¤¤Æ½ñ¤¤¤¿¥×¥í¥°¥é¥à¤¬»²¹Í¤Ë¤Ê¤ë¤Ï¤º¤À¡¥¤è¤¯¤ß¤Æ¤ß¤è¤¦¡¥


notes.png (¾åµé¼Ô¸þ¤±) n x n ¹ÔÎó A ¤Î¥Ç¡¼¥¿¤È n¼¡¸µ¥Ù¥¯¥È¥ë b ¤Î¥Ç¡¼¥¿¤òÆþÎϤ¹¤ë¤È¡¤Ï¢Î©°ì¼¡ÊýÄø¼° Ax = b ¤ò²ò¤¤¤Æ x ¤ò½ÐÎϤ¹¤ë¥×¥í¥°¥é¥à¤¬½ñ¤±¤ë¤À¤í¤¦¤«¡¥ÉáÄ̤ξõîË¡¤¬¤ï¤«¤Ã¤Æ¤¤¤ì¤Ð¤Ç¤­¤ë¤Ï¤º¤À¤¬¡¤¤µ¤Æ¤µ¤Æ.

¥ì¥Ý¡¼¥È

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

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

  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.