Rimske številke lc. Prevod rimskih, indijskih, arabskih številk (številk)

domov / Novorojenček

rimske številke- številke, ki so jih uporabljali stari Rimljani v svojem nepozicijskem številskem sistemu.

Cela števila so zapisane s ponavljanjem teh številk. Poleg tega, če je večje število pred manjšim, se te seštejejo (načelo seštevanja), če pa je manjše število pred večjim, potem se manjše odšteje od večjega (načelo seštevanja). princip odštevanja). Končno pravilo se uporablja samo za preprečitev štirikratnega ponavljanja iste števke.

Rimske številke so se pojavile okoli leta 500 pred našim štetjem med Etruščani.

Številke

Če želite v spominu popraviti črkovne oznake številk v padajočem vrstnem redu, obstaja mnemonično pravilo:

M s D arim Z iz oči v oči L imons, X vatit V sedem jaz X.

Oziroma M, D, C, L, X, V, I

Če želite pravilno zapisati velika števila z rimskimi številkami, morate najprej napisati število tisočic, nato stotic, nato desetic in nazadnje enot.

Obstaja "bližnjica" za pisanje velikih števil, kot je 1999. Ni priporočljiva, vendar se včasih uporablja za poenostavitev stvari. Razlika je v tem, da lahko za zmanjšanje števke levo od nje zapišemo katero koli števko:

  • 999. Tisoč (M), odštej 1 (I), dobimo 999 (IM) namesto CMXCIX. Posledica: 1999 - MIM namesto MCMXCIX
  • 95. Sto (C), odštejte 5 (V), dobite 95 (VC) namesto XCV
  • 1950: tisoč (M), odštejte 50 (L), dobite 950 (LM). Posledica: 1950 - MLM namesto MCML

Šele v 19. stoletju so številko »štiri« zapisali kot »IV«, pred tem pa je bila najpogosteje uporabljena številka »IIII«. Vendar pa je zapis "IV" že mogoče najti v dokumentih rokopisa Forme of Cury iz leta 1390. Številčnice ur so v večini primerov tradicionalno uporabljale "IIII" namesto "IV", predvsem iz estetskih razlogov: to črkovanje zagotavlja vizualno simetrijo s številkami "VIII" na nasprotni strani in obrnjeno "IV" je težje brati kot "IIII".

Uporaba rimskih številk

V ruščini se rimske številke uporabljajo v naslednjih primerih:

  • Številka stoletja ali tisočletja: XIX stoletje, II tisočletje pr. e.
  • Serijska številka monarha: Charles V, Catherine II.
  • Številka zvezka v knjigi z več zvezki (včasih številke delov knjige, razdelkov ali poglavij).
  • V nekaterih publikacijah - številke listov s predgovorom h knjigi, da ne popravite povezav v glavnem besedilu, ko spremenite predgovor.
  • Starinske oznake na številčnici ure.
  • drugi pomembne dogodke ali elemente seznama, na primer: Evklidov V postulat, II Svetovna vojna, XXII kongres CPSU itd.

V drugih jezikih ima lahko področje uporabe rimskih številk posebne značilnosti, na primer v zahodnih državah je številka leta včasih zapisana z rimskimi številkami.

Rimske številke in Unicode

Standard Unicode definira znake, ki predstavljajo rimske številke kot del Številske oblike(Angleščina) Številčni obrazci), v območju znakov s kodami U+2160 do U+2188. Na primer, MCMLXXXVIII je mogoče predstaviti v obliki ⅯⅭⅯⅬⅩⅩⅩⅧ. Ta obseg vključuje male in velike črke od 1 (Ⅰ ali I) do 12 (Ⅻ ali XII), vključno s kombiniranimi glifi za sestavljena števila, kot je 8 (Ⅷ ali VIII), predvsem zaradi združljivosti z vzhodnoazijskimi nabori znakov v industrijskih standardih, kot je kot JIS X 0213, kjer so ti znaki definirani. Kombinacijski glifi se uporabljajo za predstavitev števil, ki so bila prej sestavljena iz posameznih znakov (na primer Ⅻ namesto njegove predstavitve kot Ⅹ in Ⅱ). Poleg tega obstajajo glifi za arhaične oblike 1000, 5000, 10.000, veliki obratni C (Ɔ), pozno obliko 6 (ↅ, podobno grški stigmi: Ϛ), zgodnjo obliko 50 (ↆ, podobno kot puščica, usmerjena navzdol ↓⫝⊥ ), 50 000 in 100 000. Upoštevati je treba, da zadnji mali c, ↄ ni vključen v rimske številke, ampak je vključen v standard Unicode kot klavdijska velika črka Ↄ.

Rimske številke v Unicode
Koda 0 1 2 3 4 5 6 7 8 9 A B C D E F
Pomen 1 2 3 4 5 6 7 8 9 10 11 12 50 100 500 1 000
U+2160
2160

2161

2162

2163

2164

2165

2166

2167

2168

2169

216A

216B

216C

216D

216E

216F
U+2170
2170

2171

2172

2173

2174

2175

2176

2177

2178

2179

217A

217B

217C

217D

217E

217F
Pomen 1 000 5 000 10 000 - - 6 50 50 000 100 000
U+2160! U+2180
2180

2181

2182

Znaki v obsegu U+2160-217F so prisotni samo zaradi združljivosti z drugimi standardi, ki definirajo te znake. V vsakdanjem življenju se uporabljajo navadne črke latinske abecede. Prikaz takih simbolov zahteva programsko opremo, ki podpira standard Unicode, in pisavo, ki vsebuje glife, ki ustrezajo tem znakom.

Rimski sistem številčenja s črkami je bil v Evropi običajen dva tisoč let. Šele v poznem srednjem veku ga je nadomestil bolj priročen decimalni sistem številk, ki so si ga izposodili od Arabcev. Toda do danes se rimske številke uporabljajo za označevanje datumov na spomenikih, časa na urah in (v anglo-ameriški tipografski tradiciji) strani predgovorov knjig. Poleg tega je v ruščini običajno uporabljati rimske številke za označevanje zaporednih številk.

Za označevanje števil je bilo uporabljenih 7 črk latinske abecede: I = 1, V = 5, X = 10, L = 50, C = 100, D = 500, M = 1000. Vmesna števila so bila oblikovana tako, da se je več črkam dodalo desno ali levo. Najprej so bile zapisane tisočice in stotice, nato desetice in enice. Tako je bilo število 24 upodobljeno kot XXIV. Vodoravna črta nad simbolom je pomenila množenje s tisoč.

Naravna števila zapišemo s ponavljanjem teh števil. Poleg tega, če je večje število pred manjšim, se te seštejejo (načelo seštevanja), če pa je manjše število pred večjim, potem se manjše odšteje od večjega (načelo seštevanja). princip odštevanja). Zadnje pravilo velja samo za izogibanje štirikratnemu ponavljanju istega števila. Na primer, I, X, C so postavljeni pred X, C, M, da označujejo 9, 90, 900 ali pred V, L, D, da označujejo 4, 40, 400. Na primer, VI = 5+1 = 6, IV = 5 - 1 = 4 (namesto IIII). XIX = 10 + 10 - 1 = 19 (namesto XVIIII), XL = 50 - 10 =40 (namesto XXXX), XXXIII = 10 + 10 + 10 + 1 + 1 + 1 = 33 itd.

Izvajanje aritmetičnih operacij na večmestna števila Ta vnos je zelo neroden. Sistem rimskih številk se trenutno ne uporablja, z izjemo v nekaterih primerih za označevanje stoletij (XV. stoletje itd.), AD. e. (MCMLXXVII ipd.) in mesece pri označevanju datumov (npr. 1. V. 1975), vrstne številke in včasih izpeljanke majhnih redov, večje od tri: yIV, yV ipd.

rimske številke
jaz 1 XI 11 XXX 30 CD 400
II 2 XII 12 XL 40 D 500
III 3 XIII 13 L 50 DC 600
IV 4 XIV 14 LX 60 DCC 700
V 5 XV 15 LXX 70 DCCC 800
VI 6 XVI 16 LXXX 80 C.M. 900
VII 7 XVII 17 XC 90 M 1000
VIII 8 XVIII 18 C 100 MM 2000
IX 9 XIX 19 CC 200 MMM 3000
X 10 XX 20 CCC 300

Danes so v Rusiji rimske številke potrebne predvsem za zapis števila stoletja ali tisočletja. Rimske številke je priročno postaviti poleg arabskih - če napišete stoletje z rimskimi številkami in nato leto v arabščini, potem vaše oči ne bodo zaslepljene zaradi obilice enakih znakov. Rimske številke imajo določeno konotacijo arhaizma. Tradicionalno se uporabljajo tudi za označevanje serijske številke monarha (Peter I), številke zvezka publikacije v več zvezkih in včasih poglavja knjige. Rimske številke se uporabljajo tudi v številčnicah starih ur. Pomembne številke, kot je leto olimpijade ali številka znanstvenega zakona, lahko zapišemo tudi z rimskimi številkami: druga svetovna vojna, Evklidov V postulat.

V različnih državah se rimske številke uporabljajo nekoliko drugače: v ZSSR je bilo običajno označevati mesec v letu z njimi (1.XI.65). Na zahodu je številka leta pogosto zapisana z rimskimi številkami v špicah filmov ali na pročeljih stavb.

V delih Evrope, zlasti v Litvi, lahko pogosto najdete dneve v tednu, označene z rimskimi številkami (I – ponedeljek itd.). Na Nizozemskem rimske številke včasih uporabljajo za označevanje nadstropij. In v Italiji označujejo 100-metrske odseke poti, hkrati pa vsak kilometer označujejo z arabskimi številkami.

V Rusiji je pri pisanju z roko običajno poudariti rimske številke spodaj in zgoraj hkrati. Vendar pa je v drugih državah pogosto podčrtaj pomenil povečanje velikih in malih črk števila za 1000-krat (ali 10.000-krat z dvojnim podčrtajem).

Obstaja pogosta napačna predstava, da so sodobne zahodne velikosti oblačil povezane z rimskimi številkami. Pravzaprav so oznake XXL, S, M, L itd. nimajo nobene povezave z njimi: to so okrajšave angleških besed eXtra (zelo), Small (majhen), Large (velik).

Ura z zvončki Spasskaya Tower z rimskimi številkami na številčnici Številčni sistemi v kulturi indo-arabskivzhodnoazijskiAbecednodrugo Pozicijski Mešani sistemi Nepozicijski
arabsko
tamilščina
birmanski
kmerski
laoški
mongolski
tajska
kitajski
japonska
Suzhou
korejščina
vietnamski
Palice za štetje
Abjadia
armenski
Aryabhata
cirilica
grški
etiopski
judovsko
Akshara-sankhya
babilonski
egipčansko
etruščanski
Roman
Donava
Podstrešje
Kipu
majevski
Egejsko morje
Simboli KPPU
2, 3, 4, 5, 6, 8, 10, 12, 16, 20, 60
Negapozicijski
Simetrično
Fibonacci
Enota (unarna)

rimske številke- številke, ki so jih uporabljali stari Rimljani v svojem nepozicijskem številskem sistemu.

Naravna števila zapišemo s ponavljanjem teh števil. Poleg tega, če je večje število pred manjšim, se te seštejejo (načelo seštevanja), če pa je manjše število pred večjim, potem se manjše odšteje od večjega (načelo seštevanja). princip odštevanja). Zadnje pravilo velja samo za izogibanje štirikratnemu ponavljanju istega števila.

Rimske številke so se pojavile 500 let pred našim štetjem med Etruščani, ki so si nekatere številke morda izposodili od proto-Keltov.

rimske številke

Številčna oznaka
1 jaz
2 II
3 III
4 IV, do 19. stoletja - III
5 V
6 VI
7 VII
8 VIII (včasih - IIX)
9 IX (včasih VIII)
10 X
20 XX
30 XXX
40 XL
50 L
60 LX
70 LXX
80 LXXX
90 XC
100 C
200 CC
300 CCC
400 CD
500 D; IƆ
600 DC; IƆC
700 DCC; IƆCC
800 DCCC; IƆCCC
900 CM; CCIƆ
1 000 M; ↀ; CIƆ
2 000 MM; CIƆCIƆ
3 000 MMM; CIƆCIƆCIƆ
3 999 MMMCMXCIX
4 000 MV; ↀↁ; CIƆIƆƆ
5 000 V; ↁ; IƆƆ
6 000 VM; ↁↀ; IƆƆCIƆ
7 000 VMM; ↁↀↀ; IƆƆCIƆCIƆ
8 000 VMMM; ↁↀↀↀ; IƆƆCIƆCIƆCIƆ
9 000 IX; ↀↂ; CIƆCCIƆƆ
10 000 X; ↂ; CCIƆƆ
20 000 XX; ↂↂ; CCIƆƆCCIƆƆ
30 000 XXX; ↂↂↂ; CCIƆƆCCIƆƆCCIƆƆ
40 000 XL; ↂↇ; CCIƆƆIƆƆƆ
50 000 L; ↇ; IƆƆƆ
60 000 LX; ↇↂ; IƆƆƆCCIƆƆ
70 000 LXX; ↇↂↂ; IƆƆƆCCIƆƆCCIƆƆ
80 000 LXXX; ↇↂↂↂ; IƆƆƆCCIƆƆCCIƆƆCCIƆƆ
90 000 XC; ↂↈ; CCIƆƆCCCIƆƆƆ
100 000 C; ↈ; CCCIƆƆƆ
200 000 CC; ↈↈ; CCCIƆƆƆCCCIƆƆƆ
300 000 CCC; ↈↈↈ; CCCIƆƆƆCCCIƆƆƆCCCIƆƆƆ
400 000 CD; CCCIƆƆƆIƆƆƆƆ
500 000 D; IƆƆƆƆ
600 000 DC; IƆƆƆƆCCCIƆƆƆ
700 000 DCC; IƆƆƆƆCCCIƆƆƆCCCIƆƆƆ
800 000 DCCC; IƆƆƆƆCCCIƆƆƆCCCIƆƆƆCCCIƆƆƆ
900 000 CM; CI; CCCIƆƆƆCCCIƆƆƆƆ
1 000 000 M; JAZ; CCCCIƆƆƆƆ

ne več kot trikrat zapored ne več kot 3999 vir ni naveden 2369 dni

