2012年11月24日土曜日

開発環境

『初めてのプログラミング 第2版』(Chris Pine 著、長尾 高弘 訳、オライリー・ジャパン、2010年、ISBN978-4-87311-469-9)の 13章(新しいクラスの作成と既存クラスの変更), 13.1(練習問題)組み込みクラスの拡張 を解いてみる。

その他参考書籍

組み込みクラスの拡張

コード(TextWrangler)

sample.rb

#!/usr/bin/env ruby1.9
# -*- coding: utf-8 -*-

class Array
  def shuffle
    some_array = self
    array = Array.new(some_array)
    shuffled_array = []
    while array.length > 0
      l = array.length
      r = rand l
      tmp = []
      i = 0
      l.times do
        if i == r
          shuffled_array.push array[i]
        else
          tmp.push array[i]
        end
        i += 1
      end
      array = tmp
    end
    shuffled_array
  end
end

class Integer
  def factorial
    n = self
    return 1 if n <= 1
    return n * (n-1).factorial
  end
  def to_roman
    number = self
    t = number / 1000
    number = number % 1000
    h = number / 100
    number = number % 100
    tens = number / 10  
    o = number % 10
    
    roman = 'M' * t
    if h == 9
      roman += 'CM'
    elsif h == 4
      roman += 'CD'
    else
      roman += 'D' * (h / 5)
      roman += 'C' * (h % 5)
    end
    if tens == 9
      roman += 'XC'
    elsif tens == 4
      roman += 'XL'
    else
      roman += 'L' * (tens / 5)
      roman += 'X' * (tens % 5)
    end
    if o == 9
      roman += 'IX'
    elsif o == 4
      roman += 'IV'
    else
      roman += 'V' * (o / 5)
      roman += 'I' * (o % 5)
    end
    roman
  end
end

a1 = [0,1,2,3,4,5,6,7,8,9]
a2 = %w(a b c d e f g h i j)
[a1, a2].each do |a|
  shuffled_a = a.shuffle
  puts "シャッフル前: #{a}"
  puts "シャッフル後: #{shuffled_a}"
end

(1..100).each do |i|
  puts "#{i}! = #{i.factorial}"
end

0.upto(100) do |number|
  puts "#{number}: #{number.to_roman}"
end

入出力結果(Terminal)

