585 views
463 views

Published on

Published in: Software
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
585
On SlideShare
0
From Embeds
0
Number of Embeds
28
Actions
Shares
0
Downloads
1
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

  1. 1. 数 @nipotan
  2. 2. 数字の表現について
  3. 3. 他言語を学ぶ際 躓きがちなのが「数」
  4. 4. 海外に行った時など 小さい店で買物しても いくらかよくわからない
  5. 5. 米国では小切手を切る ことが非常に多い
  6. 6. 額面の書き足しを防ぐため 算用数字 + 命数
  7. 7. $5,199- five thousand one hundred and ninety-nine dollars only
  8. 8. 書き間違えると 不渡りに…
  9. 9. 文化圏による命数法の違い • 西洋圏などは 3 桁区切りの千進法 • 区切られた中の三桁を読んで scale で繋ぐ 9876543210 billion million thousand
  10. 10. 文化圏による命数法の違い • 漢文化圏は 4 桁区切りの万進法 • 区切られた中の四桁を読んで大数で繋ぐ 9876543210 億 万
  11. 11. 突然ですが 韓国語の話をしよう
  12. 12. 韓国も漢文化圏
  13. 13. 文化圏による命数法の違い • 漢文化圏は 4 桁区切りの万進法 • 区切られた中の四桁を読んで大数で繋ぐ 9876543210 억 만
  14. 14. 日本と韓国の 命数法の違い
  15. 15. 日本と韓国の命数法 0 … 零、영、공 1 … 一、일 2 … 二、이 3 … 三、삼 4 … 四、사 5 … 五、오 6 … 六、육 7 … 七、칠 8 … 八、팔 9 … 九、구 10 … 十、십 100 … 百、백 1000 … 千、천 10000 … 万、만
  16. 16. 日本と韓国の命数法 億 → 억 兆 → 조 京 → 경 垓 → 해 禾予 → 자 穣 → 양 溝 → 구 澗 → 간 正 → 정 載 → 재 極 → 극 恒河沙 → 항하사 阿僧 → 아승기 那由他 → 나유타 不可思議 → 불가사의 無量大数 → 무량대수
  17. 17. 違いはほとんど無い
  18. 18. 私が知っている たった一つの違い
  19. 19. 10,000 の言い方
  20. 20. 1 はじまりの言い方 10 → 一十、일십 100 → 一百、일백 1000 → 一千、일천 10000 → 一万、일만 100000000 → 一億、일억 ○ ○ ○
  21. 21. 韓国の命数法は 日本人にも覚えやすい!
  22. 22. とは言え… 韓国語の勉強。数字はだいぶだるい…
  23. 23. LINE 韓国語通訳 答え合わせに使ったら、だいぶ役立たず…
  24. 24. 数字で苦労した経験から アメリカ滞在してた頃を ふと思い出した
  25. 25. 数字をよしなにするモジュール Lingua::EN::Numbers
  26. 26. 実際、こんな感じで調べて小切手を切った three hundred and eighty-nine million, three thousand, eight hundred and ninety-seven #!/usr/bin/env  perl       use  strict;   use  warnings;   use  Lingua::EN::Numbers  qw(num2en);       print  num2en(389003897),  "n";
  27. 27. 韓国語版は? 全然求めてるやつではないのしか出てこない
  28. 28. 日本語版は? そういえば以前、Lingua::JA::Numbers (by 弾さん) をブログでネタにした
  29. 29. 試すと 三億八千九百万三千八百九十七 #!/usr/bin/env  perl       use  strict;   use  warnings;   use  Lingua::JA::Numbers;       print  num2ja(389003897),  "n";
  30. 30. 日本語も韓国語も あんまり変わらないんだから 韓国語のやつも作ろうぜ
  31. 31. Lingua::KO::Numbers is available on github! https://github.com/nipotan/p5- Lingua-KO-Numbers
  32. 32. やってみた 삼억팔천구백만삼천팔백구십칠 #!/usr/bin/env  perl       use  strict;   use  warnings;   use  Lingua::KO::Numbers;       print  num2ko(389003897),  "n";
  33. 33. ほとんど Lingua::JA::Numbers のコピペ!
  34. 34. しかも 韓国語初心者すぎて 合ってるのかわからない!!
  35. 35. 折角だから、 もうちょっと遊ぼう
  36. 36. 日韓英の数字読み #!/usr/bin/env  perl       use  strict;   use  warnings;   use  utf8;   use  UNIVERSAL::require;       binmode  STDOUT,  ':utf8';       my  $voices  =  +{          ja  =>  ‘kyoko',          ko  =>  'yuna',          en  =>  ‘allison',   };       my  $lang  =  'en';       while  (1)  {          my  $input  =  prompt($lang);          if  ($input  =~  /^(?:ko|ja|en)$/i)  {                  $lang  =  lc($input);                  print  "language  is  changed  to  $lang.n";                  next;          }          if  ($input  =~  /d/)  {                  my  $module  =  sprintf  "Lingua::%s::Numbers",  uc($lang);                  $module-­‐>use()  or  die  $@;                  my  $func  =  &{"$module::num2$lang"};                  my  $num  =  $func-­‐>($input);                  print  $num,  "n";                  system('/usr/bin/say',  '-­‐v',  $voices-­‐>{$lang},  $num)  &&  die  $^E;          }   }       sub  prompt  {          my  $lang  =  shift;          print  "$lang>  ";          chomp(my  $input  =  <STDIN>);          return  $input;   }
  37. 37. もっと世界のナベアツ #!/usr/bin/env  perl       use  strict;   use  warnings;   use  utf8;   use  UNIVERSAL::require;       binmode  STDOUT,  ':utf8';       (my  $lang  =  $ARGV[0]  ||  'en')  =~  /^(?:ko|ja|en)$/i  ||              die  "Usage:  $0  [  ko  |  ja  |  en  ]n";   my  $module  =  sprintf  "Lingua::%s::Numbers",  uc($lang);   $module-­‐>use()  or  die  $@;       $lang  =  lc($lang);   my  $convert_func  =  &{"$module::num2$lang"};       my  $voices  =  +{          ja  =>  'kyoko',          ko  =>  'yuna',          en  =>  'allison',   };       for  my  $num  (1  ..  40)  {          my  $number;          my  $cur_lang;          if  ($num  %  3  ==  0  ||  $num  =~  /3/)  {                  $number  =  $convert_func-­‐>($num);                  $cur_lang  =  $lang;          }          else  {                  $number  =  $num;                  $cur_lang  =  'en';          }          print  $number,  "n";          system('/usr/bin/say',  '-­‐v',  $voices-­‐>{$cur_lang},  $number)  &&  die  $^E;   }
  38. 38. ちゃんと勉強してから CPAN に age ます
  39. 39. 以上。 質問?

×