XXXII- še posebej je običajno, da se v ruskem rokopisnem besedilu poudarjajo rimske številke (to se ne uporablja pri stavljenju zaradi tehnične zapletenosti). Za druge avtorje bi črtica nad črto lahko pomenila povečanje vrednosti slike za 1000-krat: V = 5000.

Ura Tissot s tradicionalnim črkovanjem "IIII".

Šele v 19. stoletju so številko »štiri« zapisali kot »IV«, pred tem pa je bila najpogosteje uporabljena številka »IIII«. Vendar pa je zapis "IV" že mogoče najti v dokumentih rokopisa Forme of Cury iz leta 1390. Številčnice ur so v večini primerov tradicionalno uporabljale "IIII" namesto "IV", predvsem iz estetskih razlogov: to črkovanje zagotavlja vizualno simetrijo s številkami "VIII" na nasprotni strani in obrnjeno "IV" je težje brati kot "IIII". Obstaja tudi različica, da IV ni bilo napisano na številčnici, ker je IV prva črka imena boga Jupitra (IVPITER).

Manjšo številko lahko zapišemo levo od večje, potem jo je treba odšteti od večje. V tem primeru je mogoče odšteti samo številke, ki označujejo 1 ali potenco števila 10, in samo dve števki, ki sta v številskem nizu najbližji subtrahendu (to je subtrahend, pomnožen s 5 ali 10), se lahko uporabita kot minuend. Ponovitve manjšega števila niso dovoljene. Tako obstaja le šest možnosti z uporabo "pravila odštevanja":

  • IV = 4
  • IX = 9
  • XL=40
  • XC = 90
  • CD = 400
  • CM = 900

Na primer, število 94 bi bilo XCIV = 100 − 10 + 5 − 1 = 94 - tako imenovano »pravilo odštevanja« (pojavilo se je v pozni antiki, pred tem pa so Rimljani število 4 pisali kot IIII, število 40 pa kot kot XXXX).

Opozoriti je treba, da so druge metode "odštevanja" nesprejemljive; zato je treba številko 99 zapisati kot XCIX, ne pa kot IC. Vendar pa se danes v nekaterih primerih uporablja tudi poenostavljen zapis rimskih številk: na primer v Microsoft Excelu lahko pri pretvorbi arabskih številk v rimske s funkcijo "ROMAN()" uporabite več vrst predstavitev števil, od klasičnih do zelo poenostavljenih (število 499 lahko na primer zapišemo kot CDXCIX, LDVLIV, XDIX, VDIV ali ID). Poenostavitev je, da lahko za zmanjšanje števke levo od nje zapišemo katero koli drugo števko:

Primere takšnega zapisovanja številk (običajno let) pogosto najdemo v špicah ameriških televizijskih serij. Na primer, za leto 1998: IIMM namesto MCMXCVIII.

Aplikacija

Avtogram B. N. Jelcina 10. novembra 1988. Mesec je naveden z rimskimi številkami. Rimske številke, ki označujejo dan v tednu na izložbi trgovine v Vilni
  • Monarchova serijska številka
  • Številka korpusa v oboroženih silah
  • Krvna skupina na uniformah ruskih oboroženih sil
  • Osnova homeopatskih razredčin (Conium X3, Aconitum C200 itd.).
  • Pri matematični analizi je število izpeljanke nad tretjino včasih zapisano z rimskimi številkami.

Rimske številke so se v ZSSR pogosto uporabljale pri označevanju datuma za označevanje meseca v letu, na primer: 11/III-85 ali 9.XI.89, kar je razvidno iz številnih arhivskih dokumentov tistih časov. Podobno so s poševnico zapisali tudi datum pouka v razrednikih, npr.: 24./II. Za označevanje datumov življenja in smrti na nagrobnikih se je pogosto uporabljal poseben format, kjer je bil mesec v letu naveden tudi z rimskimi številkami, na primer: 18 6 X I I 78 ∼ 19 5 I I I 53 (\displaystyle 18(\frac ( 6)(XII))78\sim 19 (\frac (5)(III))53) . Podobna oblika je bila uporabljena v zdravniških spričevalih v 70. in 80. letih prejšnjega stoletja.

S prehodom na računalniško obdelavo informacij so formati datumov, ki temeljijo na rimskih številkah, praktično izginili iz uporabe.

V drugih jezikih ima lahko področje uporabe rimskih številk posebne značilnosti. V zahodnih državah je številka leta pogosto zapisana z rimskimi številkami, na primer na zatrepih zgradb in v oddajah filmskih in video izdelkov.

V sodobni Litvi se lahko rimske številke uporabljajo za označevanje dni v tednu na prometnih znakih, izložbah trgovin in poslovnih znakih.

Unicode

І · Ӏ · I · I · l · ﺍ‎‎ · ו‎‎ · Ι · ǀ · | · ɪ · 丨 Simboli s podobnim obrisom: V · V · ∨ · ⋁ · ⋎ Simboli s podobnim obrisom: X·Χ·H·ㄨ Simboli s podobnim obrisom: L·Լ Simboli s podobnim obrisom: C·С·Ϲ·င Simbol s podobnim obrisom: D Simboli s podobnim obrisom: M · Μ · M · Ϻ Simboli s podobnim obrisom: ʕ · Ҁ · Ϟ · Ϛ · Ⴚ

Številske oblike(Angleščina) Številčni obrazci) v območju znakov s kodami U+2160 do U+2188. Na primer, MCMLXXXVIII je mogoče predstaviti v obliki ⅯⅭⅯⅬⅩⅩⅩⅧ. Ta obseg vključuje male in velike črke za zapis številk od 1 (Ⅰ ali I) do 12 (Ⅻ ali XII), vključno s kombiniranimi glifi za sestavljena števila, kot je 8 (Ⅷ ali VIII), predvsem za zagotavljanje združljivosti z vzhodnoazijskimi nabori znakov v industrijskih standardih, kot je JIS X 0213, kjer so ti znaki definirani. Kombinacijski glifi se uporabljajo za predstavitev števil, ki so bila prej sestavljena iz posameznih znakov (na primer Ⅻ namesto njegove predstavitve kot Ⅹ in Ⅱ). Poleg tega obstajajo glifi za arhaične oblike 1000, 5000, 10.000, veliki obratni C (Ɔ), pozno obliko 6 (ↅ, podobno grški stigmi: Ϛ), zgodnjo obliko 50 (ↆ, podobno kot navzdol usmerjena puščica ↓⫝⊥), 50 000 in 100 000. Opozoriti je treba, da zadnji mali c, ↄ ni vključen v rimske številke, ampak je vključen v standard Unicode kot klavdijska velika črka Ↄ.

Koda rimskih številk Unicode 0 1 2 3 4 5 6 7 8 9 A B C D E F Vrednost 1 2 3 4 5 6 7 8 9 10 11 12 50 100 500 1 000 U+2160 U+2170 Vrednost 1 000 5 000 10 000 100 6 5 0 50.000 100.000 U+2180

Za prikaz vseh teh znakov je potrebna programska oprema, ki podpira standard Unicode, in pisava, ki vsebuje glife, ki ustrezajo tem znakom (na primer pisava Universalia).

Regularni izrazi

Regularni izraz za preverjanje rimskih številk je ^(M(0,3))(D?C(0,3)|C)(L?X(0,3)|X)(V?I(0,3) | I)$ V Perlu lahko za iskanje uporabite regularni izraz m/\b((?:M(0,3)?(?:D?C(0,3)|C)?(?:L) Rimske številke v nizu ?X(0,3)|X)?(?:I(0,3)?V?I(0,3)|I)))\b/gs.

Pretvorba

Posebne funkcije se uporabljajo za pretvorbo števil, zapisanih z arabskimi številkami, v rimske številke. Na primer, v ruski različici Microsoft Excela obstaja funkcija za to RIMSKI RIMSKI(prepir).

Funkcije pretvorbe v JavaScript var arab = ; var roman = ["I","IV","V","IX","X","XL","L","XC","C","CD","D","CM ","M"]; funkcija arabToRoman(število) ( if(!število) return ""; var ret = ""; var i = arab.length - 1; while(število > 0) ( if(število >= arab[i]) ( ret + = roman[i]; število -= arab[i]; ) else ( i--; ) ) return ret; ) funkcija romanToArab(str) ( str = str.toUpperCase(); var ret = 0; var i = arab .length - 1; var pos = 0; while(i >= 0 && pos< str.length) { if(str.substr(pos, roman[i].length) == roman[i]) { ret += arab[i]; pos += roman[i].length; } else { i--; } } return ret; } Аналогичные функции на Си (C89): #include const int arabar = { 1, 4, 5, 9, 10, 40, 50, 90, 100, 400, 500, 900, 1000}; const char *romanar = { "I", "IV", "V", "IX", "X", "XL", "L", "XC", "C", "CD", "D", "CM", "M"}; char *arab2roman(unsigned short int arab) { static char roman; const int m = sizeof(arabar)/sizeof(int)-1, arabmax=arabar[m]; const char romanmax=romanar[m]; int i, n; if(!arab) { *roman=0; return roman; } i=0; while(arab>arabmax) ( roman = romanmax; arab -= arabmax; ) n=m; while(arab > 0) ( if(arab >= arabar[n]) ( roman = romanar[n]; if(n&1) roman = romanar[n]; arab -= arabar[n]; ) else n--; ) roman[i]=0; povratni roman; ) unsigned short int roman2arab(char *roman) ( const int m = sizeof(arabar)/sizeof(int)-1; unsigned short int arab; int len, n, i, pir; len=strlen(roman); arab= 0; n=m; i=0; medtem ko(n >= 0 && i< len) { pir=n&1; if(roman[i] == romanar[n] && (!pir || roman == romanar[n])) { arab += arabar[n]; i += 1+pir; } else n--; } return arab; } Программа перевода арабских цифр в римские и наоборот type str2 = string; const Rims: array of str2 = ("M","CM","D","CD","C","XC","L","XL","X","IX","V","IV","I"," "); Arab: array of integer = (1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1, 0); var N, NI, I, J: integer; S: string; function Arab2Rim(N: integer) : string; var S: string; I: integer; begin S:= ""; I:=1; while N >0 do begin while Arab[I]"" do begin while Rims[I] = Copy(S, 1, Length(Rims[I])) do begin S:= Copy(S, 1+Length(Rims[I]) , 255); N:= N + arabski[I] konec; I:=I+1 konec; Rim2Arab:= N konec; begin WriteLn("Prevod iz arabskih v rimske številke. 1999 B_SA"); ( Write("Vnesite število za pretvorbo:"); ReadLn(N);) za NI:= 26 do 46 do WriteLn(NI," = ",Arab2Rim(NI)," obratno ", Rim2Arab(Arab2Rim(NI) ) ); konec. Funkcija za pretvorbo arabske številke v rimsko številko v Pascalu function Arab2Roman(arab:integer):string; var i:celo število; d:celo število; arab_str: niz; arab_len:celo število; začetek Rezultat:= ""; arab_str:= IntToStr(arab); arab_len:= Dolžina(arab_str); for i:= 0 to arab_len-1 do begin d:= StrToInt(String(arab_str)); if (d+1) mod 5 = 0 then Result:= Copy("IXCM", 1+i, 1) + Copy("VXLCDM", i*2 + (d+1) div 5, 1) + Result else Rezultat:= Kopiraj("VLD", 1+i, d div 5) + Kopiraj("IIIXXXCCCMMM", 1+i*3, (d mod 5)) + Rezultat; konec; konec;