$ ./sample.rb
シャッフル前: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
シャッフル後: [7, 2, 9, 0, 1, 4, 8, 3, 5, 6]
シャッフル前: ["a", "b", "c", "d", "e", "f", "g", "h", "i", "j"]
シャッフル後: ["a", "e", "j", "b", "i", "c", "f", "d", "h", "g"]
1! = 1
2! = 2
3! = 6
4! = 24
5! = 120
6! = 720
7! = 5040
8! = 40320
9! = 362880
10! = 3628800
11! = 39916800
12! = 479001600
13! = 6227020800
14! = 87178291200
15! = 1307674368000
16! = 20922789888000
17! = 355687428096000
18! = 6402373705728000
19! = 121645100408832000
20! = 2432902008176640000
21! = 51090942171709440000
22! = 1124000727777607680000
23! = 25852016738884976640000
24! = 620448401733239439360000
25! = 15511210043330985984000000
26! = 403291461126605635584000000
27! = 10888869450418352160768000000
28! = 304888344611713860501504000000
29! = 8841761993739701954543616000000
30! = 265252859812191058636308480000000
31! = 8222838654177922817725562880000000
32! = 263130836933693530167218012160000000
33! = 8683317618811886495518194401280000000
34! = 295232799039604140847618609643520000000
35! = 10333147966386144929666651337523200000000
36! = 371993326789901217467999448150835200000000
37! = 13763753091226345046315979581580902400000000
38! = 523022617466601111760007224100074291200000000
39! = 20397882081197443358640281739902897356800000000
40! = 815915283247897734345611269596115894272000000000
41! = 33452526613163807108170062053440751665152000000000
42! = 1405006117752879898543142606244511569936384000000000
43! = 60415263063373835637355132068513997507264512000000000
44! = 2658271574788448768043625811014615890319638528000000000
45! = 119622220865480194561963161495657715064383733760000000000
46! = 5502622159812088949850305428800254892961651752960000000000
47! = 258623241511168180642964355153611979969197632389120000000000
48! = 12413915592536072670862289047373375038521486354677760000000000
49! = 608281864034267560872252163321295376887552831379210240000000000
50! = 30414093201713378043612608166064768844377641568960512000000000000
51! = 1551118753287382280224243016469303211063259720016986112000000000000
52! = 80658175170943878571660636856403766975289505440883277824000000000000
53! = 4274883284060025564298013753389399649690343788366813724672000000000000
54! = 230843697339241380472092742683027581083278564571807941132288000000000000
55! = 12696403353658275925965100847566516959580321051449436762275840000000000000
56! = 710998587804863451854045647463724949736497978881168458687447040000000000000
57! = 40526919504877216755680601905432322134980384796226602145184481280000000000000
58! = 2350561331282878571829474910515074683828862318181142924420699914240000000000000
59! = 138683118545689835737939019720389406345902876772687432540821294940160000000000000
60! = 8320987112741390144276341183223364380754172606361245952449277696409600000000000000
61! = 507580213877224798800856812176625227226004528988036003099405939480985600000000000000
62! = 31469973260387937525653122354950764088012280797258232192163168247821107200000000000000
63! = 1982608315404440064116146708361898137544773690227268628106279599612729753600000000000000
64! = 126886932185884164103433389335161480802865516174545192198801894375214704230400000000000000
65! = 8247650592082470666723170306785496252186258551345437492922123134388955774976000000000000000
66! = 544344939077443064003729240247842752644293064388798874532860126869671081148416000000000000000
67! = 36471110918188685288249859096605464427167635314049524593701628500267962436943872000000000000000
68! = 2480035542436830599600990418569171581047399201355367672371710738018221445712183296000000000000000
69! = 171122452428141311372468338881272839092270544893520369393648040923257279754140647424000000000000000
70! = 11978571669969891796072783721689098736458938142546425857555362864628009582789845319680000000000000000
71! = 850478588567862317521167644239926010288584608120796235886430763388588680378079017697280000000000000000
72! = 61234458376886086861524070385274672740778091784697328983823014963978384987221689274204160000000000000000
73! = 4470115461512684340891257138125051110076800700282905015819080092370422104067183317016903680000000000000000
74! = 330788544151938641225953028221253782145683251820934971170611926835411235700971565459250872320000000000000000
75! = 24809140811395398091946477116594033660926243886570122837795894512655842677572867409443815424000000000000000000
76! = 1885494701666050254987932260861146558230394535379329335672487982961844043495537923117729972224000000000000000000
77! = 145183092028285869634070784086308284983740379224208358846781574688061991349156420080065207861248000000000000000000
78! = 11324281178206297831457521158732046228731749579488251990048962825668835325234200766245086213177344000000000000000000
79! = 894618213078297528685144171539831652069808216779571907213868063227837990693501860533361810841010176000000000000000000
80! = 71569457046263802294811533723186532165584657342365752577109445058227039255480148842668944867280814080000000000000000000
81! = 5797126020747367985879734231578109105412357244731625958745865049716390179693892056256184534249745940480000000000000000000
82! = 475364333701284174842138206989404946643813294067993328617160934076743994734899148613007131808479167119360000000000000000000
83! = 39455239697206586511897471180120610571436503407643446275224357528369751562996629334879591940103770870906880000000000000000000
84! = 3314240134565353266999387579130131288000666286242049487118846032383059131291716864129885722968716753156177920000000000000000000
85! = 281710411438055027694947944226061159480056634330574206405101912752560026159795933451040286452340924018275123200000000000000000000
86! = 24227095383672732381765523203441259715284870552429381750838764496720162249742450276789464634901319465571660595200000000000000000000
87! = 2107757298379527717213600518699389595229783738061356212322972511214654115727593174080683423236414793504734471782400000000000000000000
88! = 185482642257398439114796845645546284380220968949399346684421580986889562184028199319100141244804501828416633516851200000000000000000000
89! = 16507955160908461081216919262453619309839666236496541854913520707833171034378509739399912570787600662729080382999756800000000000000000000
90! = 1485715964481761497309522733620825737885569961284688766942216863704985393094065876545992131370884059645617234469978112000000000000000000000
91! = 135200152767840296255166568759495142147586866476906677791741734597153670771559994765685283954750449427751168336768008192000000000000000000000
92! = 12438414054641307255475324325873553077577991715875414356840239582938137710983519518443046123837041347353107486982656753664000000000000000000000
93! = 1156772507081641574759205162306240436214753229576413535186142281213246807121467315215203289516844845303838996289387078090752000000000000000000000
94! = 108736615665674308027365285256786601004186803580182872307497374434045199869417927630229109214583415458560865651202385340530688000000000000000000000
95! = 10329978488239059262599702099394727095397746340117372869212250571234293987594703124871765375385424468563282236864226607350415360000000000000000000000
96! = 991677934870949689209571401541893801158183648651267795444376054838492222809091499987689476037000748982075094738965754305639874560000000000000000000000
97! = 96192759682482119853328425949563698712343813919172976158104477319333745612481875498805879175589072651261284189679678167647067832320000000000000000000000
98! = 9426890448883247745626185743057242473809693764078951663494238777294707070023223798882976159207729119823605850588608460429412647567360000000000000000000000
99! = 933262154439441526816992388562667004907159682643816214685929638952175999932299156089414639761565182862536979208272237582511852109168640000000000000000000000
100! = 93326215443944152681699238856266700490715968264381621468592963895217599993229915608941463976156518286253697920827223758251185210916864000000000000000000000000
0: 
1: I
2: II
3: III
4: IV
5: V
6: VI
7: VII
8: VIII
9: IX
10: X
11: XI
12: XII
13: XIII
14: XIV
15: XV
16: XVI
17: XVII
18: XVIII
19: XIX
20: XX
21: XXI
22: XXII
23: XXIII
24: XXIV
25: XXV
26: XXVI
27: XXVII
28: XXVIII
29: XXIX
30: XXX
31: XXXI
32: XXXII
33: XXXIII
34: XXXIV
35: XXXV
36: XXXVI
37: XXXVII
38: XXXVIII
39: XXXIX
40: XL
41: XLI
42: XLII
43: XLIII
44: XLIV
45: XLV
46: XLVI
47: XLVII
48: XLVIII
49: XLIX
50: L
51: LI
52: LII
53: LIII
54: LIV
55: LV
56: LVI
57: LVII
58: LVIII
59: LIX
60: LX
61: LXI
62: LXII
63: LXIII
64: LXIV
65: LXV
66: LXVI
67: LXVII
68: LXVIII
69: LXIX
70: LXX
71: LXXI
72: LXXII
73: LXXIII
74: LXXIV
75: LXXV
76: LXXVI
77: LXXVII
78: LXXVIII
79: LXXIX
80: LXXX
81: LXXXI
82: LXXXII
83: LXXXIII
84: LXXXIV
85: LXXXV
86: LXXXVI
87: LXXXVII
88: LXXXVIII
89: LXXXIX
90: XC
91: XCI
92: XCII
93: XCIII
94: XCIV
95: XCV
96: XCVI
97: XCVII
98: XCVIII
99: XCIX
100: C
$

