mitrius: (Default)
mitrius ([personal profile] mitrius) wrote2004-10-02 12:31 pm

число

Записал для программы список всех римских цифр ("регулярное выражение").
И обратил внимание, что IVXLCDM -- это, хотя и совершенно неупотребительная, но запись числа. Впрочем, в арабских цифрах это число выглядит совершенно не сакрально :))
В отличие от зловещего MDCLXVI :)) лондонцы не дадут соврать, не говоря уже о старообрядцах и "русском Безухове"...

IVXLCDM ?

[identity profile] ex-udod99914.livejournal.com 2004-10-02 01:44 am (UTC)(link)
ну и что это такое? 4-40-100-....-1000?

[identity profile] mitrius.livejournal.com 2004-10-02 09:43 am (UTC)(link)
Как ответил [livejournal.com profile] fortunatus (см. ниже)

[identity profile] fortunatus.livejournal.com 2004-10-02 01:50 am (UTC)(link)
IVXLCDM = -1 -5 -10 -50 -100 -500 +1000 = 334

[identity profile] smilga.livejournal.com 2004-10-02 02:26 am (UTC)(link)
perl -e 'foreach $roman ("IVXLCDM", "MDCLXVI", "MMIV", "MCMLXXVIII") {
  if ($roman =~ /^M*(C?[MD]|D?C{0,4})(X?[CL]|L?X{0,4})(I?[VX]|V?I{0,4})$/) {
    print "$roman matches\n";
  } else {
    print "$roman does not match\n";
  }}'

Печатает:

IVXLCDM does not match
MDCLXVI matches
MMIV matches
MCMLXXVIII matches

Так что где-то у Вас ошибка. Я в коде отметил синим собственно регулярное выражение; если интересно, сверьте отличия.

[identity profile] smilga.livejournal.com 2004-10-02 02:44 am (UTC)(link)
Впрочем, я тоже наврал — кванторы после C и X (в отличие от I) должны быть {0,3}, а не {0,4}.

[identity profile] mitrius.livejournal.com 2004-10-02 09:45 am (UTC)(link)
Ваш регвыр описывает то, что "ныне разрешено". А записи вроде IC '99', IL '49', XD '490' вполне встречались и в античности, и в средневековье.

Так что IVXLCDM = 334 вполне можно себе вообразить.

для ясности

[identity profile] mitrius.livejournal.com 2004-10-02 09:51 am (UTC)(link)
[IVXLCDM] -- просто запись полного инвентаря римских цифр. Я не утверждал, что это должно в пригодном на практике регулярном выражении получаться правильной цифрой: а только что это можно представить как правильную цифру.

IVXLCDM

[identity profile] mura-vey.livejournal.com 2004-10-02 09:12 am (UTC)(link)
Я тоже не поняла. А в чем сакральность?

[identity profile] mitrius.livejournal.com 2004-10-02 09:49 am (UTC)(link)
В IVXLCDM = 334 сакральности нету. А в MDCLXVI = 1666 сакральность, безусловно, есть (милленаризм + 666, великий пожар в Лондоне, старообрядческая трактовка как даты воцарения антихриста с никоновскими реформами).