Funkcija za pretvorbo arabske številke v rimsko številko v BASIC (najkrajša koda) 10 INPUT "ARABIC NUMBER: "; А$ 20 FOR I=0 TO LEN(A$)-1 30 X=VAL(MID$(A$,LEN(A$)-I,1)) 40 IF X=4 ALI X=9 THEN B$= MID$("IXCM",I+1,1)+MID$("VXLCDM",I*2+(X+1)/5,1)+B$ 50 IF X4 IN X Funkcija pretvorbe arabskih števil (v tem case 1999) v Roman na XPath string-join(za $num v (1999) return (("","M","MM","MMM")[($num idiv 1000) mod 10+1], ( "","C","CC","CCC","CD","D","DC","DCC","DCCC","CM")[($num idiv 100) mod 10+1 ], ("", "X", "XX", "XXX", "XL", "L", "LX", "LXX", "LXXX", "XC") [($num idiv 10) mod 10+1], ("", "I", "II", "III", "IV", "V", "VI", "VII", "VIII", "IX") [$num mod 10 +1]), "") Funkcija za pretvorbo arabske številke (v tem primeru 1999) v rimsko številko v Perlu uporabite strict; uporaba opozoril; moj $n = 1999; my $nums = [ ["", qw(I II III IV V VI VII VIII IX) ], ["", qw(X XX XXX XL L LX LXX LXXX XC) ], ["", qw(C CC CCC CD D DC DCC DCCC CM) ], ["", qw(M MM MMM) ] ]; moj $i = 0; moj @res = (); potisnite @res, ($nums->[$i++][ ($n % 10, $n = int($n / 10)) ]) za 0 .. 3; natisni obratno @res; Razred za pretvorbo arabskih številk (od 1 do 3999) v rimske številke v Javi import java.util.*; public class IntegerConverter ( public static String intToRoman(int number) ( if (number >= 4000 || number iterator = units.descendingKeySet().iterator(); while (iterator.hasNext()) ( Integer key = iterator.next( ); medtem ko (število >= ključ) ( število -= ključ; rezultat.append(units.get(ključ)); ) ) vrni rezultat.toString(); ) zasebne statične končne enote NavigableMap; statično ( NavigableMap initMap = nov TreeMap<> (); initMap.put(1000, "M"); initMap.put(900, "CM"); initMap.put(500, "D"); initMap.put(400, "CD"); initMap.put(100, "C"); initMap.put(90, "XC"); initMap.put(50, "L"); initMap.put(40, "XL"); initMap.put(10, "X"); initMap.put(9, "IX"); initMap.put(5, "V"); initMap.put(4, "IV"); initMap.put(1, "I"); enote = Zbirke.unmodifiableNavigableMap(initMap); ) ) Razred razširitve za pretvorbo rimskih številk v arabske in nazaj, na CSharpu /// /// Razred je zasnovan za pretvorbo arabskih številk v rimske številke in nazaj /// /// /// Razred na začetku vsebuje abecedo Rimske številke, ki lahko določijo arabske številke od 1 do 39999 /// Če morate razširiti obseg, lahko določite dodatne zapise za rimske številke z /// poljem BasicRomanNumbers javni statični razred RomanNumber ( /// /// Alphabet osnovnih rimskih števil /// Abeceda je zgrajena v obliki Ključ slovarja je arabska številka (int), vrednost je ustrezna /// rimska številka (niz) /// /// /// Vsebuje rimski zapis za arabske številke 1*,4*,5*,9* - kjer "*" predstavlja 0...N ničel /// Ko je ustvarjen, vsebuje oznako števil od 1 do 10000 (I... ↂ) Ker se v rimski številki en znak ne more /// pojaviti več kot trikrat, lahko na začetku pretvorite številke od 1 do 39999 v rimsko obliko. /// Če želite delati z velikim številom rimskih znakov števil, potem dodajte dodatne oznake na seznam /// od 40000 brez preskoka elementov 1*,4*, 5*,9*. /// public static SortedList BasicRomanNumbers ( get; set; ) static RomanNumber() ( BasicRomanNumbers = new SortedList(17); BasicRomanNumbers.Add(1, "I"); BasicRomanNumbers.Add(4, "IV"); BasicRomanNumbers. Dodaj (5, "V"); Osnovne rimske številke. Dodaj (9, "IX"); Osnovne rimske številke. Dodaj (10, "X"); Osnovne rimske številke. Dodaj (40, "XL"); Osnovne rimske Številke.Add(50, "L "); Osnovne rimske številke.Add(90, "XC"); Osnovne rimske številke.Add(100, "C"); Osnovne rimske številke.Add(400, "CD"); Osnovne rimske številke. Dodaj (500, "D"); Osnovne rimske številke. Dodaj (900, "CM"); Osnovne rimske številke. Dodaj (1000, "M"); Osnovne rimske številke. Dodaj (4000, "Mↁ" ); Osnovne rimske številke.Add(5000, "ↁ"); Osnovne rimske številke.Add(9000, "Mↂ" ); BasicRomanNumbers.Add(10000, "ↂ"); ) /// /// Izračuna največje možno Rimska številka za trenutno abecedo rimskih številk. /// /// Največje možno rimsko število public static uint MaximumRomanNumber() ( int lastNumber = BasicRomanNumbers. Keys.Last(); int numberWithoutZeros = int.Parse(lastNumber.ToString().Replace("0","\0")); int predhodno=0; stikalo (numberWithoutZeros) ( primer 1: predhodna = zadnja številka * 4 - 1; prekinitev; primer 4: primer 9: predhodna = zadnja številka; prekinitev; primer 5: predhodna = zadnja številka + zadnja številka / 5 * 3; prekinitev; privzeto: prekinitev; ) return uint.Parse(preliminary.ToString().Replace("0", "9"));; ) /// /// Pretvori celo število v rimsko številko /// /// Arabsko število, ki ga je treba pretvoriti v rimski zapis /// Ustvarjeno, ko je število enako "0" /// ali več potem se maksimum posreduje kot parameter rimska številka. /// Niz, ki predstavlja rimsko številko, javni statični niz ArabicRoman(this int numberArab) ( StringBuilder numberRoman = new StringBuilder(); //Izključite znak "-" iz arabske številke in ga postavite za prvi znak rimske številke, če (številka arab< 0) { числоРимское.Append("-"); числоАраб = -числоАраб; } if (числоАраб == 0) throw new ArgumentOutOfRangeException("числоАраб", числоАраб, "Недопустимое значение аргумента: римские числа не могут быть равными\"0\""); else if (числоАраб >MaximumRomanNumber()) throw new ArgumentOutOfRangeException("numberArab", numberArab, string.Format("Neveljavna vrednost argumenta: ni mogoče določiti rimske številke, večje od (0)", MaximumRomanNumber())); //Arabsko število razčlenimo na rimske številke, ki jih sestavljajo, in jih združimo v eno vrstico var potrebne osnovne rimske številke = od do v osnovnih rimskih številkah. Ključi, kjer do = 1) ( arabska številka -= trenutna; rimska številka. Pripni (osnovno Rimske številke [trenutne]); ) ) vrni rimsko številko .ToString(); ) /// /// Pretvori rimske številke v arabske /// /// rimska številka, ki ga je treba pretvoriti v tip int /// Ustvarjeno, ko je kot parameter posredovano nerimsko število /// Celo število, ki predstavlja arabski zapis rimske številke public static int Roman Arabic(ta niz rimsko število) ( int Arabic število = 0; sbyte negativno = 1; niz rome = rimsko število.Trim(); if (rim == "-") ( negativno = -1; rome = roman.Substring(1); ) Predloga StringBuilder RomanNumbers = new StringBuilder (); foreach (int to in BasicRomanNumbers .Keys) ( int index = Basic Roman Numbers.Keys.IndexOf(k); string quantifier="?"; if (index == 0 || (index % 4) == 0 ) quantifier="(0,3)"; templateRomanNumbers.Insert(0, string.Format("(?(1))(2))?", k.ToString(), BasicRomanNumbers[k], kvantifier)); ) //Prezri velike in male črke + ujemanje se mora začeti z začetkom vrstice Roman Number pattern.Insert(0, "(?i)^"); //Ujemanje je treba najti na koncu vrstice Roman Number pattern.Append(" $"); //Poenostavljeno preverjanje. Ne preverja napak, kot je IVII, če (!Regex. IsMatch(Roman, templateRomanNumber.ToString())) vrže novo FormatException(string.Format("Besedilo \"(0)\" ni rimska številka", številkarimska)); Številka ujemanja = Regex.Match(Roman, templateRomanNumber.ToString()); foreach (int to in BasicRomanNumbers.Keys) ( numberArab += number.Groups[to.ToString()].Length / BasicRomanNumbers[to].Length * to; ) return numberArab * negative; ) )

Rimske številke so:

Rimske številke Spasskaya Tower zvonjenje ura Številčni sistemi v kulturi Indo-arabski številski sistemVzhodnoazijski številski sistemiAbecedni številski sistemiDrugi sistemi Pozicijski številski sistemi Mešani številski sistemi Nepozicijski številski sistemi
arabsko
indijski
tamilščina
birmanski
kmerski
laoški
mongolski
tajska
kitajski
japonska
Suzhou
korejščina
vietnamski
Palice za štetje
Abjadia
armenski
Aryabhata
cirilica
grški
etiopski
judovsko
Katapajadi
babilonski
egipčansko
etruščanski
Roman
Podstrešje
Kipu
Mayskaya
Decimalni številski sistem (10)
2, 3, 4, 5, 6, 7, 8, 9, 12, 16, 20, 60
Negapozicijski številski sistem
Simetrični številski sistem
Fibonaccijev številski sistem
Enotski (unarni) številski sistem
Seznam številskih sistemov

rimske številke- številke, ki so jih uporabljali stari Rimljani v svojem nepozicijskem številskem sistemu.

Naravna števila zapišemo s ponavljanjem teh števil. Poleg tega, če je večje število pred manjšim, se te seštejejo (načelo seštevanja), če pa je manjše število pred večjim, potem se manjše odšteje od večjega (načelo seštevanja). princip odštevanja). Zadnje pravilo velja samo za izogibanje štirikratnemu ponavljanju istega števila.

Rimske številke so se med Etruščani pojavile 500 pr.

Številke

rimske številke

V ruskem jeziku obstajajo mnemonična pravila za fiksiranje črkovnih oznak številk v padajočem vrstnem redu:

M s D arim Z iz oči v oči L imons, X vatit V sedem jaz X.

M s D mi jemo C nasveti L poglej X v redu V dobro vzgojen jaz posameznikom

Oziroma M, D, C, L, X, V, I

Primeri

Številka Rimski zapis Opomba

Če želite pravilno zapisati velika števila z rimskimi številkami, morate najprej napisati število tisočic, nato stotic, nato desetic in nazadnje enot.

V tem primeru se lahko nekatere številke (I, X, C, M) ponovijo, vendar ne več kot trikrat; tako jih je mogoče uporabiti za zapis poljubnega celega števila ne več kot 3999(MMMCMXCIX). IN zgodnja obdobja tam so bili znaki za označevanje večjih številk - 5000, 10.000, 50.000 in 100.000[ vir ni naveden 683 dni] (potem je največje število po omenjenem pravilu 399.999). Pri pisanju števil v sistemu rimskih številk se lahko manjša številka pojavi na desni strani večje; v tem primeru se ji doda. Na primer, število 283 v rimskem jeziku je zapisano kot CCLXXXIII, to je 100+100+50+30+3=283. Tu se številka, ki predstavlja sto, ponovi dvakrat, številki, ki predstavljata deset oziroma ena, pa se ponovita trikrat.

Primer: številka 1988. Tisoč M, devetsto CM, osem desetic LXXX, osem enot VIII. Zapišimo jih skupaj: MCMLXXXVIII.

Nemalokrat so za poudarjanje številk v besedilu čeznje potegnili črto: LXIV. Včasih je bila črta narisana zgoraj in spodaj: XXXII- še posebej je običajno, da se v ruskem rokopisnem besedilu poudarjajo rimske številke (to se ne uporablja pri stavljenju zaradi tehnične zapletenosti). Za druge avtorje bi črtica nad črto lahko pomenila povečanje vrednosti številke za 1000-krat: VM = 6000.

Ura Tissot s tradicionalnim črkovanjem "IIII".

Šele v 19. stoletju so številko »štiri« zapisali kot »IV«, pred tem pa je bila najpogosteje uporabljena številka »IIII«. Vendar pa je zapis "IV" že mogoče najti v dokumentih rokopisa Forme of Cury iz leta 1390. Številčnice ur so v večini primerov tradicionalno uporabljale "IIII" namesto "IV", predvsem iz estetskih razlogov: to črkovanje zagotavlja vizualno simetrijo s številkami "VIII" na nasprotni strani in obrnjeno "IV" je težje brati kot "IIII".

Manjšo številko lahko zapišemo levo od večje, potem jo je treba odšteti od večje. V tem primeru ponovitve manjšega števila niso dovoljene. V rimskem jeziku bi bilo število 94 XCIV=100-10+5-1=94 - tako imenovano "pravilo odštevanja" (pojavilo se je v pozni antiki, pred tem pa so Rimljani število 4 pisali kot IIII, število 40 pa kot kot XXXX). Obstaja šest načinov uporabe "pravila odštevanja":

  • IV = 4
  • IX = 9
  • XL=40
  • XC = 90
  • CD = 400
  • CM = 900

Upoštevati je treba, da druge metode "odštevanja" niso sprejemljive; zato je treba številko 99 zapisati kot XCIX, ne pa kot IC. Vendar pa se danes v nekaterih primerih uporablja tudi poenostavljen zapis rimskih številk: na primer v Microsoft Excelu lahko pri pretvorbi arabskih številk v rimske s funkcijo "ROMAN()" uporabite več vrst predstavitev števil, od klasičnih do zelo poenostavljenih (število 499 lahko na primer zapišemo kot CDXCIX, LDVLIV, XDIX, VDIV ali ID). Poenostavitev je, da lahko za zmanjšanje števke levo od nje zapišemo katero koli drugo števko:

  • 999. Tisoč (M), odštej 1 (I), dobimo 999 (IM) namesto CMXCIX. Posledica: 1999 - MIM namesto MCMXCIX
  • 95. Sto (C), odštejte 5 (V), dobite 95 (VC) namesto XCV
  • 1950: tisoč (M), odštejte 50 (L), dobite 950 (LM). Posledica: 1950 - MLM namesto MCML

Velika števila lahko zapišemo tudi z rimskimi številkami. Če želite to narediti, postavite črto nad tiste številke, ki označujejo tisoče, in dvojno črto postavite čez številke, ki označujejo milijone. Na primer, številka 123123 bi izgledala takole:

In milijon je kot jaz, vendar ne z eno, ampak z dvema potezama na čelu: jaz

Aplikacija

Avtogram B. N. Jelcina 10. novembra 1988. Mesec je naveden z rimskimi številkami.

V ruščini se rimske številke uporabljajo v naslednjih primerih:

  • Številka stoletja ali tisočletja: XIX stoletje, II tisočletje pr. e.
  • Serijska številka monarha: Charles V, Catherine II.
  • Številka zvezka v knjigi z več zvezki (včasih številke delov knjige, razdelkov ali poglavij).
  • V nekaterih publikacijah - številke listov s predgovorom h knjigi, da ne popravite povezav v glavnem besedilu, ko spremenite predgovor.
  • Oznake v starinskem slogu na številčnicah ure.
  • Drugi pomembni dogodki ali elementi seznama, na primer: V. postulat Evklida, Druga svetovna vojna, XX. kongres CPSU, igre XXII. olimpijade itd.
  • Valentnost kemijskih elementov.
  • Serijska številka koraka v lestvici.

Rimske številke so bile v ZSSR široko uporabljene pri označevanju datuma za označevanje meseca v letu: 11/III-85 ali 9.XI.89. Za označevanje datumov življenja in smrti na nagrobnikih se je pogosto uporabljal poseben format, kjer je bil mesec v letu označen tudi z rimskimi številkami. S prehodom na računalniško obdelavo informacij so formati datumov, ki temeljijo na rimskih številkah, praktično izginili iz uporabe.

V drugih jezikih ima lahko področje uporabe rimskih številk posebne značilnosti, na primer v zahodnih državah je številka leta včasih zapisana z rimskimi številkami.

Če številke grafično razdelamo, dobimo naslednje:

jaz jaz V jaz jaz X jaz jaz V jaz jaz X jaz jaz V jaz jaz X jaz jaz V jaz jaz X jaz jaz V jaz jaz L jaz jaz V jaz jaz X
1 jaz
2 jaz
3 jaz jaz
4 jaz V
5 V
6 V jaz
7 V jaz
8 V jaz jaz
9 jaz X
10 X
11 X jaz
12 X jaz
13 X jaz jaz
14 X jaz V
15 X V
16 X V jaz
17 X V jaz
18 X V jaz jaz
19 X jaz X
20 X X
21 X X jaz
22 X X jaz
23 X X jaz jaz
24 X X jaz V
25 X X V
26 X X V jaz
27 X X V jaz
28 X X V jaz jaz
29 X X jaz X
30 X X X
31 X X X jaz
32 X X X jaz
33 X X X jaz jaz
34 X X X jaz V
35 X X X V
36 X X X V jaz
37 X X X V jaz
38 X X X V jaz jaz
39 X X X jaz X
40 X L
41 X L jaz
42 X L jaz
43 X L jaz jaz
44 X L jaz V
45 X L V
46 X L V jaz
47 X L V jaz
48 X L V jaz jaz
49 X L jaz X
50 L itd. do MMMCMXCIX (3999)