ちなみにJavaScriptの場合。

コード(TextWrangler)


Array.prototype.shuffle = function(){
  var some_array = this;
  var array = some_array.slice();
  var shuffled_array = [];
  while(array.length > 0){
    tmp = [];
    r = Math.floor(Math.random() * array.length);
    for(var i = 0; i < array.length; i++){
      if(i == r){
        shuffled_array.push(array[i]);
      } else {
        tmp.push(array[i]);
      }
    }
    array = tmp;
  }
  return shuffled_array;
};
var facs = {}
Number.prototype.factorial = function(){
  var n = this;
  if(facs[n]) return facs[n];
  if(n <= 1){
    facs[n] = 1;
    return 1;
  } else {
    facs[n] = n * (n-1).factorial();
    return facs[n];
  }
};
function repeat_str(str, n){
  var result = "";
  for(var i = 0; i < n; i++){
    result += str;
  }
  return result;
}
Number.prototype.to_roman = function(){
  n = this;
  t = Math.floor(n / 1000);
  n = n % 1000;
  h = Math.floor(n / 100);
  n = n % 100;
  tens = Math.floor( n / 10);
  o = n % 10;
  roman = repeat_str('M', t);
  if(h == 9){
    roman += 'CM';
  } else if(h == 4){
    roman += 'CD';
  } else {
    roman += repeat_str('D', Math.floor(h / 5));
    roman += repeat_str('C', h % 5);
  }
  if(tens == 9){
    roman += 'XC';
  } else if (tens == 4){
    roman += 'XL';
  } else {
    roman += repeat_str('L', Math.floor(tens / 5));
    roman += repeat_str('X', tens % 5);
  }
  if(o == 9){
    roman += 'IX';
  } else if(o == 4){
    roman += 'IV';
  } else {
    roman += repeat_str('V', Math.floor( o / 5));
    roman += repeat_str('I', o % 5);
  }
  return roman;
};
var a1 = [0,1,2,3,4,5,6,7,8,9];
var a2 = ['a','b','c','d','e','f','g','h','i','j']
var arrays = [a1, a2];
var result = "";
var shuffled_a;
for(var i = 0; i < arrays.length; i++){
  shuffled_a = arrays[i].shuffle();
  result += 
    "シャッフル前: " + arrays[i] + "\n" +
    "シャッフル後: " + shuffled_a + "\n";
}

for(var i = 0; i <= 100; i++){
  result += i + "! = " + i.factorial() + "\n";
}
for(var i = 1; i <= 1000; i++){
  result += i + ": " + i.to_roman() + "\n";
}
$('#pre0').text(result);




pythonの場合。

sample.py

コード(TextWrangler)

#!/usr/bin/env python3.3
# -*- coding: utf-8 -*-

import random
class MyList(list):
    def shuffle(self):
        array = self[:]
        shuffled_array = []
        while len(array) > 0:
            r = random.randint(0, len(array) - 1)
            tmp = []
            i = 0
            for x in array:
              if r == i:
                  shuffled_array.append(x)
              else:
                  tmp.append(x)
              i += 1
            array = tmp
        return shuffled_array