Unicode

Standard Unicode priporoča uporabo običajnih latiničnih črk za predstavitev rimskih številk. Vendar pa standard vključuje tudi posebne znake za rimske številke kot del Številske oblike(Angleščina) Številčni obrazci) v območju znakov s kodami U+2160 do U+2188. Na primer, MCMLXXXVIII je mogoče predstaviti v obliki ⅯⅭⅯⅬⅩⅩⅩⅧ. Ta obseg vključuje male in velike črke od 1 (Ⅰ ali I) do 12 (Ⅻ ali XII), vključno s kombiniranimi glifi za sestavljena števila, kot je 8 (Ⅷ ali VIII), predvsem zaradi združljivosti z vzhodnoazijskimi nabori znakov v industrijskih standardih, kot je kot JIS X 0213, kjer so ti znaki opredeljeni. Kombinacijski glifi se uporabljajo za predstavitev števil, ki so bila prej sestavljena iz posameznih znakov (na primer Ⅻ namesto njegove predstavitve kot Ⅹ in Ⅱ). Poleg tega obstajajo glifi za arhaične oblike 1000, 5000, 10.000, veliki obratni C (Ɔ), pozno obliko 6 (ↅ, podobno grški stigmi: Ϛ), zgodnjo obliko 50 (ↆ, podobno kot navzdol usmerjena puščica Predloga:Vmvauyairufktr5ke4fuiUnicode), 50 000 in 100 000. Opozoriti je treba, da mali zadnji c, ↄ ni vključen v simbole rimskih številk, ampak je vključen v standard Unicode kot velika klavdijska črka Ↄ.

Rimske številke v kodi Unicode 0 1 2 3 4 5 6 7 8 9 A B C D E F Vrednost 1 2 3 4 5 6 7 8 9 10 11 12 50 100 500 1 000 U+2160 U+2170 Vrednost 1 000 5 000 10 000 - - 6 50 50 000 100 000 U+2160! U+2180

Za prikaz vseh teh znakov je potrebna programska oprema, ki podpira standard Unicode, in pisava, ki vsebuje glife, ki ustrezajo tem znakom.

Regularni izrazi

Regularni izraz za preverjanje rimskih številk je "^(?i)M(0,3)(D?C(0,3)|C)(L?X(0,3)|X)(V?I(0 , 3)|I)$". V Perlu lahko uporabite regularni izraz "m/((?i)M(0,3)(D?C(0,3)|C)(L?X(0,3)|X), da poiščete Roman številke v nizu )(I|V?I(0,3)))/g".

Pretvorba

Za pretvorbo števil, zapisanih z arabskimi številkami, v rimske številke se uporabljajo posebne funkcije. Na primer, v ruski različici Microsoft Excela obstaja funkcija za to RIMSKI(argument), in angleška verzija Microsoft Excel in katera koli različica OpenOffice.org Calc se imenuje ta funkcija RIMSKI(prepir).

Funkcije pretvorbe v JavaScript var arab = ; var roman = ["I","IV","V","IX","X","XL","L","XC","C","CD","D","CM ","M"]; funkcija arabToRoman(število) ( if(!število) return ""; var ret = ""; var i = arab.length - 1; while(število > 0) ( if(število >= arab[i]) ( ret + = roman[i]; število -= arab[i]; ) else ( i--; ) ) return ret; ) funkcija romanToArab(str) ( str = str.toUpperCase(); var ret = 0; var i = arab .length - 1; var pos = 0; while(i >= 0 && pos< str.length) { if(str.substr(pos, roman[i].length) == roman[i]) { ret += arab[i]; pos += roman[i].length; } else { i--; } } return ret; } Аналогичные функции на Си (C89): #include const int arabar = { 1, 4, 5, 9, 10, 40, 50, 90, 100, 400, 500, 900, 1000}; const char *romanar = { "I", "IV", "V", "IX", "X", "XL", "L", "XC", "C", "CD", "D", "CM", "M"}; char *arab2roman(unsigned short int arab) { static char roman; const int m = sizeof(arabar)/sizeof(int)-1, arabmax=arabar[m]; const char romanmax=romanar[m]; int i, n; if(!arab) { *roman=0; return roman; } i=0; while(arab>arabmax) ( roman = romanmax; arab -= arabmax; ) n=m; while(arab > 0) ( if(arab >= arabar[n]) ( roman = romanar[n]; if(n&1) roman = romanar[n]; arab -= arabar[n]; ) else n--; ) roman[i]=0; povratni roman; ) unsigned short int roman2arab(char *roman) ( const int m = sizeof(arabar)/sizeof(int)-1; unsigned short int arab; int len, n, i, pir; len=strlen(roman); arab= 0; n=m; i=0; medtem ko(n >= 0 && i< len) { pir=n&1; if(roman[i] == romanar[n] && (!pir || roman == romanar[n])) { arab += arabar[n]; i += 1+pir; } else n--; } return arab; } Программа перевода арабских цифр в римские и наоборот type str2 = string; const Rims: array of str2 = ("M","CM","D","CD","C","XC","L","XL","X","IX","V","IV","I"," "); Arab: array of integer = (1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1, 0); var N, NI, I, J: integer; S: string; function Arab2Rim(N: integer) : string; var S: string; I: integer; begin S:= ""; I:=1; while N >0 do begin while Arab[I]"" do begin while Rims[I] = Copy(S, 1, Length(Rims[I])) do begin S:= Copy(S, 1+Length(Rims[I]) , 255); N:= N + arabski[I] konec; I:=I+1 konec; Rim2Arab:= N konec; begin WriteLn("Prevod iz arabskih v rimske številke. 1999 B_SA"); ( Write("Vnesite število za pretvorbo:"); ReadLn(N);) za NI:= 26 do 46 do WriteLn(NI," = ",Arab2Rim(NI)," obratno ", Rim2Arab(Arab2Rim(NI) ) ); konec. Funkcija za pretvorbo arabske številke v rimsko številko v Pascalu function Arab2Roman(arab:integer):string; var i:celo število; d:celo število; arab_str: niz; arab_len:celo število; začetek Rezultat:= ""; arab_str:= IntToStr(arab); arab_len:= Dolžina(arab_str); for i:= 0 to arab_len-1 do begin d:= StrToInt(String(arab_str)); if (d+1) mod 5 = 0 then Result:= Copy("IXCM", 1+i, 1) + Copy("VXLCDM", i*2 + (d+1) div 5, 1) + Result else Rezultat:= Kopiraj("VLD", 1+i, d div 5) + Kopiraj("IIIXXXCCCMMM", 1+i*3, d mod 5) + Rezultat; konec; konec;

Posebna značilnost tega algoritma je, da ne uporablja nizov (razen če seveda menite, da je niz niz znakov).

Funkcija za pretvorbo arabske številke v rimsko številko v BASIC (najkrajša koda) 10 INPUT "ARABIC NUMBER: "; А$ 20 FOR I=0 TO LEN(A$)-1 30 X=VAL(MID$(A$,LEN(A$)-I,1)) 40 IF X=4 ALI X=9 THEN B$= MID$("IXCM",I+1,1)+MID$("VXLCDM",I*2+(X+1)/5,1)+B$ 50 IF X4 IN X Funkcija pretvorbe arabskih števil (v tem case 1999) v Roman na XPath string-join(za $num v (1999) return (("","M","MM","MMM")[($num idiv 1000) mod 10+1], ( "","C","CC","CCC","CD","D","DC","DCC","DCCC","CM")[($num idiv 100) mod 10+1 ], ("", "X", "XX", "XXX", "XL", "L", "LX", "LXX", "LXXX", "XC") [($num idiv 10) mod 10+1], ("", "I", "II", "III", "IV", "V", "VI", "VII", "VIII", "IX") [$num mod 10 +1]), "") Funkcija za pretvorbo arabske številke (v tem primeru 1999) v rimsko številko v Perlu uporabite strict; uporaba opozoril; moj $n = 1999; my $nums = [ ["", qw(I II III IV V VI VII VIII IX) ], ["", qw(X XX XXX XL L LX LXX LXXX XC) ], ["", qw(C CC CCC CD D DC DCC DCCC CM) ], ["", qw(M MM MMM) ] ]; moj $i = 0; moj @res = (); potisnite @res, ($nums->[$i++][ ($n % 10, $n = int($n / 10)) ]) za 0 .. 3; natisni obratno @res; Razred za pretvorbo arabskega števila (od 1 do 3999) v rimsko v razredu Java ArabRome ( private int arabBase = (1000, 500, 100, 50, 10, 5, 1); private String romeBase = ("M", "D" , "C", "L", "X", "V", "I"); javni niz ArabToRome(int arab) ( int rezultat = 0; int ostanek = 0; niz rezultatRim = ""; for(kratki i = 0; i0 && result=4 && rezultat Razred razširitve za pretvorbo rimskih številk v arabske in obratno, na CSharpu /// /// Razred je namenjen pretvorbi arabskih številk v rimske in obratno /// /// / // Razred prvotno vsebuje abecedo rimskih številk, ki lahko definira arabske številke od 1 do 39999 /// Če morate razširiti obseg, lahko definirate dodatne zapise za rimske številke z /// poljem BasicRomanNumbers javni statični razred RomanNumber ( /// /// Številke osnovne rimske abecede /// Abeceda je zgrajena v obliki slovarja.Ključ slovarja je arabska številka (int), vrednost pa ustrezna /// rimska številka (niz) /// /// /// Vsebuje rimski zapis za arabske številke 1*,4* ,5*,9* - kjer "*" predstavlja 0...N ničel /// Ko je ustvarjen, vsebuje oznako števila od 1 do 10000 (I...ↂ) Ker se v rimski številki en znak ne more / // pojaviti več kot trikrat, lahko na začetku pretvorite števila od 1 do 39999 v rimsko obliko. /// Če želite biti sposoben delati z velikim številom rimskih številk, potem bi morali na seznam dodati dodatne zapise /// začenši s 40000, ne da bi preskočili elemente 1*,4*,5*,9*. /// public static SortedList BasicRomanNumbers ( get; set; ) static RomanNumber() ( BasicRomanNumbers = new SortedList(17); BasicRomanNumbers.Add(1, "I"); BasicRomanNumbers.Add(4, "IV"); BasicRomanNumbers. Dodaj (5, "V"); Osnovne rimske številke. Dodaj (9, "IX"); Osnovne rimske številke. Dodaj (10, "X"); Osnovne rimske številke. Dodaj (40, "XL"); Osnovne rimske Številke.Add(50, "L "); Osnovne rimske številke.Add(90, "XC"); Osnovne rimske številke.Add(100, "C"); Osnovne rimske številke.Add(400, "CD"); Osnovne rimske številke. Dodaj (500, "D"); Osnovne rimske številke. Dodaj (900, "CM"); Osnovne rimske številke. Dodaj (1000, "M"); Osnovne rimske številke. Dodaj (4000, "Mↁ" ); Osnovne rimske številke.Add(5000, "ↁ"); Osnovne rimske številke.Add(9000, "Mↂ" ); BasicRomanNumbers.Add(10000, "ↂ"); ) /// /// Izračuna največje možno Rimska številka za trenutno abecedo rimskih številk. /// /// Največja možna rimska številka public static uint MaximumRomanNumber() ( int lastNumber = BasicRomanNumbers.Keys.Last(); int numberWithoutZeros = int.Parse(lastNumber.ToString().Replace("0","\0 ")); int preliminary=0; switch (numberWithoutZeros) ( case 1: preliminary = lastNumber * 4 - 1; break; case 4: case 9: preliminary = lastNumber; break; case 5: preliminary = lastNumber + lastNumber / 5 * 3; break; privzeto: break; ) return uint.Parse(preliminary.ToString().Replace("0", "9"));; ) /// /// Pretvori celo število v rimsko številko /// / // Arabsko število, ki ga je treba pretvoriti v rimski zapis /// Ustvarjeno, ko je kot parameter posredovano število, ki je enako »0« /// ali število, večje od največjega rimskega števila. /// Niz, ki predstavlja rimsko številko, javni statični niz ArabicRoman(this int numberArab) ( StringBuilder numberRoman = new StringBuilder(); //Izključite znak "-" iz arabske številke in ga postavite za prvi znak rimske številke, če (številka arab< 0) { числоРимское.Append("-"); числоАраб = -числоАраб; } if (числоАраб == 0) throw new ArgumentOutOfRangeException("числоАраб", числоАраб, "Недопустимое значение аргумента: римские числа не могут быть равными\"0\""); else if (числоАраб >MaximumRomanNumber()) throw new ArgumentOutOfRangeException("numberArab", numberArab, string.Format("Neveljavna vrednost argumenta: ni mogoče določiti rimske številke, večje od (0)", MaximumRomanNumber())); //Arabsko število razčlenimo na rimske številke, ki jih sestavljajo, in jih združimo v eno vrstico var potrebne osnovne rimske številke = od do v osnovnih rimskih številkah. Ključi, kjer do = 1) ( arabska številka -= trenutna; rimska številka. Pripni (osnovno Rimske številke [trenutne]); ) ) vrni rimsko številko .ToString(); ) /// /// Pretvori rimsko številko v arabsko /// /// Rimsko številko, ki jo je treba pretvoriti v int /// Ustvarjeno, ko je nerimsko število posredovano kot parameter /// Celo število predstavlja arabski zapis rimsko število public static int rimsko arabsko(ta niz rimsko število) ( int arabsko število = 0; sbyte negative = 1; niz Rim = rimsko število.Trim(); if (rimsko == "-") ( negativno = -1; Roman = Roman. Substring(1); ) Predloga StringBuilder RomanNumbers = new StringBuilder(); foreach (int to in BasicRomanNumbers.Keys) ( int index = BasicRomanNumbers.Keys.IndexOf(k); string quantifier="? "; if (index == 0 | | (index % 4) == 0) quantifier="(0,3)"; templateRomanNumber.Insert(0, string.Format("(?((1))(2) )?", k.ToString() , BasicRomanNumbers[k], kvantifikator)); ) //Zanemarjanje velikih in malih črk + ujemanje se mora začeti na začetku niza RomanNumber template.Insert(0, "(?i)^"); //Ujemanje mora biti najdeno na koncu niza RomanNumber template.Append(" $"); //Poenostavljeno preverjanje. Ne preverja napak, kot je IVII, če (!Regex.IsMatch(Roman, RomanNumber pattern.ToString())) vrže novo FormatException(string.Format("Besedilo \"(0)\" ni rimska številka", številoRoman) ); Številka ujemanja = Regex.Match(Roman, templateRomanNumber.ToString()); foreach (int to in BasicRomanNumbers.Keys) ( numberArab += number.Groups[to.ToString()].Length / BasicRomanNumbers[to].Length * to; ) return numberArab * negative; ) )

Opombe

  1. Standard Unicode, 15.3
  2. 1 2 Obrazci številk Unicode
  3. Perry, David J. Predlog za dodajanje dodatnih starorimskih znakov v UCS.
  4. Za prvi dve vrstici
  5. "Znanost in življenje" N12 1986 stran 95, V. Ptitsyn, Moskva
  6. Avtor - Kuznetsov Evgeny A.
  7. Avtor - Kuznetsov Evgeny A., 1992

Poglej tudi

  • Simboli starorimskih denarnih in utežnih enot
Tehnična opomba: Zaradi tehničnih omejitev nekateri brskalniki morda ne bodo prikazali posebnih znakov, uporabljenih v tem članku. Ti znaki so lahko prikazani kot polja, vprašaji ali drugi nesmiselni znaki, odvisno od vašega spletnega brskalnika, operacijskega sistema in nameščenih pisav. Tudi če je vaš brskalnik sposoben interpretirati UTF-8 in ste namestili pisavo, ki podpira široko paleto Unicode, npr. Koda2000, Arial Unicode MS, Lucida Sans Unicode ali eno od brezplačnih pisav Unicode - morda boste morali uporabiti drug brskalnik, saj se zmogljivosti brskalnika na tem področju pogosto razlikujejo. kategorije:
  • Številke
  • Številski sistemi

Kaj pomenijo rimske črke L C D M?

To so številke! - v rimskem sistemu številčenja, ki je temeljil na uporabi latinskih črk, je postal eden od prepričljivih razlogov za njegovo zamenjavo s primernejšim decimalnim sistemom številk v zvezi s tem
V naraščajočem vrstnem redu te črke predstavljajo naslednja cela števila: I - ena, V - pet, X - deset, L - petdeset, C - sto, D - petsto, M - tisoč.
rimske številke
Rimski sistem številčenja s črkami je bil v Evropi običajen dva tisoč let. Šele v poznem srednjem veku ga je nadomestil bolj priročen decimalni sistem številk, ki so si ga izposodili od Arabcev. Toda do danes se rimske številke uporabljajo za označevanje datumov na spomenikih, časa na urah in (v anglo-ameriški tipografski tradiciji) strani predgovorov knjig. Poleg tega je v ruščini običajno uporabljati rimske številke za označevanje zaporednih številk.
Za označevanje števil je bilo uporabljenih 7 črk latinske abecede: I = 1, V = 5, X = 10, L = 50, C = 100, D = 500, M = 1000. Vmesna števila so bila oblikovana tako, da se je več črkam dodalo desno ali levo. Najprej so bile zapisane tisočice in stotice, nato desetice in enice. Tako je bilo število 24 upodobljeno kot XXIV. Vodoravna črta nad simbolom je pomenila množenje s tisoč.
Naravna števila zapišemo s ponavljanjem teh števil. Poleg tega, če je večje število pred manjšim, se te seštejejo (načelo seštevanja), če pa je manjše število pred večjim, potem se manjše odšteje od večjega (načelo seštevanja). princip odštevanja). Zadnje pravilo velja samo za izogibanje štirikratnemu ponavljanju istega števila. Na primer, I, X, C so postavljeni pred X, C, M, da označujejo 9, 90, 900 ali pred V, L, D, da označujejo 4, 40, 400. Na primer, VI = 5+1 = 6, IV = 5 - 1 = 4 (namesto IIII). XIX = 10 + 10 - 1 = 19 (namesto XVIIII), XL = 50 - 10 =40 (namesto XXXX), XXXIII = 10 + 10 + 10 + 1 + 1 + 1 = 33 itd.
Izvajanje aritmetičnih operacij z večmestnimi števili v tem zapisu je zelo neprijetno. Sistem rimskih številk se trenutno ne uporablja, z izjemo v nekaterih primerih za označevanje stoletij (XV. stoletje itd.), AD. e. (MCMLXXVII ipd.) in mesece pri označevanju datumov (npr. 1. V. 1975), vrstne številke in včasih izpeljanke majhnih redov, večje od tri: yIV, yV ipd.
Kako so zapisane rimske številke? -//elhow.ru/ucheba/matematika/kak-pishutsja-rimskie-cifry
.437000.ru/info/rim.php
__________________________
Latinska abeceda je postala izolirana okoli 7. stoletja pr. e. in je prvotno vključeval samo 21 črk: A, B, C, D, E, F, Z, H, I, K, L, M, N, O, P, Q, R, S, T, V in X.
http://ladyretryka.ru/?p=10980

Katero število predstavlja rimska številka M?

Katero število predstavlja rimska številka M?

Alsou - sh

Na podobno vprašanje sem že odgovoril (glej tukaj). Tudi na to vprašanje bi rad na kratko odgovoril.

Se bom malo ponovil.

Rimskih številk, in teh je le 7, si ni težko zapomniti. Tu so črkovne oznake teh številk v padajočem vrstnem redu: M, D, C, L, X, V, I:

Kot vidimo, Rimska številka, ki je velika črka M, predstavlja število 1000.

Zdaj podajamo primere števil, zapisanih z rimskimi številkami:

Zdaj pa napišimo sami:

Letošnja številka 2015 , bi bilo na primer zapisano takole: MMXV

1941 - MSMXXXXI

1945 - MSMXXXXV

2987 - MMCMLXXXVII

2001 - MMI

Zolotinka

Če rimska številka M stoji sama, potem bo njena vrednost 1000.

Toda: če je pred M manjša številka, kot na primer v tem primeru CM, potem bo to pomenilo: 1000-100=900.

Če je C za M, potem morate sešteti, zato je vrednost 1000+100=1010.

C, kot se spomnimo, pomeni sto.

Splošna pravila: Pred večjim številom za odštevanje ne smete postaviti več kot enega manjšega števila. Torej IIV ne pomeni 3.

Poleg tega je treba desetice, stotice in tisočice ločiti kot ločene elemente (manjše število se od večjega ne sme razlikovati za več kot 10-krat). To pomeni, da je 99 XCIX, 90 + 9, vendar ga nikoli ne moremo zapisati kot IC. Prav tako 999 ne more biti IM in 1999 ne more biti MIM itd.

Nataša

Navajeni smo uporabljati arabske številke. Še vedno pa obstajajo in se pogosto uporabljajo rimski, ki so stari skoraj dva in pol tisoč let. Rimske številke so predstavljene kot črke. Takih črk je samo sedem: I, V, X, L, C, D, M. Njihova posebna razporeditev označuje število. Če se te številke nahajajo ločeno od ostalih, imajo naslednje pomene: I - 1, V - 5, X - 10, L - 50, C - 100, D - 500, M - 1000.

Lepa jasa

Rimska številka M (tudi črka) pomeni število 1000 .

V rimskem računu se za zapisovanje števil uporablja zelo malo črk, le 7 jih je. Toda za pisanje velikih števil z rimskimi črkami morate eno številko seštevati in odštevati od druge, kar brez vaje ni tako enostavno.

V arabščini se za predstavljanje števil uporablja 10 znakov, ki jih je mogoče uporabiti za pisanje poljubnih številk brez matematičnih operacij.

Latinska črka M v rimskih številkah pomeni "tisoč", iz latinske mille...

In zdaj se ta predpona pogosto uporablja, na primer ppm - dobesedno "od tisoč", od tam pa je prišla tudi beseda "milijon", dobesedno prevedena kot "ogromno tisoč", "tisoč", in zanimivo je, kako ta beseda pojavil, ampak to je že druga zgodba..

Afanasy44

Rimske številke se zdaj redko uporabljajo, nadomestile so jih bolj priročne arabske. Uporabljajo se predvsem za poimenovanje stoletij, na primer 5. stoletje, 12. stoletje in v redkih primerih.

Rimljani so s črko M označevali tisoč. Dve črki MM ena zraven druge pomenita dva tisoč, MMM tri tisoč in potem je še težje in bolj zabavno.

Moreljuba

Rimska številka M nam je seveda znana kot črka, vendar je v sistemu rimskih številk še vedno številka. Torej pomeni točno tisoč. in ta rimska številka izvira iz latinske besede mille.

Ljudmila 1986

Stari Rimljani so uporabljali črke latinske abecede za predstavljanje števil. Rimske številke so se pojavile okoli leta 500 pr.

V mnogih jezikih se rimske številke uporabljajo za zapisovanje številke stoletja (tisočletja), označevanje številčnic, pri matematičnih analizah in pomembnih dogodkih.

Čebela Zhuzha

Rimski L, C, D, M niso tako pogosti kot ostali, M pomeni številko 1000, MM pomeni 2000 in MMM pomeni 3000.

Na primer, leto 2017 bo označeno z rimskimi številkami MMXVII, leto 2018 bo označeno z rimskimi številkami MMXVIII.

Pozicijski , , , , , , , , , , Negapozicijski Simetrično Mešani sistemi Fibonacci Nepozicijski Enota (unarna)

rimske številke

1 jaz lat. unus, unum
5 V lat. quinque
10 X lat. decembr
50 L lat. quinquaginta
100 C lat. centum
500 D lat. quingenti
1000 M lat. mille

V ruskem jeziku obstajajo mnemonična pravila za fiksiranje črkovnih oznak številk v padajočem vrstnem redu:

M s D arim Z iz oči v oči L imons, X vatit V sedem jaz X.

M s D mi jemo C nasveti L poglej X v redu V dobro vzgojen jaz posameznikom

Oziroma M, D, C, L, X, V, I

številka Imenovanje
1 jaz
2 II
3 III
4 IV, do 19. stoletja - III
5 V
6 VI
7 VII
8 VIII (včasih - IIX)
9 IX (včasih VIII)
10 X
20 XX
30 XXX
40 XL
50 L
60 LX
70 LXX
80 LXXX
90 XC
100 C
200 CC
300 CCC
400 CD
500 D; IƆ
600 DC; IƆC
700 DCC; IƆCC
800 DCCC; IƆCCC
900 CM; CCIƆ
1 000 M; ↀ; CIƆ
2 000 MM; CIƆCIƆ
3 000 MMM; CIƆCIƆCIƆ
3 999 MMMCMXCIX
4 000 MV; ↀↁ; CIƆIƆƆ
5 000 V ; ↁ; IƆƆ
6 000 V M; ↁↀ; IƆƆCIƆ
7 000 VMM; ↁↀↀ; IƆƆCIƆCIƆ
8 000 V MMM; ↁↀↀↀ; IƆƆCIƆCIƆCIƆ
9 000 IX; ↀↂ; CIƆCCIƆƆ
10 000 X ; ↂ; CCIƆƆ
20 000 XX ; ↂↂ; CCIƆƆCCIƆƆ
30 000 XXX ; ↂↂↂ; CCIƆƆCCIƆƆCCIƆƆ
40 000 XL ; ↂↇ; CCIƆƆIƆƆƆ
50 000 L ; ↇ; IƆƆƆ
60 000 LX ; ↇↂ; IƆƆƆCCIƆƆ
70 000 LXX ; ↇↂↂ; IƆƆƆCCIƆƆCCIƆƆ
80 000 LXXX ; ↇↂↂↂ; IƆƆƆCCIƆƆCCIƆƆCCIƆƆ
90 000 XC ; ↂↈ; CCIƆƆCCCIƆƆƆ
100 000 C ; ↈ; CCCIƆƆƆ
200 000 CC ; ↈↈ; CCCIƆƆƆCCCIƆƆƆ
300 000 CCC; ↈↈↈ; CCCIƆƆƆCCCIƆƆƆCCCIƆƆƆ
400 000 CD ; CCCIƆƆƆIƆƆƆƆ
500 000 D ; IƆƆƆƆ
600 000 DC ; IƆƆƆƆCCCIƆƆƆ
700 000 DCC; IƆƆƆƆCCCIƆƆƆCCCIƆƆƆ
800 000 DCCC ; IƆƆƆƆCCCIƆƆƆCCCIƆƆƆCCCIƆƆƆ
900 000 CM; C I ; CCCIƆƆƆCCCIƆƆƆƆ
1 000 000 M ; JAZ; CCCCIƆƆƆƆ

Če želite pravilno zapisati velika števila z rimskimi številkami, morate najprej napisati število tisočic, nato stotic, nato desetic in nazadnje enot.

V tem primeru se lahko nekatere številke (I, X, C, M) ponovijo, vendar ne več kot trikrat zapored; tako jih je mogoče uporabiti za zapis poljubnega celega števila ne več kot 3999(MMMCMXCIX). V zgodnjih obdobjih so obstajali znaki za označevanje večjih števil - 5000, 10.000, 50.000 in 100.000 (tedaj je največje število po omenjenem pravilu 399.999). Pri pisanju števil v sistemu rimskih številk se lahko manjša številka pojavi na desni strani večje; v tem primeru se ji doda. Na primer, število 283 v rimskem jeziku je zapisano kot CCLXXXIII, to je 100+100+50+30+3=283. Tu se številka, ki predstavlja sto, ponovi dvakrat, številki, ki predstavljata deset oziroma ena, pa se ponovita trikrat.

Primer: številka 1988. Tisoč M, devetsto CM, osem desetic LXXX, osem enot VIII. Zapišimo jih skupaj: MCMLXXXVIII.

Nemalokrat so za poudarjanje številk v besedilu čeznje potegnili črto: LXIV. Včasih je bila črta narisana zgoraj in spodaj: XXXII- še posebej je običajno, da se v ruskem rokopisnem besedilu poudarjajo rimske številke (to se ne uporablja pri stavljenju zaradi tehnične zapletenosti). Za druge avtorje bi črtica nad črto lahko pomenila povečanje vrednosti slike za 1000-krat: V = 5000.

Šele v 19. stoletju so številko »štiri« zapisali kot »IV«, pred tem pa je bila najpogosteje uporabljena številka »IIII«. Vendar je zapis "IV" že mogoče najti v dokumentih rokopisa "Forme of Cury" iz leta 1390. Številčnice ur so v večini primerov tradicionalno uporabljale "IIII" namesto "IV", predvsem iz estetskih razlogov: to črkovanje zagotavlja vizualno simetrijo s številkami "VIII" na nasprotni strani in obrnjeno "IV" je težje brati kot "IIII". Obstaja tudi različica, da IV ni bilo napisano na številčnici, ker je IV prva črka imena boga Jupitra (IVPITER).

Manjšo številko lahko zapišemo levo od večje, potem jo je treba odšteti od večje. V tem primeru je mogoče odšteti samo številke, ki označujejo 1 ali potenco števila 10, in samo dve števki, ki sta v številskem nizu najbližji subtrahendu (to je subtrahend, pomnožen s 5 ali 10), se lahko uporabita kot minuend. Ponovitve manjšega števila niso dovoljene. Tako obstaja le šest možnosti z uporabo "pravila odštevanja":

  • IV = 4
  • IX = 9
  • XL=40
  • XC = 90
  • CD = 400
  • CM = 900

Na primer, število 94 bi bilo XCIV = 100 − 10 + 5 − 1 = 94 - tako imenovano »pravilo odštevanja« (pojavilo se je v pozni antiki, pred tem pa so Rimljani število 4 pisali kot IIII, število 40 pa kot kot XXXX).

Opozoriti je treba, da so druge metode "odštevanja" nesprejemljive; zato je treba številko 99 zapisati kot XCIX, ne pa kot IC. Vendar pa se danes v nekaterih primerih uporablja tudi poenostavljen zapis rimskih številk: na primer v Microsoft Excelu lahko pri pretvorbi arabskih številk v rimske s funkcijo "ROMAN()" uporabite več vrst predstavitev števil, od klasičnih do zelo poenostavljenih (število 499 lahko na primer zapišemo kot CDXCIX, LDVLIV, XDIX, VDIV ali ID). Poenostavitev je, da lahko za zmanjšanje števke levo od nje zapišemo katero koli drugo števko:

  • 999. Tisoč (M), odštej 1 (I), dobimo 999 (IM) namesto CMXCIX. Posledica: 1999 - MIM namesto MCMXCIX
  • 95. Sto (C), odštejte 5 (V), dobite 95 (VC) namesto XCV
  • 1950: tisoč (M), odštejte 50 (L), dobite 950 (LM). Posledica: 1950 - MLM namesto MCML

Velika števila lahko zapišemo tudi z rimskimi številkami. Če želite to narediti, postavite črto nad tiste številke, ki označujejo tisoče, in dvojno črto postavite čez številke, ki označujejo milijone. Na primer, številka 123123 bi izgledala takole:

CXXIII CXXIII

In milijon je kot jaz, vendar ne z eno, ampak z dvema potezama na čelu: jaz

Aplikacija

Regularni izrazi

Regularni izraz za preverjanje rimskih številk je ^(M(0,3))(D?C(0,3)|C)(L?X(0,3)|X)(V?I(0,3) | I)$ V Perlu lahko za iskanje uporabite regularni izraz m/\b((?:M(0,3)?(?:D?C(0,3)|C)?(?:L) Rimske številke v nizu ?X(0,3)|X)?(?:I(0,3)?V?I(0,3)|I)))\b/gs .

Pretvorba

Posebne funkcije se uporabljajo za pretvorbo števil, zapisanih z arabskimi številkami, v rimske številke. Na primer, v ruski različici Microsoft Excela obstaja funkcija za to RIMSKI(argument), v angleški različici Microsoft Excela in v kateri koli različici OpenOffice.org Calc se ta funkcija imenuje RIMSKI(prepir).

Funkcije pretvorbe v JavaScriptu

var arab = ; var roman = ["I","IV","V","IX","X","XL","L","XC","C","CD","D","CM ","M"]; funkcija arabToRoman(število) ( if(!število) return ""; var ret = ""; var i = arab.length - 1; while(število > 0) ( if(število >= arab[i]) ( ret + = roman[i]; število -= arab[i]; ) else ( i--; ) ) return ret; ) funkcija romanToArab(str) ( str = str.toUpperCase(); var ret = 0; var i = arab .length - 1; var pos = 0; while(i >= 0 && pos< str.length) { if(str.substr(pos, roman[i].length) == roman[i]) { ret += arab[i]; pos += roman[i].length; } else { i--; } } return ret; }

Podobne funkcije v C (C89):

#vključi const int arabar = (1, 4, 5, 9, 10, 40, 50, 90, 100, 400, 500, 900, 1000); const char *romanar = ("I", "IV", "V", "IX", "X", "XL", "L", "XC", "C", "CD", "D", "CM", "M"); char *arab2roman(unsigned short int arab) ( statični char roman; const int m = sizeof(arabar)/sizeof(int)-1, arabmax=arabar[m]; const char romanmax=romanar[m]; int i, n ; if(!arab) ( *roman=0; return roman; ) i=0; while(arab>arabmax) ( roman = romanmax; arab -= arabmax; ) n=m; while(arab > 0) ( if( arab >= arabar[n]) ( roman = romanar[n]; if(n&1) roman = romanar[n]; arab -= arabar[n]; ) else n--; ) roman[i]=0; return roman; ) unsigned short int roman2arab(char *roman) ( const int m = sizeof(arabar)/sizeof(int)-1; unsigned short int arab; int len, n, i, pir; len=strlen(roman); arab=0; n=m; i=0; medtem ko(n >= 0 && i< len) { pir=n&1; if(roman[i] == romanar[n] && (!pir || roman == romanar[n])) { arab += arabar[n]; i += 1+pir; } else n--; } return arab; }

vrsta str2 = niz; const Platišča: niz str2 = ("M","CM","D","CD","C","XC","L","XL","X","IX","V" "," IV "," I "," "); Arabščina: niz celih števil = (1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1, 0); var N, NI, I, J: celo število; S: niz; funkcija Arab2Rim(N: celo število) : niz; var S: niz; I: celo število; začetek S:= ""; jaz:=1; medtem ko se N > 0 začne, medtem ko Arab[I]<=N do begin S:= S + Rims[I]; N:= N - Arab[I] end; I:=I+1 end; Arab2Rim:= S end; function Rim2Arab (S:string) : integer; var I, N: integer; begin I:=1; N:= 0; while S<>"" naredite začetek medtem ko so platišča[I] = kopija(S, 1, dolžina(platišča[I])) naredite začetek S:= kopija(S, 1+dolžina(platišča[I]), 255); N:= N + arabski[I] konec; I:=I+1 konec; Rim2Arab:= N konec; begin WriteLn("Prevod iz arabskih v rimske številke. 1999 B_SA"); ( Write("Vnesite število za pretvorbo:"); ReadLn(N);) za NI:= 26 do 46 do WriteLn(NI," = ",Arab2Rim(NI)," obratno ", Rim2Arab(Arab2Rim(NI) ) ); konec.

funkcija Arab2Roman(arab:integer):niz; var i:celo število; d:celo število; arab_str: niz; arab_len:celo število; začetek Rezultat:= ""; arab_str:= IntToStr(arab); arab_len:= Dolžina(arab_str); for i:= 0 to arab_len-1 do begin d:= StrToInt(String(arab_str)); if (d+1) mod 5 = 0 then Result:= Copy("IXCM", 1+i, 1) + Copy("VXLCDM", i*2 + (d+1) div 5, 1) + Result else Rezultat:= Kopiraj("VLD", 1+i, d div 5) + Kopiraj("IIIXXXCCCMMM", 1+i*3, (d mod 5)/2) + Rezultat; konec; konec;

Posebna značilnost tega algoritma je, da ne uporablja nizov (razen če seveda menite, da je niz niz znakov).

10 VNOS "ARABSKA ŠTEVILKA: "; А$ 20 FOR I=0 TO LEN(A$)-1 30 X=VAL(MID$(A$,LEN(A$)-I,1)) 40 IF X=4 ALI X=9 THEN B$= MID$("IXCM",I+1,1)+MID$("VXLCDM",I*2+(X+1)/5,1)+B$ 50 ČE X<4 THEN B$=MID$("IIIXXXCCCMMM",1+I*3,X)+B$ ELSE IF X>4 IN X<9 THEN B$=MID$("VLD",I+1,1)+MID$("IIIXXXCCCMMM",1+I*3,X-5)+B$ 60 NEXT I 70 PRINT "РИМСКОЕ ЧИСЛО: "; B$

string-join(za $num v (1999) return (("","M","MM","MMM")[($num idiv 1000) mod 10+1], ("","C", "CC", "CCC", "CD", "D", "DC", "DCC", "DCCC", "CM") [($num idiv 100) mod 10+1], (""," X","XX","XXX","XL","L","LX","LXX","LXXX","XC")[($num idiv 10) mod 10+1], (" ","I","II","III","IV","V","VI","VII","VIII","IX")[$num mod 10+1]), "" )

uporabite strogo; uporaba opozoril; moj $n = 1999; my $nums = [ ["", qw(I II III IV V VI VII VIII IX) ], ["", qw(X XX XXX XL L LX LXX LXXX XC) ], ["", qw(C CC CCC CD D DC DCC DCCC CM) ], ["", qw(M MM MMM) ] ]; moj $i = 0; moj @res = (); potisnite @res, ($nums->[$i++][ ($n % 10, $n = int($n / 10)) ]) za 0 .. 3; natisni obratno @res;

import java.util.*; javni razred IntegerConverter ( javni statični niz intToRoman(int število) ( če (število >= 4000 || število<= 0) return null; StringBuilder result = new StringBuilder(); Iteratoriterator = units.descendingKeySet().iterator(); while (iterator.hasNext()) ( Integer key = iterator.next(); while (number >= key) ( number -= key; result.append(units.get(key)); ) ) return result.toString( ); ) zasebni statični končni NavigableMap enote; statični(NavigableMap initMap = nov TreeMap (); initMap.put(1000, "M"); initMap.put(900, "CM"); initMap.put(500, "D"); initMap.put(400, "CD"); initMap.put(100, "C"); initMap.put(90, "XC"); initMap.put(50, "L"); initMap.put(40, "XL"); initMap.put(10, "X"); initMap.put(9, "IX"); initMap.put(5, "V"); initMap.put(4, "IV"); initMap.put(1, "I"); enote = Zbirke.unmodifiableNavigableMap(initMap); ) )

///

/// Razred je zasnovan za pretvorbo arabskih številk v rimske številke in obratno /// /// /// Razred na začetku vsebuje abecedo rimskih številk, ki lahko definira arabske številke od 1 do 39999 /// Če želite razširiti obseg, lahko določite dodatne zapise za rimske številke z uporabo polja /// Osnovne rimske številke javni statični razred RomanNumber ( /// /// Abeceda osnovnih rimskih številk /// Abeceda je zgrajena v obliki slovarja. Slovarski ključ je arabska številka (int), vrednost je ustrezna /// rimska številka (niz) /// /// /// Vsebuje rimski zapis za arabske številke 1*,4*,5*,9* - kjer "*" predstavlja 0...N ničel /// Ko je ustvarjen, vsebuje oznako števil od 1 do 10000 (I...ↂ).Ker se v rimski številki simbol ena ne more /// pojaviti več kot trikrat, je na začetku možno pretvoriti števila od 1 do 39999 v rimski format. /// Če želite imeti možnost dela z velikim številom rimskih številk, dodajte dodatne zapise na seznam ///, začenši s 40000, ne da bi preskočili elemente 1*,4*,5*,9*. /// javni statični razvrščeni seznam BasicRomanNumbers ( get; set; ) static RomanNumber() ( BasicRomanNumbers = new SortedList (17); OsnovnaRimskaŠtevilka.Dodaj(1, "I"); OsnovnaRimskaŠtevilka.Dodaj(4, "IV"); OsnovnaRimskaŠtevilka.Dodaj(5, "V"); OsnovnaRimskaŠtevilka.Dodaj(9, "IX"); OsnovnaRimskaŠtevilka.Dodaj(10, "X"); Osnovne rimske številke.Dodaj(40, "XL"); OsnovnaRimskaŠtevilka.Dodaj(50, "L"); Osnovne rimske številke.Add(90, "XC"); OsnovnaRimskaŠtevilka.Dodaj(100, "C"); BasicRomanNumbers.Add(400, "CD"); OsnovnaRimskaŠtevilka.Dodaj(500, "D"); Osnovne rimske številke.Dodaj(900, "CM"); OsnovnaRimskaŠtevilka.Dodaj(1000, "M"); Osnovne rimske številke.Dodaj(4000, "Mↁ"); OsnovnaRimskaŠtevilka.Dodaj(5000, "ↁ"); OsnovnaRimskaŠtevilka.Dodaj(9000, "Mↂ"); OsnovnaRimskaŠtevilka.Dodaj(10000, "ↂ"); ) /// /// Izračuna največjo možno rimsko številko za trenutno abecedo rimskih številk. /// /// Največja možna rimska številka public static uint MaximumRomanNumber() ( int lastNumber = BasicRomanNumbers.Keys.Last(); int numberWithoutZeros = int.Parse(lastNumber.ToString().Replace("0","\0")); int preliminary=0; switch (numberWithoutZeros) ( case 1: preliminary = lastNumber * 4 - 1; break; case 4: case 9: preliminary = lastNumber; break; case 5: preliminary = lastNumber + lastNumber / 5 * 3; break; default: break; ) return uint.Parse(preliminary.ToString().Replace("0", "9"));; ) /// /// Pretvori celo število v rimsko številko /// /// Arabsko število, ki se pretvori v rimski zapis /// Ustvarjeno, ko je kot parameter posredovano število, ki je enako "0" /// ali število, ki je večje od največje rimske številke. /// Niz, ki predstavlja rimsko številko public static string ArabicRoman(this int numberArab) ( StringBuilder numberRoman = new StringBuilder(); //Izključi znak "-" iz arabske številke in naj bo prvi znak rimske številke if (numberArab< 0) { числоРимское.Append("-"); числоАраб = -числоАраб; } if (числоАраб == 0) throw new ArgumentOutOfRangeException("числоАраб", числоАраб, "Недопустимое значение аргумента: римские числа не могут быть равными\"0\""); else if (числоАраб >MaximumRomanNumber()) throw new ArgumentOutOfRangeException("numberArab", numberArab, string.Format("Neveljavna vrednost argumenta: ni mogoče določiti rimske številke, večje od (0)", MaximumRomanNumber())); //Arabsko številko razčlenimo na rimske številke, ki jih sestavljajo, in jih združimo v eno vrstico var neededBasicRomanNumbers = from to in BasicRomanNumbers.Keys where to<= числоАраб orderby к descending select к; foreach (int тек in необходимыеБазовыеРимскиеЧисла) { while ((числоАраб / тек) >= 1) ( številoArab -= trenutno; številoRoman.Append(BaseRomanNumbers[trenutno]); ) ) vrni številoRoman.ToString(); ) /// /// Pretvori rimske številke v arabske /// /// Rimsko število, ki se pretvori v vrsto int /// Ustvari se, ko je kot parameter posredovana nerimska številka /// Celo število, ki predstavlja arabski zapis rimske številke public static int RomanVArabic(ta niz rimsko število) ( int arabsko število = 0; sbyte negative = 1; niz Rim = rimsko število.Trim(); if (rimsko == "-") ( negativno = -1; Rim = rimsko .Substring( 1); ) Predloga StringBuilder RomanNumber = new StringBuilder(); foreach (int to in BasicRomanNumbers.Keys) ( int index = BasicRomanNumbers.Keys.IndexOf(k); string quantifier="?"; if (index == 0 || ( indeks % 4) == 0) kvantifikator="(0,3)"; templateRomanNumber.Insert(0, string.Format("(?<{0}>((1))(2))?", k.ToString(), BasicRomanNumbers[k], kvantifikator)); ) //Prezri velike in male črke + ujemanje se mora začeti od začetka niza RomanNumber vzorec.Insert(0, " (?i) ^"); //Ujemanje je treba najti na koncu niza RomanNumber template.Append("$"); //Poenostavljeno preverjanje. Ne preverja napak, kot je IVII, če (!Regex.IsMatch( Roman, RomanNumber template.ToString())) throw new FormatException(string.Format("Besedilo \"(0)\" ni rimska številka", numberRoman)); Število ujemanja = Regex.Match(Roman, RomanNumber vzorec. ToString()); foreach (int to in BasicRomanNumbers.Keys) ( numberArab += number.Groups[to.ToString()].Length / BasicRomanNumbers[to].Length * to; ) return numberArab * negative; ) )

Napišite oceno o članku "Rimske številke"

Opombe

Poglej tudi

Tehnična opomba: Zaradi tehničnih omejitev nekateri brskalniki morda ne bodo prikazali posebnih znakov, uporabljenih v tem članku. Ti znaki so lahko prikazani kot polja, vprašaji ali drugi nesmiselni znaki, odvisno od vašega spletnega brskalnika, operacijskega sistema in nameščenih pisav. Tudi če je vaš brskalnik sposoben tolmačiti UTF-8 in ste namestili pisavo, ki podpira široko paleto Unicode, kot je Code2000, Arial Unicode MS, Lucida Sans Unicode ali katero od brezplačnih pisav Unicode, boste morda morali uporabiti drug brskalnik, ker se zmogljivosti brskalnika razlikujejo, to področje se pogosto razlikuje.

Odlomek, ki označuje rimske številke

»Pogosto pomislim, morda je to greh,« je rekla princesa, »in pogosto pomislim: grof Kiril Vladimirovič Bezuhoj živi sam ... to je ogromno bogastvo ... in za kaj živi? Življenje je zanj breme, a Borya šele začenja živeti.
»Verjetno bo nekaj pustil za Borisa,« je rekla grofica.
- Bog ve, chere amie! [dragi prijatelj!] Ti bogataši in plemiči so tako sebični. Ampak vseeno bom šla zdaj z Borisom do njega in mu naravnost povedala, kaj se dogaja. Naj si mislijo o meni, kar hočejo, res mi je vseeno, ko je od tega odvisna usoda mojega sina. - Princesa je vstala. - Zdaj je ura dve in ob štirih imate kosilo. Imel bom čas, da grem.
In s tehnikami sanktpeterburške poslovne dame, ki zna izkoristiti čas, je Anna Mikhailovna poslala po svojega sina in odšla z njim v vežo.
»Zbogom, duša moja,« je rekla grofici, ki jo je pospremila do vrat, »zaželi mi uspeh,« je šepetaje dodala njen sin.
– Ali ste na obisku pri grofu Kirilu Vladimiroviču, ma chere? - je rekel grof iz jedilnice in šel tudi ven na hodnik. - Če se bo počutil bolje, povabi Pierra k meni na večerjo. Navsezadnje me je obiskal in plesal z otroki. Vsekakor me pokliči, ma chere. No, poglejmo, kako se Taras danes razlikuje. Pravi, da grof Orlov še nikoli ni imel take večerje, kot jo bomo imeli mi.

»Mon cher Boris, [Dragi Boris,« je rekla princesa Ana Mihajlovna svojemu sinu, ko je kočija grofice Rostove, v kateri sta sedela, pripeljala po slamnati ulici in zapeljala na široko dvorišče grofa Kirila Vladimiroviča Bezukhija. »Mon cher Boris,« je rekla mati, potegnila roko izpod starega plašča in jo s plašnim in ljubečim gibom položila na sinovo roko, »bodi nežen, bodi pozoren.« Grof Kiril Vladimirovič je še vedno za vas Boter in vaša nadaljnja usoda je odvisna od tega. Zapomni si to, mon cher, bodi tako sladek, kot znaš biti...
»Če bi vedel, da bo iz tega nastalo kaj drugega kot ponižanje ...« je hladno odgovoril sin. "Toda obljubil sem ti in to delam zate."
Kljub temu, da je na vhodu stala nečija kočija, se je vratar ob pogledu na mamo in sina (ki sta, ne da bi se naročila prijavila, direktno podala v stekleno vežo med dvema vrstama kipov v nišah), pomenljivo ozrl na starega ogrinjalo, vprašal, koga hočejo, princese ali grofa, in ko je zvedel, da je grof, rekel, da je zdaj njihovim gospodstvom na slabšem in njihovo gospodstvo ne sprejema nikogar.
"Lahko greva," je rekel sin v francoščini.
- Mon ami! [Moj prijatelj!] - je rekla mati s prosečim glasom in se spet dotaknila sinove roke, kot da bi ga ta dotik lahko pomiril ali vznemiril.
Boris je utihnil in, ne da bi slekel plašč, vprašujoče pogledal mamo.
»Draga,« je z nežnim glasom rekla Ana Mihajlovna in se obrnila k vratarju, »vem, da je grof Kiril Vladimirovič zelo bolan ... zato sem prišla ... sorodnica sem ... ne bom se trudila. ti, draga... Toda princa Vasilija Sergejeviča moram samo videti: ker stoji tukaj. Poročaj, prosim.
Vratar je čemerno potegnil vrvico navzgor in se obrnil stran.
"Princesa Drubetskaya knezu Vasiliju Sergejeviču," je zavpil natakarju v nogavicah, čevljih in fraku, ki je pritekel od zgoraj in gledal izpod roba stopnic.
Mati je zgladila gube svoje barvane svilene obleke, pogledala v trdno beneško ogledalo v steni in v ponošenih čevljih hitro stopila po preprogi na stopnišču.
»Mon cher, voue m"avez promis, [Prijatelj, obljubil si mi," se je spet obrnila k Sinu in ga vznemirila z dotikom roke.
Sin ji je s spuščenimi očmi mirno sledil.
Vstopili so v dvorano, iz katere so ena vrata vodila v dvorane, dodeljene princu Vasiliju.
Medtem ko sta mati in sin odšla na sredino sobe, nameravala vprašati za pot starega natakarja, ki je skočil na njun vhod, se je na enih vratih obrnila bronasta kljuka in princ Vasilij v žametnem krznenem plašču z ena zvezda je na domač način prišla ven in pospremila čednega črnolasega moškega. Ta človek je bil slavni peterburški zdravnik Lorrain.
"C"est donc positif? [Torej, je to res?] - je rekel princ.
»Mon prince, »errare humanum est«, mais ... [Princ, človeška narava je, da dela napake.]« je odgovoril zdravnik, milostiv in rekel latinske besede Francoski naglas.
– C"est bien, c"est bien... [V redu, v redu...]
Ko je princ Vasilij opazil Ano Mihajlovno in njenega sina, je zdravnika s priklonom odslovil in se jima tiho, a z vprašujočim pogledom približal. Sin je opazil, kako nenadoma je bila izražena globoka žalost v materinih očeh, in se rahlo nasmehnil.
- Da, v kakšnih žalostnih okoliščinah sva se morala videti, princ ... No, kaj pa naš dragi bolnik? - je rekla, kot da ne bi opazila hladnega, žaljivega pogleda, usmerjenega vanjo.
Princ Vasilij je vprašujoče, do začudenja pogledal njo, nato Borisa. Boris se je vljudno priklonil. Princ Vasilij se je, ne da bi odgovoril na priklon, obrnil k Ani Mihajlovni in na njeno vprašanje odgovoril z gibanjem glave in ustnic, kar je za bolnika pomenilo najslabše upanje.
- res? - je vzkliknila Anna Mikhailovna. - Oh, to je grozno! Strašno je pomisliti ... To je moj sin,« je dodala in pokazala na Borisa. "Sam se ti je želel zahvaliti."
Boris se je spet vljudno priklonil.
- Verjemite, princ, da materinsko srce ne bo nikoli pozabilo, kaj ste storili za nas.
»Vesel sem, da sem lahko naredil nekaj prijetnega za vas, moja draga Ana Mihajlovna,« je rekel princ Vasilij, popravil svoj volan in s svojo gesto in glasom pokazal tukaj, v Moskvi, pred pokroviteljsko Ano Mihajlovno, še večji pomen. kot v Sankt Peterburgu, na večeru Annette Scherer.
"Poskusite dobro služiti in bodite vredni," je dodal in se strogo obrnil k Borisu. - Veseli me ... Ste tukaj na počitnicah? – je narekoval v svojem brezstrastnem tonu.
»Čakam na ukaz, vaša ekscelenca, da grem na novo destinacijo,« je odgovoril Boris, ki ni pokazal ne jeze zaradi prinčevega ostrega tona ne želje po pogovoru, ampak tako mirno in spoštljivo, da je princ pogledal njega pozorno.
- Ali živiš z mamo?
"Živim pri grofici Rostovi," je rekel Boris in spet dodal: "Vaša ekscelenca."
"To je Ilya Rostov, ki se je poročil z Nathalie Shinshino," je rekla Anna Mikhailovna.
»Vem, vem,« je rekel princ Vasilij s svojim monotonim glasom. – Je n"ai jamais pu concevoir, comment Nathalieie s"est decide a epouser cet ours mal – leche l Un personnage completement stupide et ridicule.Et joueur a ce qu"on dit. [Nikoli nisem mogel razumeti, kako se je Natalie odločila, da se oglasi poroči se s tem umazanim medvedom. Povsem neumna in smešna oseba. Pa še igralec, pravijo.]
"Mais tres brave homme, mon prince," je pripomnila Ana Mihajlovna in se ganljivo nasmehnila, kot da bi vedela, da si grof Rostov zasluži takšno mnenje, vendar je prosila, naj se usmilijo ubogega starca. – Kaj pravijo zdravniki? - je vprašala princesa po kratkem molku in spet izrazila veliko žalost na svojem objokanem obrazu.
"Malo upanja je," je rekel princ.
"In res sem se želel še enkrat zahvaliti stricu za vsa njegova dobra dela tako meni kot Boru." C"est son filleuil, [To je njegov krščenec," je dodala s takšnim tonom, kot da bi morala ta novica zelo razveseliti princa Vasilija.
Princ Vasilij je pomislil in se zdrznil. Anna Mikhailovna je spoznala, da se boji, da bi v njej našel tekmeca v volji grofa Bezukhyja. Pohitela ga je pomiriti.
»Če ne bi bilo moje prave ljubezni in predanosti stricu,« je rekla in s posebno samozavestjo in malomarnostjo izgovarjala to besedo: »Poznam njegov značaj, plemenit, neposreden, a ob sebi ima samo princese ... Mlada sta še...« Sklonila je glavo in šepetaje dodala: »Je izpolnil svojo zadnjo dolžnost, princ?« Kako dragocene so te zadnje minute! Konec koncev ne more biti slabše; ga je treba skuhati, če je tako slabo. Ženske, princ,« se je nežno nasmehnila, »vedno znamo povedati te stvari.« Videti ga je treba. Ne glede na to, kako težko mi je bilo, sem se že navadila trpeti.
Princ je očitno razumel in razumel, tako kot na večeru pri Annette Scherer, da se je težko znebiti Ane Mihajlovne.
"Ali ne bi bilo to srečanje težko zanj, tukaj Anna Mikhailovna," je rekel. - Počakajmo do večera, zdravniki so obljubili krizo.
"Ampak v teh trenutkih ne moreš čakati, princ." Pensez, il va du salut de son ame... Ah! c"est terrible, les devoirs d"un chretien ... [Pomislite, gre za rešitev njegove duše! Oh! to je grozno, dolžnost kristjana ...]
Iz notranjih prostorov so se odprla vrata in vstopila je ena od grofovih princes, grofovih nečakinj, z mrkim in hladnim obrazom ter presenetljivo nesorazmerno dolgim ​​pasom z nogami.
Princ Vasilij se je obrnil k njej.
- No, kaj je on?
- Vse enako. In kot želite, ta hrup ... - je rekla princesa in se ozrla okoli Ane Mihajlovne, kot bi bila tujka.
»Ah, chere, je ne vous reconnaissais pas, [Ah, dragi, nisem te prepoznala,« je z veselim nasmehom rekla Ana Mihajlovna in z lahkotnim pohodom stopila do grofove nečakinje. »Je viens d"arriver et je suis a vous pour vous aider a soigner mon oncle. J'imagine, combien vous avez souffert, [Prišla sem, da ti pomagam slediti stricu. Lahko si predstavljam, kako si trpel," je dodala z sodelovanje zavijanje z očmi.
Princesa ni odgovorila ničesar, niti se ni nasmehnila in je takoj odšla. Anna Mikhailovna je slekla rokavice in v položaju, ki ga je osvojila, sedla na stol in povabila princa Vasilija, naj sede poleg nje.
- Boris! «- je rekla sinu in se nasmehnila: »Jaz bom šla h grofu, k stricu, ti pa medtem pojdi k Pierru, mon ami, in ne pozabi mu dati vabila Rostovih. ” Pokličejo ga na večerjo. Mislim, da ne bo šel? - se je obrnila k princu.
"Nasprotno," je rekel princ, očitno nerazpoložen. – Je serais tres content si vous me debarrassez de ce jeune homme... [Zelo bi bil vesel, če bi me rešil pred tem mladeničem...] Sedi tukaj. Grof ni nikoli vprašal po njem.
Skomignil je z rameni. Natakar je mladeniča odpeljal navzdol in po drugem stopnišču do Petra Kiriloviča.

Pierre nikoli ni imel časa, da bi si izbral kariero v Sankt Peterburgu in je bil dejansko izgnan v Moskvo zaradi nemirov. Zgodba, ki jo je povedal grof Rostov, je bila resnična. Pierre je sodeloval pri vezavi policista z medvedom. Prišel je pred nekaj dnevi in ​​ostal, kot vedno, v očetovi hiši. Čeprav je domneval, da je njegova zgodba znana že v Moskvi in ​​da bodo dame, ki so obkrožale očeta in ki so bile vedno neprijazne do njega, izkoristile to priložnost, da bi razdražile grofa, se je vseeno lotil očetove polovice na dan svojega prihod. Ko je vstopil v salon, običajno bivališče princes, je pozdravil dame, ki so sedele pri vezenini in za knjigo, ki jo je ena od njih brala na glas. Bili so trije. Najstarejša, čista, z dolgim ​​pasom, stroga deklica, tista, ki je prišla k Ani Mihajlovni, je brala; mlajše, obe rudeče in lepe, ki so se med seboj razlikovale le po tem, da je imela ena madež nad ustnico, zaradi česar je bila zelo lepa, so šivale v obroč. Pierra so pozdravili, kot bi bil mrtev ali obolel. Najstarejša kneginja je prekinila svoje branje in ga molče pogledala s prestrašenimi očmi; najmlajši, brez madeža, je prevzel popolnoma enak izraz; najmanjša, z madežem, veselega in hihitajočega značaja, sklonjena nad vezenino, da bi prikrila nasmeh, ki ga je verjetno povzročil prihajajoči prizor, katerega smešnost je slutila. Pulila si je lase in se sklonila, kot bi prebirala vzorce in se komaj zadrževala, da bi se zasmejala.
"Bonjour, ma cousine," je rekel Pierre. – Vous ne me hesonnaissez pas? [Pozdravljeni, bratranec. Ali me ne prepoznaš?]
"Preveč dobro te prepoznam, predobro."
– Kako je grofovo zdravje? Ga lahko vidim? – je kot vedno nerodno vprašal Pierre, a ne v zadregi.
– Grof trpi tako fizično kot moralno in zdi se, da ste vi poskrbeli, da mu povzročite še več moralnega trpljenja.
-Lahko vidim štetje? - je ponovil Pierre.
- Hm!.. Če ga hočeš ubiti, ga popolnoma ubij, potem boš videl. Olga, pojdi pogledat, če je juha pripravljena za tvojega strica, kmalu bo čas,« je dodala in pokazala Pierru, da sta zaposlena in zaposlena s pomirjanjem očeta, medtem ko je bil on očitno zaposlen s tem, da ga je le razburil.
Olga je odšla. Pierre je vstal, pogledal sestre in se priklonil ter rekel:
- Torej grem k sebi. Ko bo možno, povej.
Šel je ven in za njim se je zaslišal zvonki, a tihi smeh sestre s krtom.
Naslednji dan je prišel princ Vasilij in se nastanil v grofovi hiši. Poklical je Pierra in mu rekel:
– Mon cher, si vous vous conduisez ici, comme a Petersbourg, vous finirez tres mal; c"est tout ce que je vous dis. [Draga moja, če se boš tukaj obnašal kot v Sankt Peterburgu, boš zelo slabo končal; nimam ti več kaj povedati.] Grof je zelo, zelo bolan: ti ne sploh ga ni treba videti.
Od takrat Pierra niso več motili in ves dan je preživel sam zgoraj v svoji sobi.
Medtem ko je Boris vstopil v svojo sobo, se je Pierre sprehajal po svoji sobi, se občasno ustavljal v kotih, grozeče kazal proti steni, kot bi z mečem prebadal nevidnega sovražnika, strogo gledal čez očala in nato spet hodil, izgovarjajoč nejasne besede, tresoča se ramena in iztegnjene roke.
- L "Angleterre a vecu, [z Anglijo je konec," je rekel, se namrščil in s prstom pokazal na nekoga. - M. Pitt comme traitre a la nation et au droit des gens est condamiene a... [Pitt, kot izdajalec narodu in ljudem po pravici je obsojen na ...] - Ni imel časa dokončati svojega stavka o Pittu, saj si je v tistem trenutku predstavljal sebe kot samega Napoleona in je skupaj s svojim junakom že naredil nevaren prehod skozi Pas de Calais in osvojil London - ko je zagledal mladega, vitkega in čednega častnika, da je vstopil vanj, se je ustavil Pierre je Borisa zapustil kot štirinajstletnega fanta in se ga zagotovo ni spomnil, a kljub temu v svoji značilni hitri in prisrčno ga je prijel za roko in se prijazno nasmehnil.
- Se me spomniš? – je mirno, s prijetnim nasmehom rekel Boris. »Z mamo sem prišla k grofu, a zdi se, da ni čisto zdrav.
- Da, videti je slabo. "Vsi ga skrbijo," je odgovoril Pierre in se poskušal spomniti, kdo je bil ta mladenič.
Boris je čutil, da ga Pierre ne prepozna, vendar se mu ni zdelo potrebno identificirati in ga je, ne da bi doživel najmanjšo zadrego, pogledal naravnost v oči.
"Grof Rostov vas je prosil, da pridete danes k njemu na večerjo," je rekel po precej dolgi in za Pierra neprijetni tišini.
- A! Grof Rostov! – je veselo spregovoril Pierre. - Torej si njegov sin, Ilya. Kot si lahko predstavljate, vas sprva nisem prepoznal. Spomnite se, kako smo z mano Jacquot ... [Madame Jacquot ...] pred davnimi časi šli v Vorobyovy Gory.
»Motiš se,« je počasi rekel Boris z drznim in nekoliko posmehljivim nasmehom. – Sem Boris, sin princese Anne Mikhailovne Drubetskaya. Rostov oče se imenuje Ilya, njegov sin pa Nikolaj. In jaz nisem poznal nobenega Jacquota.
Pierre je mahal z rokami in glavo, kot bi ga napadli komarji ali čebele.
- Oh, kaj je to! Vse sem pomešal. V Moskvi je toliko sorodnikov! Ali si Boris...ja. No, ti in jaz sva se strinjala. No, kaj menite o odpravi v Boulogne? Navsezadnje se bo Britancem slabo godilo, če bo prekop prečkal le Napoleon? Mislim, da je odprava zelo možna. Villeneuve ne bi naredil napake!
Boris o boulognski odpravi ni vedel ničesar, časopisov ni bral, za Villeneuva pa je slišal prvič.
»Tu v Moskvi smo bolj zaposleni z večerjami in čenči kot s politiko,« je rekel v svojem mirnem, posmehljivem tonu. – Ničesar ne vem o tem in nič ne razmišljam o tem. Moskva je najbolj zaposlena s trači,« je nadaljeval. "Zdaj se pogovarjajo o tebi in grofu."
Pierre se je nasmehnil s svojim prijaznim nasmehom, kot da bi se bal za svojega sogovornika, da ne bi rekel nekaj, za kar bi se pokesal. Toda Boris je govoril razločno, jasno in suho ter gledal Pierru naravnost v oči.
"Moskva nima nič boljšega za početi kot ogovarjati," je nadaljeval. »Vsi se ukvarjajo s tem, komu bo grof zapustil svoje bogastvo, čeprav nas bo morda vse preživel, kar si iskreno želim ...
"Da, vse to je zelo težko," je pobral Pierre, "zelo težko." »Pierre se je še vedno bal, da se bo ta policist pomotoma zapletel v neprijeten pogovor zase.
»In verjetno se vam zdi,« je rekel Boris in rahlo zardel, a ne da bi spremenil glas ali držo, »se vam mora zdeti, da se vsi ukvarjajo samo s tem, da bi kaj dobili od bogataša.«
"Tako je," je pomislil Pierre.
"Toda v izogib nesporazumom vam želim samo povedati, da se boste zelo zmotili, če boste mene in mojo mamo prišteli med te ljudi." Zelo smo revni, a vsaj jaz govorim zase: ravno zato, ker je vaš oče bogat, se nimam za njegovega sorodnika in ne jaz ne moja mati ne bova nikoli ničesar zahtevala ali sprejela od njega.
Pierre dolgo ni mogel razumeti, ko pa je razumel, je skočil s sedežne garniture, z zanj značilno hitrostjo in nerodnostjo zgrabil Borisovo roko od spodaj in, zardel veliko bolj kot Boris, začel govoriti z mešanim občutkom sramu in sitnost.
- To je čudno! Res ... in kdo bi si mislil ... dobro vem ...
Toda Boris ga je spet prekinil:
"Vesel sem, da sem vse izrazil." Mogoče ti je neprijetno, oprosti,« je rekel in pomiril Pierra, namesto da bi ga on pomiril, »vendar upam, da te nisem užalil.« Imam pravilo, da vse povem neposredno ... Kako naj to prenesem? Boste prišli na večerjo z Rostovimi?
In Boris, ki se je očitno razbremenil težke dolžnosti, ko se je sam rešil iz neprijetne situacije in vanjo spravil nekoga drugega, je spet postal povsem prijeten.
"Ne, poslušaj," je rekel Pierre in se umiril. – Ste neverjetna oseba. Kar ste pravkar rekli, je zelo dobro, zelo dobro. Seveda me ne poznaš. Tako dolgo se nisva videla ... odkar sva bila otroka ... Lahko domnevaš v meni ... Razumem te, zelo te razumem. Tega ne bi naredila, ne bi imela poguma, a je čudovito. Zelo sem vesel, da sem te spoznal. Čudno je,« je dodal po premoru in se nasmejal, »kaj si domneval v meni!« - nasmejal se je. - No, kaj pa? Bolje te bomo spoznali. prosim – se je rokoval z Borisom. – Veste, nikoli nisem bil pri grofu. Ni me poklical ... Žal mi je zanj kot osebo ... Toda kaj storiti?
– In mislite, da bo imel Napoleon čas za prevoz vojske? – nasmejano je vprašal Boris.
Pierre je spoznal, da želi Boris spremeniti pogovor, in, ko se je strinjal z njim, je začel orisati prednosti in slabosti podjetja Boulogne.
Lakaj je prišel povabit Borisa k princesi. Princesa je odhajala. Pierre je obljubil, da pride na večerjo, da bi se zbližal z Borisom, mu stisnil roko in ga ljubeče pogledal v oči skozi očala ... Ko je odšel, je Pierre dolgo hodil po sobi in ni več prebadal nevidnega sovražnika s svojim mečem, a nasmejan ob spominu na tega dragega, pametnega in močnega mladeniča.
Kot se zgodi v rani mladosti in zlasti v osamljenem položaju, je do tega mladeniča čutil nerazumno nežnost in si obljubil, da se bo z njim spoprijateljil.
Princ Vasilij je pospremil princeso. Princesa je držala robec na očeh in njen obraz je bil v solzah.
- Grozno je! grozno! - rekla je, - a ne glede na to, kaj me stane, bom opravila svojo dolžnost. Pridem čez noč. Ne more biti tako zapuščen. Vsaka minuta je dragocena. Ne razumem, zakaj princeske odlašajo. Morda mi bo Bog pomagal najti način, da ga pripravim!... Adieu, mon prince, que le bon Dieu vous soutienne... [Zbogom, princ, naj te Bog podpira.]
»Adieu, ma bonne, [Zbogom, draga moja,« je odgovoril princ Vasilij in se obrnil stran od nje.
»Oh, v groznem položaju je,« je rekla mati sinu, ko sta se vrnila v kočijo. "Komaj koga prepozna."
"Ne razumem, mama, kakšen je njegov odnos s Pierrom?" - je vprašal sin.
»Oporoka bo povedala vse, prijatelj; Naša usoda je odvisna od njega ...
- Zakaj pa misliš, da nam bo karkoli zapustil?
- Ah, prijatelj moj! On je tako bogat, mi pa tako revni!
"No, to ni dovolj dober razlog, mamica."
- O moj bog! Moj Bog! Kako slab je! - je vzkliknila mati.

Ko je Anna Mikhailovna odšla s sinom na obisk k grofu Kirilu Vladimiroviču Bezukhiju, je grofica Rostova dolgo časa sedela sama in si na oči položila robec. Končno je poklicala.
»Kaj govoriš, draga,« je jezno rekla deklici, ki se je prisilila, da čaka nekaj minut. – Nočeš služiti ali kaj? Torej bom našel prostor zate.
Grofica je bila vznemirjena zaradi žalosti in ponižujoče revščine svoje prijateljice, zato je bila nerazpoložena, kar je vedno izražala tako, da je služkinjo klicala »draga« in »ti«.
"Ti si kriv," je rekla služkinja.
- Prosite grofa, naj pride k meni.
Grof se je, kot vedno, približal svoji ženi z nekoliko krivim pogledom.
- No, grofica! Kakšen saute au madere [sauté na Madeiri] bo iz ruševca, ma chere! Poskusil sem; Nisem zaman dal tisoč rubljev za Tarasko. Stroški!
Usedel se je k svoji ženi, pogumno oprl roke na kolena in kuštral sive lase.
- Kaj naročite, grofica?
- Torej, prijatelj moj, kaj imaš tukaj umazanega? - je rekla in pokazala na telovnik. "To je sote, tako je," je dodala in se nasmehnila. - To je to, grof: rabim denar.
Njen obraz je postal žalosten.
- Oh, grofica! ...
In grof se je začel razburjati in vzeti denarnico.
"Potrebujem veliko, grof, potrebujem petsto rubljev."
In ona, ko je vzela kambrični robec, je z njim podrgnila možev telovnik.
- Zdaj. Hej, kdo je tam? - je zavpil z glasom, ki ga kričijo le ljudje, ko so prepričani, da bodo tisti, ki jih kličejo, brezglavo planili na njihov klic. - Pošlji Mitenko k meni!
Mitenka, tisti plemeniti sin, ki ga je vzgojil grof in ki je zdaj vodil vse njegove posle, je stopil s tihimi koraki v sobo.



© 2023 rupeek.ru -- Psihologija in razvoj. Osnovna šola. Višji razredi