class MyInt(int):
    facs = {}
    def factorial(self):
        if self in MyInt.facs: return MyInt.facs[self]
        if self <= 1:
            MyInt.facs[self] = 1
            return 1
        MyInt.facs[self] = self * MyInt(self - 1).factorial()
        return MyInt.facs[self]

    def to_roman(self):
      t = self // 1000
      self %= 1000
      h = self // 100
      self %= 100
      tens = self // 10
      o = self % 10
    
      roman = 'M' * t
    
      if h == 9:
        roman += 'CM'
      elif h == 4:
        roman += 'CD'
      else:
        roman += 'D' * (h // 5)
        roman += 'C' * (h % 5)
    
      if tens == 9:
        roman += 'XC'
      elif tens == 4:
        roman += 'XL'
      else:
        roman += 'L' * (tens // 5)
        roman += 'X' * (tens % 5)
      
      if o == 9:
        roman += 'IX'
      elif o == 4:
        roman += 'IV'
      else:
        roman += 'V' * (o // 5)
        roman += 'I' * (o % 5)
      
      return roman
a1 = MyList([0,1,2,3,4,5,6,7,8,9])
a2 = MyList(['a','b','c','d','e','f','g','h','i','j'])

for a in [a1, a2]:
  shuffled_a = a.shuffle()
  print("シャッフル前: {0}\nシャッフル後: {1}".format(a, shuffled_a))

a = MyInt(10)
b = MyInt(20)
for x in [a+b, a-b, a*b, a/b, a//b, a%b]:
    print(x)
import time
start1 = time.time()
for x in range(100):
    x = MyInt(x)
    print("{0}! = {1}".format(x, x.factorial()))

result = ""
for number in range(1,1001):
  number = MyInt(number)
  result += "{0}: {1}\n".format(number, number.to_roman())

print(result, end="")

入出力結果(Terminal)

$ ./sample.py
シャッフル前: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
シャッフル後: [7, 3, 9, 2, 6, 5, 1, 0, 8, 4]
シャッフル前: ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j']
シャッフル後: ['b', 'i', 'f', 'j', 'c', 'a', 'g', 'h', 'e', 'd']
30
-10
200
0.5
0
10
0! = 1
1! = 1
2! = 2
3! = 6
4! = 24
5! = 120
6! = 720
7! = 5040
8! = 40320
9! = 362880
10! = 3628800
11! = 39916800
12! = 479001600
13! = 6227020800
14! = 87178291200
15! = 1307674368000
16! = 20922789888000
17! = 355687428096000
18! = 6402373705728000
19! = 121645100408832000
20! = 2432902008176640000
21! = 51090942171709440000
22! = 1124000727777607680000
23! = 25852016738884976640000
24! = 620448401733239439360000
25! = 15511210043330985984000000
26! = 403291461126605635584000000
27! = 10888869450418352160768000000
28! = 304888344611713860501504000000
29! = 8841761993739701954543616000000
30! = 265252859812191058636308480000000
31! = 8222838654177922817725562880000000
32! = 263130836933693530167218012160000000
33! = 8683317618811886495518194401280000000
34! = 295232799039604140847618609643520000000
35! = 10333147966386144929666651337523200000000
36! = 371993326789901217467999448150835200000000
37! = 13763753091226345046315979581580902400000000
38! = 523022617466601111760007224100074291200000000
39! = 20397882081197443358640281739902897356800000000
40! = 815915283247897734345611269596115894272000000000
41! = 33452526613163807108170062053440751665152000000000
42! = 1405006117752879898543142606244511569936384000000000
43! = 60415263063373835637355132068513997507264512000000000
44! = 2658271574788448768043625811014615890319638528000000000
45! = 119622220865480194561963161495657715064383733760000000000
46! = 5502622159812088949850305428800254892961651752960000000000
47! = 258623241511168180642964355153611979969197632389120000000000
48! = 12413915592536072670862289047373375038521486354677760000000000
49! = 608281864034267560872252163321295376887552831379210240000000000
50! = 30414093201713378043612608166064768844377641568960512000000000000
51! = 1551118753287382280224243016469303211063259720016986112000000000000
52! = 80658175170943878571660636856403766975289505440883277824000000000000
53! = 4274883284060025564298013753389399649690343788366813724672000000000000
54! = 230843697339241380472092742683027581083278564571807941132288000000000000
55! = 12696403353658275925965100847566516959580321051449436762275840000000000000
56! = 710998587804863451854045647463724949736497978881168458687447040000000000000
57! = 40526919504877216755680601905432322134980384796226602145184481280000000000000
58! = 2350561331282878571829474910515074683828862318181142924420699914240000000000000
59! = 138683118545689835737939019720389406345902876772687432540821294940160000000000000
60! = 8320987112741390144276341183223364380754172606361245952449277696409600000000000000
61! = 507580213877224798800856812176625227226004528988036003099405939480985600000000000000
62! = 31469973260387937525653122354950764088012280797258232192163168247821107200000000000000
63! = 1982608315404440064116146708361898137544773690227268628106279599612729753600000000000000
64! = 126886932185884164103433389335161480802865516174545192198801894375214704230400000000000000
65! = 8247650592082470666723170306785496252186258551345437492922123134388955774976000000000000000
66! = 544344939077443064003729240247842752644293064388798874532860126869671081148416000000000000000
67! = 36471110918188685288249859096605464427167635314049524593701628500267962436943872000000000000000
68! = 2480035542436830599600990418569171581047399201355367672371710738018221445712183296000000000000000
69! = 171122452428141311372468338881272839092270544893520369393648040923257279754140647424000000000000000
70! = 11978571669969891796072783721689098736458938142546425857555362864628009582789845319680000000000000000
71! = 850478588567862317521167644239926010288584608120796235886430763388588680378079017697280000000000000000
72! = 61234458376886086861524070385274672740778091784697328983823014963978384987221689274204160000000000000000
73! = 4470115461512684340891257138125051110076800700282905015819080092370422104067183317016903680000000000000000
74! = 330788544151938641225953028221253782145683251820934971170611926835411235700971565459250872320000000000000000
75! = 24809140811395398091946477116594033660926243886570122837795894512655842677572867409443815424000000000000000000
76! = 1885494701666050254987932260861146558230394535379329335672487982961844043495537923117729972224000000000000000000
77! = 145183092028285869634070784086308284983740379224208358846781574688061991349156420080065207861248000000000000000000
78! = 11324281178206297831457521158732046228731749579488251990048962825668835325234200766245086213177344000000000000000000
79! = 894618213078297528685144171539831652069808216779571907213868063227837990693501860533361810841010176000000000000000000
80! = 71569457046263802294811533723186532165584657342365752577109445058227039255480148842668944867280814080000000000000000000
81! = 5797126020747367985879734231578109105412357244731625958745865049716390179693892056256184534249745940480000000000000000000
82! = 475364333701284174842138206989404946643813294067993328617160934076743994734899148613007131808479167119360000000000000000000
83! = 39455239697206586511897471180120610571436503407643446275224357528369751562996629334879591940103770870906880000000000000000000
84! = 3314240134565353266999387579130131288000666286242049487118846032383059131291716864129885722968716753156177920000000000000000000
85! = 281710411438055027694947944226061159480056634330574206405101912752560026159795933451040286452340924018275123200000000000000000000
86! = 24227095383672732381765523203441259715284870552429381750838764496720162249742450276789464634901319465571660595200000000000000000000
87! = 2107757298379527717213600518699389595229783738061356212322972511214654115727593174080683423236414793504734471782400000000000000000000
88! = 185482642257398439114796845645546284380220968949399346684421580986889562184028199319100141244804501828416633516851200000000000000000000
89! = 16507955160908461081216919262453619309839666236496541854913520707833171034378509739399912570787600662729080382999756800000000000000000000
90! = 1485715964481761497309522733620825737885569961284688766942216863704985393094065876545992131370884059645617234469978112000000000000000000000
91! = 135200152767840296255166568759495142147586866476906677791741734597153670771559994765685283954750449427751168336768008192000000000000000000000
92! = 12438414054641307255475324325873553077577991715875414356840239582938137710983519518443046123837041347353107486982656753664000000000000000000000
93! = 1156772507081641574759205162306240436214753229576413535186142281213246807121467315215203289516844845303838996289387078090752000000000000000000000
94! = 108736615665674308027365285256786601004186803580182872307497374434045199869417927630229109214583415458560865651202385340530688000000000000000000000
95! = 10329978488239059262599702099394727095397746340117372869212250571234293987594703124871765375385424468563282236864226607350415360000000000000000000000
96! = 991677934870949689209571401541893801158183648651267795444376054838492222809091499987689476037000748982075094738965754305639874560000000000000000000000
97! = 96192759682482119853328425949563698712343813919172976158104477319333745612481875498805879175589072651261284189679678167647067832320000000000000000000000
98! = 9426890448883247745626185743057242473809693764078951663494238777294707070023223798882976159207729119823605850588608460429412647567360000000000000000000000
99! = 933262154439441526816992388562667004907159682643816214685929638952175999932299156089414639761565182862536979208272237582511852109168640000000000000000000000
1: I
2: II
3: III
4: IV
5: V
6: VI
7: VII
8: VIII
9: IX
10: X
11: XI
12: XII
13: XIII
14: XIV
15: XV
16: XVI
17: XVII
18: XVIII
19: XIX
20: XX
21: XXI
22: XXII
23: XXIII
24: XXIV
25: XXV
26: XXVI
27: XXVII
28: XXVIII
29: XXIX
30: XXX
31: XXXI
32: XXXII
33: XXXIII
34: XXXIV
35: XXXV
36: XXXVI
37: XXXVII
38: XXXVIII
39: XXXIX
40: XL
41: XLI
42: XLII
43: XLIII
44: XLIV
45: XLV
46: XLVI
47: XLVII
48: XLVIII
49: XLIX
50: L
51: LI
52: LII
53: LIII
54: LIV
55: LV
56: LVI
57: LVII
58: LVIII
59: LIX
60: LX
61: LXI
62: LXII
63: LXIII
64: LXIV
65: LXV
66: LXVI
67: LXVII
68: LXVIII
69: LXIX
70: LXX
71: LXXI
72: LXXII
73: LXXIII
74: LXXIV
75: LXXV
76: LXXVI
77: LXXVII
78: LXXVIII
79: LXXIX
80: LXXX
81: LXXXI
82: LXXXII
83: LXXXIII
84: LXXXIV
85: LXXXV
86: LXXXVI
87: LXXXVII
88: LXXXVIII
89: LXXXIX
90: XC
91: XCI
92: XCII
93: XCIII
94: XCIV
95: XCV
96: XCVI
97: XCVII
98: XCVIII
99: XCIX
100: C
101: CI
102: CII
103: CIII
104: CIV
105: CV
106: CVI
107: CVII
108: CVIII
109: CIX
110: CX
111: CXI
112: CXII
113: CXIII
114: CXIV
115: CXV
116: CXVI
117: CXVII
118: CXVIII
119: CXIX
120: CXX
121: CXXI
122: CXXII
123: CXXIII
124: CXXIV
125: CXXV
126: CXXVI
127: CXXVII
128: CXXVIII
129: CXXIX
130: CXXX
131: CXXXI
132: CXXXII
133: CXXXIII
134: CXXXIV
135: CXXXV
136: CXXXVI
137: CXXXVII
138: CXXXVIII
139: CXXXIX
140: CXL
141: CXLI
142: CXLII
143: CXLIII
144: CXLIV
145: CXLV
146: CXLVI
147: CXLVII
148: CXLVIII
149: CXLIX
150: CL
151: CLI
152: CLII
153: CLIII
154: CLIV
155: CLV
156: CLVI
157: CLVII
158: CLVIII
159: CLIX
160: CLX
161: CLXI
162: CLXII
163: CLXIII
164: CLXIV
165: CLXV
166: CLXVI
167: CLXVII
168: CLXVIII
169: CLXIX
170: CLXX
171: CLXXI
172: CLXXII
173: CLXXIII
174: CLXXIV
175: CLXXV
176: CLXXVI
177: CLXXVII
178: CLXXVIII
179: CLXXIX
180: CLXXX
181: CLXXXI
182: CLXXXII
183: CLXXXIII
184: CLXXXIV
185: CLXXXV
186: CLXXXVI
187: CLXXXVII
188: CLXXXVIII
189: CLXXXIX
190: CXC
191: CXCI
192: CXCII
193: CXCIII
194: CXCIV
195: CXCV
196: CXCVI
197: CXCVII
198: CXCVIII
199: CXCIX
200: CC
201: CCI
202: CCII
203: CCIII
204: CCIV
205: CCV
206: CCVI
207: CCVII
208: CCVIII
209: CCIX
210: CCX
211: CCXI
212: CCXII
213: CCXIII
214: CCXIV
215: CCXV
216: CCXVI
217: CCXVII
218: CCXVIII
219: CCXIX
220: CCXX
221: CCXXI
222: CCXXII
223: CCXXIII
224: CCXXIV
225: CCXXV
226: CCXXVI
227: CCXXVII
228: CCXXVIII
229: CCXXIX
230: CCXXX
231: CCXXXI
232: CCXXXII
233: CCXXXIII
234: CCXXXIV
235: CCXXXV
236: CCXXXVI
237: CCXXXVII
238: CCXXXVIII
239: CCXXXIX
240: CCXL
241: CCXLI
242: CCXLII
243: CCXLIII
244: CCXLIV
245: CCXLV
246: CCXLVI
247: CCXLVII
248: CCXLVIII
249: CCXLIX
250: CCL
251: CCLI
252: CCLII
253: CCLIII
254: CCLIV
255: CCLV
256: CCLVI
257: CCLVII
258: CCLVIII
259: CCLIX
260: CCLX
261: CCLXI
262: CCLXII
263: CCLXIII
264: CCLXIV
265: CCLXV
266: CCLXVI
267: CCLXVII
268: CCLXVIII
269: CCLXIX
270: CCLXX
271: CCLXXI
272: CCLXXII
273: CCLXXIII
274: CCLXXIV
275: CCLXXV
276: CCLXXVI
277: CCLXXVII
278: CCLXXVIII
279: CCLXXIX
280: CCLXXX
281: CCLXXXI
282: CCLXXXII
283: CCLXXXIII
284: CCLXXXIV
285: CCLXXXV
286: CCLXXXVI
287: CCLXXXVII
288: CCLXXXVIII
289: CCLXXXIX
290: CCXC
291: CCXCI
292: CCXCII
293: CCXCIII
294: CCXCIV
295: CCXCV
296: CCXCVI
297: CCXCVII
298: CCXCVIII
299: CCXCIX
300: CCC
301: CCCI
302: CCCII
303: CCCIII
304: CCCIV
305: CCCV
306: CCCVI
307: CCCVII
308: CCCVIII
309: CCCIX
310: CCCX
311: CCCXI
312: CCCXII
313: CCCXIII
314: CCCXIV
315: CCCXV
316: CCCXVI
317: CCCXVII
318: CCCXVIII
319: CCCXIX
320: CCCXX
321: CCCXXI
322: CCCXXII
323: CCCXXIII
324: CCCXXIV
325: CCCXXV
326: CCCXXVI
327: CCCXXVII
328: CCCXXVIII
329: CCCXXIX
330: CCCXXX
331: CCCXXXI
332: CCCXXXII
333: CCCXXXIII
334: CCCXXXIV
335: CCCXXXV
336: CCCXXXVI
337: CCCXXXVII
338: CCCXXXVIII
339: CCCXXXIX
340: CCCXL
341: CCCXLI
342: CCCXLII
343: CCCXLIII
344: CCCXLIV
345: CCCXLV
346: CCCXLVI
347: CCCXLVII
348: CCCXLVIII
349: CCCXLIX
350: CCCL
351: CCCLI
352: CCCLII
353: CCCLIII
354: CCCLIV
355: CCCLV
356: CCCLVI
357: CCCLVII
358: CCCLVIII
359: CCCLIX
360: CCCLX
361: CCCLXI
362: CCCLXII
363: CCCLXIII
364: CCCLXIV
365: CCCLXV
366: CCCLXVI
367: CCCLXVII
368: CCCLXVIII
369: CCCLXIX
370: CCCLXX
371: CCCLXXI
372: CCCLXXII
373: CCCLXXIII
374: CCCLXXIV
375: CCCLXXV
376: CCCLXXVI
377: CCCLXXVII
378: CCCLXXVIII
379: CCCLXXIX
380: CCCLXXX
381: CCCLXXXI
382: CCCLXXXII
383: CCCLXXXIII
384: CCCLXXXIV
385: CCCLXXXV
386: CCCLXXXVI
387: CCCLXXXVII
388: CCCLXXXVIII
389: CCCLXXXIX
390: CCCXC
391: CCCXCI
392: CCCXCII
393: CCCXCIII
394: CCCXCIV
395: CCCXCV
396: CCCXCVI
397: CCCXCVII
398: CCCXCVIII
399: CCCXCIX
400: CD
401: CDI
402: CDII
403: CDIII
404: CDIV
405: CDV
406: CDVI
407: CDVII
408: CDVIII
409: CDIX
410: CDX
411: CDXI
412: CDXII
413: CDXIII
414: CDXIV
415: CDXV
416: CDXVI
417: CDXVII
418: CDXVIII
419: CDXIX
420: CDXX
421: CDXXI
422: CDXXII
423: CDXXIII
424: CDXXIV
425: CDXXV
426: CDXXVI
427: CDXXVII
428: CDXXVIII
429: CDXXIX
430: CDXXX
431: CDXXXI
432: CDXXXII
433: CDXXXIII
434: CDXXXIV
435: CDXXXV
436: CDXXXVI
437: CDXXXVII
438: CDXXXVIII
439: CDXXXIX
440: CDXL
441: CDXLI
442: CDXLII
443: CDXLIII
444: CDXLIV
445: CDXLV
446: CDXLVI
447: CDXLVII
448: CDXLVIII
449: CDXLIX
450: CDL
451: CDLI
452: CDLII
453: CDLIII
454: CDLIV
455: CDLV
456: CDLVI
457: CDLVII
458: CDLVIII
459: CDLIX
460: CDLX
461: CDLXI
462: CDLXII
463: CDLXIII
464: CDLXIV
465: CDLXV
466: CDLXVI
467: CDLXVII
468: CDLXVIII
469: CDLXIX
470: CDLXX
471: CDLXXI
472: CDLXXII
473: CDLXXIII
474: CDLXXIV
475: CDLXXV
476: CDLXXVI
477: CDLXXVII
478: CDLXXVIII
479: CDLXXIX
480: CDLXXX
481: CDLXXXI
482: CDLXXXII
483: CDLXXXIII
484: CDLXXXIV
485: CDLXXXV
486: CDLXXXVI
487: CDLXXXVII
488: CDLXXXVIII
489: CDLXXXIX
490: CDXC
491: CDXCI
492: CDXCII
493: CDXCIII
494: CDXCIV
495: CDXCV
496: CDXCVI
497: CDXCVII
498: CDXCVIII
499: CDXCIX
500: D
501: DI
502: DII
503: DIII
504: DIV
505: DV
506: DVI
507: DVII
508: DVIII
509: DIX
510: DX
511: DXI
512: DXII
513: DXIII
514: DXIV
515: DXV
516: DXVI
517: DXVII
518: DXVIII
519: DXIX
520: DXX
521: DXXI
522: DXXII
523: DXXIII
524: DXXIV
525: DXXV
526: DXXVI
527: DXXVII
528: DXXVIII
529: DXXIX
530: DXXX
531: DXXXI
532: DXXXII
533: DXXXIII
534: DXXXIV
535: DXXXV
536: DXXXVI
537: DXXXVII
538: DXXXVIII
539: DXXXIX
540: DXL
541: DXLI
542: DXLII
543: DXLIII
544: DXLIV
545: DXLV
546: DXLVI
547: DXLVII
548: DXLVIII
549: DXLIX
550: DL
551: DLI
552: DLII
553: DLIII
554: DLIV
555: DLV
556: DLVI
557: DLVII
558: DLVIII
559: DLIX
560: DLX
561: DLXI
562: DLXII
563: DLXIII
564: DLXIV
565: DLXV
566: DLXVI
567: DLXVII
568: DLXVIII
569: DLXIX
570: DLXX
571: DLXXI
572: DLXXII
573: DLXXIII
574: DLXXIV
575: DLXXV
576: DLXXVI
577: DLXXVII
578: DLXXVIII
579: DLXXIX
580: DLXXX
581: DLXXXI
582: DLXXXII
583: DLXXXIII
584: DLXXXIV
585: DLXXXV
586: DLXXXVI
587: DLXXXVII
588: DLXXXVIII
589: DLXXXIX
590: DXC
591: DXCI
592: DXCII
593: DXCIII
594: DXCIV
595: DXCV
596: DXCVI
597: DXCVII
598: DXCVIII
599: DXCIX
600: DC
601: DCI
602: DCII
603: DCIII
604: DCIV
605: DCV
606: DCVI
607: DCVII
608: DCVIII
609: DCIX
610: DCX
611: DCXI
612: DCXII
613: DCXIII
614: DCXIV
615: DCXV
616: DCXVI
617: DCXVII
618: DCXVIII
619: DCXIX
620: DCXX
621: DCXXI
622: DCXXII
623: DCXXIII
624: DCXXIV
625: DCXXV
626: DCXXVI
627: DCXXVII
628: DCXXVIII
629: DCXXIX
630: DCXXX
631: DCXXXI
632: DCXXXII
633: DCXXXIII
634: DCXXXIV
635: DCXXXV
636: DCXXXVI
637: DCXXXVII
638: DCXXXVIII
639: DCXXXIX
640: DCXL
641: DCXLI
642: DCXLII
643: DCXLIII
644: DCXLIV
645: DCXLV
646: DCXLVI
647: DCXLVII
648: DCXLVIII
649: DCXLIX
650: DCL
651: DCLI
652: DCLII
653: DCLIII
654: DCLIV
655: DCLV
656: DCLVI
657: DCLVII
658: DCLVIII
659: DCLIX
660: DCLX
661: DCLXI
662: DCLXII
663: DCLXIII
664: DCLXIV
665: DCLXV
666: DCLXVI
667: DCLXVII
668: DCLXVIII
669: DCLXIX
670: DCLXX
671: DCLXXI
672: DCLXXII
673: DCLXXIII
674: DCLXXIV
675: DCLXXV
676: DCLXXVI
677: DCLXXVII
678: DCLXXVIII
679: DCLXXIX
680: DCLXXX
681: DCLXXXI
682: DCLXXXII
683: DCLXXXIII
684: DCLXXXIV
685: DCLXXXV
686: DCLXXXVI
687: DCLXXXVII
688: DCLXXXVIII
689: DCLXXXIX
690: DCXC
691: DCXCI
692: DCXCII
693: DCXCIII
694: DCXCIV
695: DCXCV
696: DCXCVI
697: DCXCVII
698: DCXCVIII
699: DCXCIX
700: DCC
701: DCCI
702: DCCII
703: DCCIII
704: DCCIV
705: DCCV
706: DCCVI
707: DCCVII
708: DCCVIII
709: DCCIX
710: DCCX
711: DCCXI
712: DCCXII
713: DCCXIII
714: DCCXIV
715: DCCXV
716: DCCXVI
717: DCCXVII
718: DCCXVIII
719: DCCXIX
720: DCCXX
721: DCCXXI
722: DCCXXII
723: DCCXXIII
724: DCCXXIV
725: DCCXXV
726: DCCXXVI
727: DCCXXVII
728: DCCXXVIII
729: DCCXXIX
730: DCCXXX
731: DCCXXXI
732: DCCXXXII
733: DCCXXXIII
734: DCCXXXIV
735: DCCXXXV
736: DCCXXXVI
737: DCCXXXVII
738: DCCXXXVIII
739: DCCXXXIX
740: DCCXL
741: DCCXLI
742: DCCXLII
743: DCCXLIII
744: DCCXLIV
745: DCCXLV
746: DCCXLVI
747: DCCXLVII
748: DCCXLVIII
749: DCCXLIX
750: DCCL
751: DCCLI
752: DCCLII
753: DCCLIII
754: DCCLIV
755: DCCLV
756: DCCLVI
757: DCCLVII
758: DCCLVIII
759: DCCLIX
760: DCCLX
761: DCCLXI
762: DCCLXII
763: DCCLXIII
764: DCCLXIV
765: DCCLXV
766: DCCLXVI
767: DCCLXVII
768: DCCLXVIII
769: DCCLXIX
770: DCCLXX
771: DCCLXXI
772: DCCLXXII
773: DCCLXXIII
774: DCCLXXIV
775: DCCLXXV
776: DCCLXXVI
777: DCCLXXVII
778: DCCLXXVIII
779: DCCLXXIX
780: DCCLXXX
781: DCCLXXXI
782: DCCLXXXII
783: DCCLXXXIII
784: DCCLXXXIV
785: DCCLXXXV
786: DCCLXXXVI
787: DCCLXXXVII
788: DCCLXXXVIII
789: DCCLXXXIX
790: DCCXC
791: DCCXCI
792: DCCXCII
793: DCCXCIII
794: DCCXCIV
795: DCCXCV
796: DCCXCVI
797: DCCXCVII
798: DCCXCVIII
799: DCCXCIX
800: DCCC
801: DCCCI
802: DCCCII
803: DCCCIII
804: DCCCIV
805: DCCCV
806: DCCCVI
807: DCCCVII
808: DCCCVIII
809: DCCCIX
810: DCCCX
811: DCCCXI
812: DCCCXII
813: DCCCXIII
814: DCCCXIV
815: DCCCXV
816: DCCCXVI
817: DCCCXVII
818: DCCCXVIII
819: DCCCXIX
820: DCCCXX
821: DCCCXXI
822: DCCCXXII
823: DCCCXXIII
824: DCCCXXIV
825: DCCCXXV
826: DCCCXXVI
827: DCCCXXVII
828: DCCCXXVIII
829: DCCCXXIX
830: DCCCXXX
831: DCCCXXXI
832: DCCCXXXII
833: DCCCXXXIII
834: DCCCXXXIV
835: DCCCXXXV
836: DCCCXXXVI
837: DCCCXXXVII
838: DCCCXXXVIII
839: DCCCXXXIX
840: DCCCXL
841: DCCCXLI
842: DCCCXLII
843: DCCCXLIII
844: DCCCXLIV
845: DCCCXLV
846: DCCCXLVI
847: DCCCXLVII
848: DCCCXLVIII
849: DCCCXLIX
850: DCCCL
851: DCCCLI
852: DCCCLII
853: DCCCLIII
854: DCCCLIV
855: DCCCLV
856: DCCCLVI
857: DCCCLVII
858: DCCCLVIII
859: DCCCLIX
860: DCCCLX
861: DCCCLXI
862: DCCCLXII
863: DCCCLXIII
864: DCCCLXIV
865: DCCCLXV
866: DCCCLXVI
867: DCCCLXVII
868: DCCCLXVIII
869: DCCCLXIX
870: DCCCLXX
871: DCCCLXXI
872: DCCCLXXII
873: DCCCLXXIII
874: DCCCLXXIV
875: DCCCLXXV
876: DCCCLXXVI
877: DCCCLXXVII
878: DCCCLXXVIII
879: DCCCLXXIX
880: DCCCLXXX
881: DCCCLXXXI
882: DCCCLXXXII
883: DCCCLXXXIII
884: DCCCLXXXIV
885: DCCCLXXXV
886: DCCCLXXXVI
887: DCCCLXXXVII
888: DCCCLXXXVIII
889: DCCCLXXXIX
890: DCCCXC
891: DCCCXCI
892: DCCCXCII
893: DCCCXCIII
894: DCCCXCIV
895: DCCCXCV
896: DCCCXCVI
897: DCCCXCVII
898: DCCCXCVIII
899: DCCCXCIX
900: CM
901: CMI
902: CMII
903: CMIII
904: CMIV
905: CMV
906: CMVI
907: CMVII
908: CMVIII
909: CMIX
910: CMX
911: CMXI
912: CMXII
913: CMXIII
914: CMXIV
915: CMXV
916: CMXVI
917: CMXVII
918: CMXVIII
919: CMXIX
920: CMXX
921: CMXXI
922: CMXXII
923: CMXXIII
924: CMXXIV
925: CMXXV
926: CMXXVI
927: CMXXVII
928: CMXXVIII
929: CMXXIX
930: CMXXX
931: CMXXXI
932: CMXXXII
933: CMXXXIII
934: CMXXXIV
935: CMXXXV
936: CMXXXVI
937: CMXXXVII
938: CMXXXVIII
939: CMXXXIX
940: CMXL
941: CMXLI
942: CMXLII
943: CMXLIII
944: CMXLIV
945: CMXLV
946: CMXLVI
947: CMXLVII
948: CMXLVIII
949: CMXLIX
950: CML
951: CMLI
952: CMLII
953: CMLIII
954: CMLIV
955: CMLV
956: CMLVI
957: CMLVII
958: CMLVIII
959: CMLIX
960: CMLX
961: CMLXI
962: CMLXII
963: CMLXIII
964: CMLXIV
965: CMLXV
966: CMLXVI
967: CMLXVII
968: CMLXVIII
969: CMLXIX
970: CMLXX
971: CMLXXI
972: CMLXXII
973: CMLXXIII
974: CMLXXIV
975: CMLXXV
976: CMLXXVI
977: CMLXXVII
978: CMLXXVIII
979: CMLXXIX
980: CMLXXX
981: CMLXXXI
982: CMLXXXII
983: CMLXXXIII
984: CMLXXXIV
985: CMLXXXV
986: CMLXXXVI
987: CMLXXXVII
988: CMLXXXVIII
989: CMLXXXIX
990: CMXC
991: CMXCI
992: CMXCII
993: CMXCIII
994: CMXCIV
995: CMXCV
996: CMXCVI
997: CMXCVII
998: CMXCVIII
999: CMXCIX
1000: M
$

Pythonではクラスの継承を使ってlist、intの新しいサブクラス作成。RubyとかJavaScriptみたいに直接手を加える方法あるのかな。。

0 コメント:

コメントを投稿