Svi mi koristimo rimske brojeve - njima označavamo brojeve stoljeća ili mjeseci u godini. Rimski brojevi nalaze se na brojčanicima satova, uključujući zvona na Spaskoj kuli. Koristimo ih, ali ne znamo puno o njima.

Kako rade rimski brojevi?

Rimski sustav brojanja u svom moderna verzija sastoji se od sljedećih osnovnih znakova:

ja 1
V 5
X 10
L 50
C 100
D 500
M 1000

Za pamćenje brojeva koji su neobični za nas koji koristimo arapski sustav, postoji nekoliko posebnih mnemoničkih fraza na ruskom i engleskom:
Dajemo sočne limune, to je dovoljno
Dajemo savjete samo dobro obrazovanim pojedincima
Cijenim ksilofone kao krave koje kopaju mlijeko

Sustav međusobnog rasporeda tih brojeva je sljedeći: brojevi do uključivo tri formiraju se zbrajanjem jedinica (II, III) - ponavljanje bilo kojeg broja četiri puta je zabranjeno. Za formiranje brojeva većih od tri, veće i manje znamenke se zbrajaju ili oduzimaju, za oduzimanje manja znamenka se stavlja ispred veće, za zbrajanje - iza (4 = IV), ista logika vrijedi i za ostale znamenke (90 = XC ). Redoslijed tisuća, stotina, desetica i jedinica isti je na koji smo navikli.

Važno je da se nijedan broj ne ponavlja više od tri puta, tako da je najduži broj do tisuću 888 = DCCCLXXXVIII (500+100+100+100+50+10+10+10+5+1+1+ 1).

Alternativne opcije

Zabrana četvrtog korištenja istog broja zaredom počela se pojavljivati ​​tek u 19. stoljeću. Stoga se u starim tekstovima mogu vidjeti varijante IIII i VIII umjesto IV i IX, pa čak i IIII ili XXXXXX umjesto V i LX. Ostaci ovog zapisa mogu se vidjeti na satu, gdje se četiri često označava s četiri jedinice. U starim knjigama također su česti slučajevi dvostrukih oduzimanja - XIIX ili IIXX umjesto standardnog XVIII.

Također u srednjem vijeku pojavio se novi rimski broj - nula, koji se označavao slovom N (od latinskog nulla, nula). Veliki brojevi označavani su posebnim znakovima: 1000 - ↀ (ili C|Ɔ), 5000 - ↁ (ili |Ɔ), 10000 - ↂ (ili CC|ƆƆ). Milijuni se dobivaju duplim podcrtavanjem standardnih brojeva. Razlomci su ispisivani i rimskim brojevima: unce su označavane simbolima - 1/12, polovica je označavana simbolom S, a sve veće od 6/12 označavano je dodatkom: S = 10\12. Druga opcija je S::.

Podrijetlo

Na u trenutku Ne postoji jedinstvena teorija o podrijetlu rimskih brojeva. Jedna od najpopularnijih hipoteza je da su etruščansko-rimski brojevi nastali iz sustava brojanja koji koristi urezane crte umjesto brojeva.

Dakle, broj "I" nije latinsko ili starije slovo "i", već urez koji podsjeća na oblik ovog slova. Svaki peti zarez bio je označen kosom - V, a deseti je bio prekrižen - X. Broj 10 u ovom brojanju izgledao je ovako: IIIIΛIIIIX.

Upravo zahvaljujući ovakvom zapisu brojeva u nizu dugujemo poseban sustav zbrajanja rimskih brojeva: s vremenom se zapis broja 8 (IIIIΛIII) mogao svesti na ΛIII, što uvjerljivo dokazuje kako je rimski sustav brojanja dobio svoje specifičnost. Postupno su zarezi prerasli u grafičke simbole I, V i X te se osamostalili. Kasnije su ih počeli poistovjećivati ​​s rimskim slovima - budući da su im po izgledu bili slični.

Alternativna teorija pripada Alfredu Cooperu, koji je predložio promatranje rimskog sustava brojanja s fiziološke točke gledišta. Cooper vjeruje da je I, II, III, IIII grafički prikaz broja prstiju desne ruke koje je trgovac izbacio prilikom pozivanja cijene. V je ispruženi palac, koji zajedno s dlanom čini lik sličan slovu V.

Zato rimski brojevi zbrajaju ne samo jedinice, već ih zbrajaju i s peticama - VI, VII itd. - ovo je palac zabačen unazad, a ostali prsti ruke ispruženi. Broj 10 izražavao se križanjem ruku ili prstiju, otuda i simbol X. Druga mogućnost bila je jednostavno udvostručiti broj V i dobiti X. Veliki brojevi prenosili su se lijevim dlanom koji je brojao desetice. Tako su postupno znakovi drevnog brojanja prstiju postali piktogrami, koji su se zatim počeli poistovjećivati ​​sa slovima latinske abecede.

Moderna primjena

Danas su u Rusiji rimski brojevi potrebni prije svega za bilježenje broja stoljeća ili tisućljeća. Pogodno je staviti rimske brojeve pored arapskih - ako napišete stoljeće rimskim brojevima, a zatim godinu arapskim, tada vam oči neće biti zaslijepljene obiljem identičnih znakova. Rimski brojevi imaju određenu konotaciju arhaizma. Također se tradicionalno koriste za označavanje serijskog broja monarha (Petar I), broja sveska publikacije s više svezaka, a ponekad i poglavlja knjige. Rimski brojevi također se koriste u antiknim brojčanicima satova. Važni brojevi, poput godine Olimpijade ili broja znanstvenog zakona, također se mogu zabilježiti rimskim brojevima: Drugi svjetski rat, Euklidov V postulat.

U različitim se zemljama rimski brojevi koriste malo drugačije: u SSSR-u je bilo uobičajeno označavati mjesec u godini pomoću njih (1.XI.65). Na Zapadu se broj godine često ispisuje rimskim brojevima u špici filmova ili na pročeljima zgrada.

U dijelovima Europe, posebno u Litvi, često možete pronaći dane u tjednu označene rimskim brojevima (I – ponedjeljak i tako dalje). U Nizozemskoj se rimski brojevi ponekad koriste za označavanje katova. A u Italiji obilježavaju dionice od 100 metara rute, istodobno označavajući svaki kilometar arapskim brojevima.

U Rusiji, kada pišete rukom, uobičajeno je istovremeno naglašavati rimske brojeve ispod i iznad. Međutim, često je u drugim zemljama podvlaka značila povećanje velikih i malih slova broja za 1000 puta (ili 10 000 puta s dvostrukom podvlakom).

Postoji uobičajena zabluda da moderne zapadnjačke veličine odjeće imaju neke veze s rimskim brojevima. Zapravo, oznake su XXL, S, M, L itd. nemaju veze s njima: to su kratice engleske riječi eXtra (vrlo), Small (mali), Large (veliki).

Sat s zvonom Spasskaya Tower s rimskim brojevima na brojčaniku Brojčani sustavi u kulturi indoarapskiistočnoazijskiAbecednoostalo Položajni Mješoviti sustavi Nepozicijski
arapski
Tamil
burmanski
kmerski
laoski
mongolski
tajlandski
kineski
japanski
Suzhou
korejski
vijetnamski
Štapići za brojanje
Abjadia
armenski
Aryabhata
ćirilica
grčki
etiopski
židovska
Akshara-sankhya
babilonski
Egipćanin
etrurski
rimski
Dunav
Potkrovlje
Kipu
majanski
egejski
Simboli KPPU
2, 3, 4, 5, 6, 8, 10, 12, 16, 20, 60
Nega-pozicijski
Simetrično
Fibonacci
Jedinica (unarna)

rimski brojevi- brojevi koje su koristili stari Rimljani u svom nepozicijskom brojevnom sustavu.

Prirodni brojevi se zapisuju ponavljanjem tih brojeva. Štoviše, ako je veći broj ispred manjeg, tada se oni zbrajaju (princip zbrajanja), ali ako je manji broj ispred većeg, tada se manji oduzima od većeg ( princip oduzimanja). Posljednje pravilo vrijedi samo za izbjegavanje ponavljanja istog broja četiri puta.

Rimski brojevi pojavili su se 500 godina prije Krista među Etruščanima, koji su možda posudili neke od brojeva od proto-Kelta.

rimski brojevi

Oznaka broja
1 ja
2 II
3 III
4 IV., do 19. stoljeća - III
5 V
6 VI
7 VII
8 VIII (ponekad - IIX)
9 IX (ponekad 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ƆƆƆCCCCIƆƆƆƆ
1 000 000 M; ja; CCCCIƆƆƆƆ

ne više od tri puta zaredom ne više od 3999 izvor nije naveden 2369 dana

XXXII- posebno je uobičajeno isticati rimske brojeve u rukopisnom tekstu na ruskom (u tipografiji se to ne koristi zbog tehnička složenost). Za druge autore crtica iznad može označavati povećanje vrijednosti figure za 1000 puta: V = 5000.

Tissot sat s tradicionalnim natpisom "IIII".

Tek u 19. stoljeću broj “četiri” je zapisan kao “IV”, a prije toga najčešće se koristio broj “IIII”. Međutim, unos "IV" već se može pronaći u dokumentima rukopisa Forme of Cury koji datira iz 1390. godine. Brojčanici satova tradicionalno koriste "IIII" umjesto "IV" u većini slučajeva, uglavnom iz estetskih razloga: ovaj način pisanja omogućuje vizualnu simetriju s brojevima "VIII" na suprotnoj strani, a obrnuto "IV" teže je čitati od "IIII". Postoji i verzija da IV nije ispisano na brojčaniku jer je IV početno slovo imena boga Jupitera (IVPITER).

Manji broj se može napisati lijevo od većeg, tada ga treba oduzeti od većeg. U tom slučaju mogu se oduzeti samo brojevi koji označavaju 1 ili potencije broja 10, a samo dvije znamenke u nizu brojeva najbliže oduzetom (tj. oduzeti pomnožen s 5 ili 10) mogu se koristiti kao umanjenik. Ponavljanja manjeg broja nisu dopuštena. Tako postoji samo šest opcija koristeći "pravilo oduzimanja":

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

Na primjer, broj 94 bi bio XCIV = 100 − 10 + 5 − 1 = 94 - tzv. “pravilo oduzimanja” (pojavilo se u kasnoj antici, a prije toga Rimljani su broj 4 pisali kao IIII, a broj 40 kao XXXX).

Treba napomenuti da su druge metode "oduzimanja" neprihvatljive; stoga broj 99 treba pisati kao XCIX, ali ne kao IC. Međutim, danas se u nekim slučajevima koristi pojednostavljeni zapis rimskih brojeva: na primjer, u programu Microsoft Excel Kada pretvarate arapske brojeve u rimske pomoću funkcije "ROMAN()", možete koristiti nekoliko vrsta predstavljanja brojeva, od klasičnog do vrlo pojednostavljenog (na primjer, broj 499 može se napisati kao CDXCIX, LDVLIV, XDIX, VDIV ili ID ). Pojednostavljenje je da se za smanjenje znamenke bilo koja druga znamenka može napisati lijevo od nje:

Slučajevi takvog snimanja brojeva (obično godina) često se nalaze u špici američkih televizijskih serija. Na primjer, za godinu 1998.: IIMM umjesto MCMXCVIII.

Primjena

Autogram B. N. Jeljcina 10. studenog 1988. Mjesec je označen rimskim brojevima. Rimski brojevi koji označavaju dan u tjednu na izlogu trgovine u Vilniusu
  • Monarchov serijski broj
  • Broj korpusa u Oružanim snagama
  • Krvna grupa na oznakama uniformi ruskih oružanih snaga
  • Baza homeopatskih razrjeđenja (Conium X3, Aconitum C200 itd.).
  • U matematičkoj analizi broj derivacije iznad terce ponekad se piše rimskim brojevima.

Rimski brojevi bili su široko korišteni u SSSR-u kada su označavali datum za označavanje mjeseca u godini, na primjer: 11/III-85 ili 9.XI.89, to se može vidjeti u mnogim arhivskim dokumentima tog vremena. Na sličan način, koristeći kosu crtu, zapisali su i datum lekcije u cool časopisi, na primjer: 24/II. Za označavanje datuma života i smrti na nadgrobnim spomenicima često se koristio poseban format, gdje se mjesec u godini označavao i rimskim brojevima, npr.: 18 6 X I I 78 ∼ 19 5 I I I 53 (\displaystyle 18(\frac ( 6)(XII))78\sim 19 (\frac (5)(III))53) . Sličan format korišten je u liječničkim potvrdama 1970-ih i 1980-ih.

Prelaskom na računalnu obradu informacija formati datuma temeljeni na rimskim brojevima praktički su izašli iz upotrebe.

U drugim jezicima, područje primjene rimskih brojeva može imati specifične značajke. U zapadnim zemljama broj godine često se ispisuje rimskim brojevima, na primjer, na zabatima zgrada i u špicama filmskih i video proizvoda.

U modernoj Litvi rimski brojevi mogu se koristiti za označavanje dana u tjednu na prometnim znakovima, izlozima i poslovnim znakovima.

Unicode

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

Oblici brojeva(Engleski) Obrasci brojeva) u području znakova s ​​kodovima U+2160 do U+2188. Na primjer, MCMLXXXVIII može se predstaviti u obliku ⅯⅭⅯⅬⅩⅩⅩⅧ. Ovaj raspon uključuje i mala i velika slova za pisanje brojeva od 1 (Ⅰ ili I) do 12 (Ⅻ ili XII), uključujući kombinirane glifove za složene brojeve kao što je 8 (Ⅷ ili VIII), uglavnom radi osiguravanja kompatibilnosti s istočnoazijskim skupovima znakova u industrijskim standardima kao što je JIS X 0213, gdje su ti znakovi definirani. Kombinacijski glifovi koriste se za predstavljanje brojeva koji su prethodno bili sastavljeni od pojedinačnih znakova (na primjer, Ⅻ umjesto njegovog predstavljanja kao Ⅹ i Ⅱ). Osim toga, postoje glifovi za arhaične oblike 1000, 5000, 10 000, veliki revers C (Ɔ), kasni oblik 6 (ↅ, sličan grčkoj stigmi: Ϛ), rani oblik 50 (ↆ, sličan do strelice koja pokazuje prema dolje ↓⫝⊥), 50 000 i 100 000. Treba napomenuti da malo reversno slovo c, ↄ nije uključeno u rimske brojeve, ali je uključeno u standard Unicode kao veliko slovo Ↄ.

Unicode rimski brojevi 0 1 2 3 4 5 6 7 8 9 A B C D E F Vrijednost 1 2 3 4 5 6 7 8 9 10 11 12 50 100 500 1 000 U+2160 U+2170 Vrijednost 1 000 5 000 10 000 100 6 50 50.000 100 000 U+2180

Za prikazivanje svih ovih znakova potreban je softver koji podržava standard Unicode i font koji sadrži glifove koji odgovaraju tim znakovima (na primjer, font Universalia).

Regularni izrazi

Regularni izraz za provjeru rimskih brojeva je ^(M(0,3))(D?C(0,3)|C)(L?X(0,3)|X)(V?I(0,3) |. I)$ U Perlu možete koristiti regularni izraz m/\b((?:M(0,3)?(?:D?C(0,3)|C)?(?:L) Rimski brojevi u nizu ?X(0,3)|X)?(?:I(0,3)?V?I(0,3)|I)))\b/gs.

Pretvorba

Za pretvaranje brojeva napisanih arapskim brojevima u rimske brojeve koriste se posebne funkcije. Na primjer, u ruskoj verziji programa Microsoft Excel postoji funkcija za to RIMSKI RIMSKI(argument).

Funkcije pretvorbe u JavaScript var arab = ; var roman = ["I","IV","V","IX","X","XL","L","XC","C","CD","D","CM ","M"]; funkcija arabToRoman(number) ( if(!number) return ""; var ret = ""; var i = arab.length - 1; while(number > 0) ( if(number >= arab[i]) ( ret + = roman[i]; number -= arab[i]; ) else ( i--; ) return ret; funkcija romanToArab(str) (str = str.toUpperCase(); var ret = 0; var i = arab duljina - 1; var pos = 0; while(i >= 0 && poz< 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--; ) rimski[i]=0; vratiti 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; dok je (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 + arapski[I] kraj; I:=I+1 kraj; Rim2Arap:= N kraj; begin WriteLn("Prijevod s arapskih na rimske brojeve. 1999 B_SA"); ( Write("Unesite broj za pretvorbu:"); ReadLn(N);) za NI:= 26 do 46 do WriteLn(NI," = ",Arap2Rim(NI)," obrnuto ", Rim2Arab(Arap2Rim(NI) ) ); kraj. Funkcija za pretvaranje arapskog broja u rimski broj u Pascalu function Arab2Roman(arab:integer):string; var i:cijeli broj; d:cijeli broj; arapski_str: niz; arapski_len:cijeli broj; početak Rezultat:= ""; arab_str:= IntToStr(arab); arab_len:= Duž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; kraj; kraj;

Funkcija za pretvaranje arapskog broja u rimski broj u BASIC-u (najkraći kod) 10 INPUT "ARAPSKI BROJ: "; A$ 20 ZA I=0 DO LEN(A$)-1 30 X=VAL(MID$(A$,LEN(A$)-I,1)) 40 IF X=4 ILI X=9 THEN B$= MID$("IXCM",I+1,1)+MID$("VXLCDM",I*2+(X+1)/5,1)+B$ 50 IF X4 AND X funkcija pretvorbe arapskih brojeva (u ovom case 1999) u Romanu na XPath string-join(za $num u (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 pretvaranje arapskog broja (u ovom slučaju 1999) u rimski broj u Perlu koristite strict; koristiti upozorenja; 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 = (); push @res, ($nums->[$i++][ ($n % 10, $n = int($n / 10)) ]) za 0 .. 3; ispis obrnuto @res; Klasa za pretvaranje arapskog broja (od 1 do 3999) u rimski broj u Javi import java.util.*; javna klasa IntegerConverter ( javni statički niz intToRoman(int broj) ( if (broj >= 4000 || broj iterator = units.descendingKeySet().iterator(); while (iterator.hasNext()) ( Integer key = iterator.next( ); while (number >= key; result.append(units.get(key)); ) return result.toString(); static ( NavigableMap initMap = new 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"); jedinice = Zbirke.unmodifiableNavigableMap(initMap); ) ) Klasa proširenja za pretvaranje rimskih brojeva u arapske i natrag, na CSharpu /// /// Klasa je dizajnirana za pretvaranje arapskih brojeva u rimske brojeve i natrag /// /// /// Klasa inicijalno sadrži abecedu Rimski brojevi koji mogu odrediti arapske brojeve brojeve od 1 do 39999 /// Ako trebate proširiti raspon, možete definirati dodatne oznake za rimske brojeve koristeći /// polje BasicRomanNumbers javna statička klasa RomanNumber ( /// /// Alphabet osnovnih rimskih brojeva /// Abeceda je izgrađena u obliku Ključ rječnika je arapski broj (int), vrijednost je odgovarajući /// rimski broj (string) /// /// /// Sadrži rimski zapis za arapske brojeve 1*,4*,5*,9* - gdje "*" predstavlja 0...N nula /// Kada je kreiran, sadrži oznaku brojeva od 1 do 10000 (I...ↂ) Budući da se u rimskom broju jedan znak /// ne može pojaviti više od tri puta, u početku se može pretvoriti u rimske brojeve od 1 do 39999. /// Ako želite moći raditi s velik broj rimskim brojevima, onda morate dodati dodatne oznake na popis /// počevši od 40000 bez preskakanja elemenata 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"); OsnovniRimskiBrojevi.Dodaj(10, "XL"); OsnovniRimskiBrojevi.Dodaj(50, "L "); Osnovni rimski brojevi. Dodaj (90, "XC"); Osnovni rimski brojevi. Dodaj (400, "CD"); (500, "D"); Osnovni rimski brojevi. Dodavanje (1000, "Mↁ"); Osnovni rimski brojevi. Dodavanje (5000, " ↁ"); BasicRomanNumbers.Add(9000, "Mↂ" ); BasicRomanNumbers.Add(10000, "ↂ" ) /// /// Izračunava najveći mogući rimski broj za trenutnu abecedu rimskih brojeva. /// /// Maksimalni mogući rimski broj 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 = lastBroj * 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")); /// Pretvara cijeli broj /// / // Arapski broj koji se treba pretvoriti u rimski zapis /// Generira se kada se broj jednak "0" /// ili broj veći od maksimalnog rimskog broja proslijedi kao parametar. /// Niz koji predstavlja rimski broj public static string ArabicRoman(this int numberArab) ( StringBuilder numberRoman = new StringBuilder(); //Izuzmite znak "-" iz arapskog broja i postavite ga na prvi znak rimskog broja ako (broj arapski< 0) { числоРимское.Append("-"); числоАраб = -числоАраб; } if (числоАраб == 0) throw new ArgumentOutOfRangeException("числоАраб", числоАраб, "Недопустимое значение аргумента: римские числа не могут быть равными\"0\""); else if (числоАраб >MaximumRomanNumber()) throw new ArgumentOutOfRangeException("numberArab", numberArab, string.Format("Nevažeća vrijednost argumenta: nije moguće navesti rimski broj veći od (0)", MaximumRomanNumber())); //Rastavljamo arapski broj na njegove sastavne rimske brojeve i kombiniramo ih u jedan red var neophodni osnovni rimski brojevi = od do u osnovnim rimskim brojevima gdje do = 1) ( arapski broj -= trenutni; rimski broj. Dodavanje (osnovni Rimski brojevi [trenutni] ) ) return rimski broj .ToString(); ) /// /// Pretvara rimski broj u arapski /// /// Rimski broj koji se pretvara u int /// Generira se kada se nerimski broj proslijedi kao parametar /// Cijeli broj predstavlja arapsku notaciju rimski broj public static int rimski arapski(ovaj niz rimski broj) ( int arapski broj = 0; sbyte negative = 1; niz Rim = rimski broj.Trim(); if (rimski == "-") ( negativan = -1; Roman = RomanNumber template = foreach (int to in BasicRomanNumbers.Keys) ( int index = BasicRomanNumbers.IndexOf(k); string quantifier= "; if (index == 0 | | (index % 4) == 0) quantifier="(0,3)"; templateRomanNumber.Insert(0, string.Format("(?((1))(2) )?", to.ToString() , BasicRomanNumbers[k], kvantifikator)​) //Zanemari velika i mala slova + podudaranje mora započeti na početku predloška niza RomanNumber.Insert(0, "(?i)^"); //Podudaranje se mora pronaći na kraju niza RomanNumber template.Append(" $"); //Pojednostavljena provjera. Ne provjerava pogreške poput IVII if (!Regex.IsMatch(Roman, RomanNumber pattern.ToString())) throw new FormatException(string.Format("Tekst \"(0)\" nije rimski broj", brojRoman) ); Broj podudaranja = Regex.Match(Roman, templateRomanNumber.ToString()); foreach (int to in BasicRomanNumbers.Keys) ( numberArap += number.Groups[to.ToString()].Length / BasicRomanNumbers[to].Length * to; ) return numberArap * negative; ) )

Rimski brojevi su:

Rimski brojevi Spasskaya Tower chiming clock Brojčani sustavi u kulturi Indo-arapski sustav brojevaIstočnoazijski brojevni sustaviAbecedni brojevni sustaviOstali sustavi Pozicijski brojevni sustavi Mješoviti brojevni sustavi Nepozicijski brojevni sustavi
arapski
Indijanac
Tamil
burmanski
kmerski
Lao
mongolski
tajlandski
kineski
japanski
Suzhou
korejski
vijetnamski
Štapići za brojanje
Abjadia
armenski
Aryabhata
ćirilica
grčki
etiopski
židovska
Katapayadi
babilonski
Egipćanin
etrurski
rimski
Potkrovlje
Kipu
Mayskaya
Dekadni brojevni sustav (10)
2, 3, 4, 5, 6, 7, 8, 9, 12, 16, 20, 60
Negapozicijski brojevni sustav
Simetrični brojevni sustav
Fibonaccijev sustav brojeva
Jedinični (unarni) brojevni sustav
Popis brojevnih sustava

rimski brojevi- brojevi koje su koristili stari Rimljani u svom nepozicijskom brojevnom sustavu.

Prirodni brojevi se zapisuju ponavljanjem tih brojeva. Štoviše, ako je veći broj ispred manjeg, tada se oni zbrajaju (princip zbrajanja), ali ako je manji broj ispred većeg, tada se manji oduzima od većeg ( princip oduzimanja). Posljednje pravilo vrijedi samo za izbjegavanje ponavljanja istog broja četiri puta.

Rimski brojevi pojavili su se 500 godina prije Krista među Etruščanima.

Brojke

rimski brojevi

U ruskom jeziku postoje mnemonička pravila za fiksiranje u memoriji oznaka slova brojeva u silaznom redoslijedu:

M s D arim S licem u lice L imons, X vatit V sedam ja X.

M s D jedemo C savjeti L izgled X U redu V lijepo odgojen ja pojedincima

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

Primjeri

Broj Rimski zapis Napomena

Da biste pravilno zapisali velike brojeve rimskim brojevima, prvo morate napisati broj tisuća, zatim stotina, zatim desetica i na kraju jedinica.

U ovom slučaju, neki od brojeva (I, X, C, M) mogu se ponavljati, ali ne više od tri puta; stoga se mogu koristiti za pisanje bilo kojeg cijelog broja ne više od 3999(MMMCMXCIX). U ranim razdobljima postojali su znakovi za označavanje većih brojeva - 5000, 10 000, 50 000 i 100 000[ izvor nije naveden 683 dana] (tada je najveći broj prema spomenutom pravilu 399.999). Kada pišete brojeve u rimskom brojčanom sustavu, manja znamenka može se pojaviti s desne strane veće; u ovom slučaju mu se dodaje. Na primjer, broj 283 na rimskom je napisan kao CCLXXXIII, odnosno 100+100+50+30+3=283. Ovdje se broj koji predstavlja stotinu ponavlja dva puta, a brojevi koji predstavljaju deset odnosno jedan ponavljaju se tri puta.

Primjer: broj 1988. Tisuću M, devetsto CM, osam desetica LXXX, osam jedinica VIII. Zapišimo ih zajedno: MCMLXXXVIII.

Nerijetko se radi isticanja brojeva u tekstu preko njih povlačila crta: LXIV. Ponekad je crta povučena i iznad i ispod: XXXII- osobito je uobičajeno istaknuti rimske brojeve u rukopisnom tekstu na ruskom jeziku (ovo se ne koristi u slaganju slova zbog tehničke složenosti). Za druge autore gornja traka može označavati povećanje vrijednosti brojke za 1000 puta: VM = 6000.

Tissot sat s tradicionalnim natpisom "IIII".

Tek u 19. stoljeću broj “četiri” je zapisan kao “IV”, a prije toga najčešće se koristio broj “IIII”. Međutim, unos "IV" već se može pronaći u dokumentima rukopisa Forme of Cury koji datira iz 1390. godine. Brojčanici satova tradicionalno koriste "IIII" umjesto "IV" u većini slučajeva, uglavnom iz estetskih razloga: ovaj način pisanja omogućuje vizualnu simetriju s brojevima "VIII" na suprotnoj strani, a obrnuto "IV" teže je čitati od "IIII".

Manji broj se može napisati lijevo od većeg, tada ga treba oduzeti od većeg. U tom slučaju nisu dopuštena ponavljanja manjeg broja. Na rimskom bi broj 94 bio XCIV=100-10+5-1=94 - takozvano “pravilo oduzimanja” (pojavilo se u kasnoj antici, a prije toga Rimljani su broj 4 pisali kao IIII, a broj 40 kao XXXX). Postoji šest načina za korištenje "pravila oduzimanja":

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

Treba napomenuti da druge metode "oduzimanja" nisu prihvatljive; stoga broj 99 treba pisati kao XCIX, ali ne kao IC. Međutim, danas se u nekim slučajevima koristi i pojednostavljeni zapis rimskih brojeva: na primjer, u Microsoft Excelu, prilikom pretvaranja arapskih brojeva u rimske pomoću funkcije "ROMAN()", možete koristiti nekoliko vrsta prikaza brojeva, od klasičnog do vrlo pojednostavljenog (na primjer, broj 499 može se napisati kao CDXCIX, LDVLIV, XDIX, VDIV ili ID). Pojednostavljenje je da se za smanjenje znamenke bilo koja druga znamenka može napisati lijevo od nje:

  • 999. Tisuću (M), oduzmite 1 (I), dobit ćemo 999 (IM) umjesto CMXCIX. Posljedica: 1999. - MIM umjesto MCMXCIX
  • 95. Sto (C), oduzmite 5 (V), dobijete 95 (VC) umjesto XCV
  • 1950: Tisuću (M), oduzmite 50 (L), dobijete 950 (LM). Posljedica: 1950. - MLM umjesto MCML

Veliki brojevi mogu se pisati i rimskim brojevima. Da bi se to učinilo, iznad onih brojeva koji označavaju tisuće stavlja se crta, a preko onih brojeva koji označavaju milijune stavlja se dvostruka crta. Na primjer, broj 123123 bi izgledao ovako:

I milijun je kao ja, ali ne s jednom, nego s dvije osobine na čelu: ja

Primjena

Autogram B. N. Jeljcina 10. studenog 1988. Mjesec je označen rimskim brojevima.

U ruskom se rimski brojevi koriste u sljedećim slučajevima:

  • Broj stoljeća ili tisućljeća: XIX stoljeće, II milenij pr. e.
  • Redni broj monarha: Karlo V., Katarina II.
  • Broj sveska u knjizi s više svezaka (ponekad brojevi dijelova knjige, odjeljaka ili poglavlja).
  • U nekim publikacijama - brojevi listova s ​​predgovorom knjige, kako se ne bi ispravljale veze unutar glavnog teksta kada se predgovor promijeni.
  • Oznake u starinskom stilu na brojčanicima sata.
  • Drugi važni događaji ili stavke popisa, na primjer: V. postulat Euklida, II svjetski rat, XX kongres CPSU-a, Igre XXII Olimpijade itd.
  • Valencija kemijskih elemenata.
  • Serijski broj koraka na ljestvici.

Rimski brojevi bili su široko korišteni u SSSR-u kada su označavali datum za označavanje mjeseca u godini: 11/III-85 ili 9.XI.89. Za označavanje datuma života i smrti na nadgrobnim spomenicima često se koristio poseban format, gdje je mjesec u godini bio označen i rimskim brojevima. Prelaskom na računalnu obradu informacija formati datuma temeljeni na rimskim brojevima praktički su izašli iz upotrebe.

U drugim jezicima opseg primjene rimskih brojeva može imati specifične značajke; na primjer, u zapadnim zemljama broj godine se ponekad piše rimskim brojevima.

Ako brojke raščlanimo grafički, dobivamo sljedeće:

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

Unicode

Standard Unicode preporučuje upotrebu uobičajenih latiničnih slova za predstavljanje rimskih brojeva. Međutim, standard također uključuje posebne znakove za rimske brojeve kao dio Oblici brojeva(Engleski) Obrasci brojeva) u području znakova s ​​kodovima U+2160 do U+2188. Na primjer, MCMLXXXVIII može se predstaviti u obliku ⅯⅭⅯⅬⅩⅩⅩⅧ. Ovaj raspon uključuje male i velike brojeve od 1 (Ⅰ ili I) do 12 (Ⅻ ili XII), uključujući kombinirane glifove za složene brojeve kao što je 8 (Ⅷ ili VIII), prvenstveno radi kompatibilnosti s istočnoazijskim skupovima znakova u industrijskim standardima kao što su kao JIS X 0213 gdje su ti znakovi definirani. Kombinacijski glifovi koriste se za predstavljanje brojeva koji su prethodno bili sastavljeni od pojedinačnih znakova (na primjer, Ⅻ umjesto njegovog predstavljanja kao Ⅹ i Ⅱ). Osim toga, postoje glifovi za arhaične oblike 1000, 5000, 10 000, veliki revers C (Ɔ), kasni oblik 6 (ↅ, sličan grčkoj stigmi: Ϛ), rani oblik 50 (ↆ, sličan na strelicu usmjerenu prema dolje Predložak:Vmvauyairufctr5ke4fuiUnicode), 50 000 i 100 000 Treba napomenuti da malo pozadinsko c, ↄ nije uključeno u simbole rimskih brojeva, ali je uključeno u standard Unicode kao veliko Klaudijevo slovo Ↄ.

Rimski brojevi u Unicode kodu 0 1 2 3 4 5 6 7 8 9 A B C D E F Vrijednost 1 2 3 4 5 6 7 8 9 10 11 12 50 100 500 1 000 U+2160 U+2170 Vrijednost 1 000 5 000 10 000 - - 6 50 50 000 100 000 U+2160! U+2180

Za prikazivanje svih ovih znakova potreban je softver koji podržava Unicode standard i font koji sadrži glifove koji odgovaraju ovim znakovima.

Regularni izrazi

Uobičajeni izraz za provjeru rimskih brojeva je "^(?i)M(0,3)(D?C(0,3)|C)(L?X(0,3)|X)(V?I(0 , 3)|I)$". U Perlu možete koristiti regularni izraz "m/((?i)M(0,3)(D?C(0,3)|C)(L?X(0,3)|X) da pronađete Roman brojevi u nizu )(I|V?I(0,3)))/g".

Pretvorba

Za pretvaranje brojeva napisanih arapskim brojevima u rimske brojeve koriste se posebne funkcije. Na primjer, u ruskoj verziji programa Microsoft Excel postoji funkcija za to RIMSKI(argument), u engleskoj verziji programa Microsoft Excel iu bilo kojoj verziji OpenOffice.org Calc ova funkcija se zove RIMSKI(argument).

Funkcije pretvorbe u JavaScript var arab = ; var roman = ["I","IV","V","IX","X","XL","L","XC","C","CD","D","CM ","M"]; funkcija arabToRoman(number) ( if(!number) return ""; var ret = ""; var i = arab.length - 1; while(number > 0) ( if(number >= arab[i]) ( ret + = roman[i]; number -= arab[i]; ) else ( i--; ) return ret; funkcija romanToArab(str) (str = str.toUpperCase(); var ret = 0; var i = arab duljina - 1; var pos = 0; while(i >= 0 && poz< 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--; ) rimski[i]=0; vratiti 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; dok je (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 + arapski[I] kraj; I:=I+1 kraj; Rim2Arap:= N kraj; begin WriteLn("Prijevod s arapskih na rimske brojeve. 1999 B_SA"); ( Write("Unesite broj za pretvorbu:"); ReadLn(N);) za NI:= 26 do 46 do WriteLn(NI," = ",Arap2Rim(NI)," obrnuto ", Rim2Arab(Arap2Rim(NI) ) ); kraj. Funkcija za pretvaranje arapskog broja u rimski broj u Pascalu function Arab2Roman(arab:integer):string; var i:cijeli broj; d:cijeli broj; arapski_str: niz; arapski_len:cijeli broj; početak Rezultat:= ""; arab_str:= IntToStr(arab); arab_len:= Duž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; kraj; kraj;

Posebnost ovog algoritma je da ne koristi nizove (osim, naravno, ako niz ne smatrate nizom znakova).

Funkcija za pretvaranje arapskog broja u rimski broj u BASIC-u (najkraći kod) 10 INPUT "ARAPSKI BROJ: "; A$ 20 ZA I=0 DO LEN(A$)-1 30 X=VAL(MID$(A$,LEN(A$)-I,1)) 40 IF X=4 ILI X=9 THEN B$= MID$("IXCM",I+1,1)+MID$("VXLCDM",I*2+(X+1)/5,1)+B$ 50 IF X4 AND X funkcija pretvorbe arapskih brojeva (u ovom case 1999) u Romanu na XPath string-join(za $num u (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 pretvaranje arapskog broja (u ovom slučaju 1999) u rimski broj u Perlu koristite strict; koristiti upozorenja; 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 = (); push @res, ($nums->[$i++][ ($n % 10, $n = int($n / 10)) ]) za 0 .. 3; ispis obrnuto @res; Klasa za pretvaranje arapskih brojeva (od 1 do 3999) u rimske u Java klasi 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 ostatak = 0; niz rezultatRim = ""; for(short i = 0; i0 && result=4 && rezultat Klasa proširenja za pretvaranje rimskih brojeva u arapske i natrag, na CSharpu /// /// Klasa je dizajnirana za pretvaranje arapskih brojeva u rimske brojeve i natrag /// /// // / Klasa izvorno sadrži abecedu rimskih brojeva koja može definirati arapske brojeve od 1 do 39999 /// Ako trebate proširiti raspon, možete definirati dodatne oznake za rimske brojeve koristeći /// polje BasicRomanNumbers javna statička klasa RomanNumber ( /// /// Osnovni brojevi rimske abecede /// Abeceda je izgrađena u obliku rječnika. Ključ rječnika je arapski broj (int), vrijednost je odgovarajući /// rimski broj (string ) /// /// /// Sadrži rimski zapis za arapske brojeve 1*,4* ,5*,9* - gdje "*" predstavlja 0...N nula /// Kada je kreiran, sadrži oznaku brojeva od 1 do 10000 (I...ↂ) Budući da se u rimskom broju jedan znak ne može / // pojaviti više od tri puta, u početku možete pretvoriti brojeve od 1 do 39999 u rimski format /// ako želite da biste mogli raditi s velikim brojem rimskih brojeva, trebali biste dodati dodatne oznake na popis /// počevši od 40000 ne preskačući 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"); OsnovniRimskiBrojevi.Dodaj(10, "XL"); OsnovniRimskiBrojevi.Dodaj(50, "L "); Osnovni rimski brojevi. Dodaj (90, "XC"); Osnovni rimski brojevi. Dodaj (400, "CD"); (500, "D"); Osnovni rimski brojevi. Dodavanje (1000, "Mↁ"); Osnovni rimski brojevi. Dodavanje (5000, " ↁ"); BasicRomanNumbers.Add(9000, "Mↂ" ); BasicRomanNumbers.Add(10000, "ↂ" ) /// /// Izračunava najveći mogući rimski broj za trenutnu abecedu rimskih brojeva. /// /// Maksimalni mogući rimski broj 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 = lastBroj * 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")); /// Pretvara cijeli broj /// / // Arapski broj koji se treba pretvoriti u rimski zapis /// Generira se kada se broj jednak "0" /// ili broj veći od maksimalnog rimskog broja proslijedi kao parametar. /// Niz koji predstavlja rimski broj public static string ArabicRoman(this int numberArab) ( StringBuilder numberRoman = new StringBuilder(); //Izuzmite znak "-" iz arapskog broja i postavite ga na prvi znak rimskog broja ako (broj arapski< 0) { числоРимское.Append("-"); числоАраб = -числоАраб; } if (числоАраб == 0) throw new ArgumentOutOfRangeException("числоАраб", числоАраб, "Недопустимое значение аргумента: римские числа не могут быть равными\"0\""); else if (числоАраб >MaximumRomanNumber()) throw new ArgumentOutOfRangeException("numberArab", numberArab, string.Format("Nevažeća vrijednost argumenta: nije moguće navesti rimski broj veći od (0)", MaximumRomanNumber())); //Rastavljamo arapski broj na njegove sastavne rimske brojeve i kombiniramo ih u jedan red var neophodni osnovni rimski brojevi = od do u osnovnim rimskim brojevima gdje do = 1) ( arapski broj -= trenutni; rimski broj. Dodavanje (osnovni Rimski brojevi [trenutni] ) ) return rimski broj .ToString(); ) /// /// Pretvara rimski broj u arapski /// /// Rimski broj koji se pretvara u int /// Generira se kada se nerimski broj proslijedi kao parametar /// Cijeli broj predstavlja arapsku notaciju rimski broj public static int rimski arapski(ovaj niz rimski broj) ( int arapski broj = 0; sbyte negative = 1; niz Rim = rimski broj.Trim(); if (rimski == "-") ( negativan = -1; Roman = RomanNumber template = foreach (int to in BasicRomanNumbers.Keys) ( int index = BasicRomanNumbers.IndexOf(k); string quantifier= "; if (index == 0 | | (index % 4) == 0) quantifier="(0,3)"; templateRomanNumber.Insert(0, string.Format("(?((1))(2) )?", to.ToString() , BasicRomanNumbers[k], kvantifikator)​) //Zanemari velika i mala slova + podudaranje mora započeti na početku predloška niza RomanNumber.Insert(0, "(?i)^"); //Podudaranje se mora pronaći na kraju niza RomanNumber template.Append(" $"); //Pojednostavljena provjera. Ne provjerava pogreške poput IVII if (!Regex.IsMatch(Roman, RomanNumber pattern.ToString())) throw new FormatException(string.Format("Tekst \"(0)\" nije rimski broj", brojRoman) ); Broj podudaranja = Regex.Match(Roman, templateRomanNumber.ToString()); foreach (int to in BasicRomanNumbers.Keys) ( numberArap += number.Groups[to.ToString()].Length / BasicRomanNumbers[to].Length * to; ) return numberArap * negative; ) )

Bilješke

  1. Unicode standard, 15.3
  2. 1 2 Unicode oblici brojeva
  3. Perry, David J. Prijedlog za dodavanje dodatnih starorimskih znakova u UCS.
  4. Za prva dva retka
  5. "Znanost i život" N12 1986. stranica 95, V. Ptitsyn, Moskva
  6. Autor - Kuznetsov Evgeny A.
  7. Autor - Kuznetsov Evgeny A., 1992

Vidi također

  • Simboli starorimskih monetarnih i težinskih jedinica
Tehnička napomena: Zbog tehničkih ograničenja, neki preglednici možda neće prikazati posebne znakove korištene u ovom članku. Takvi se znakovi mogu pojaviti kao okviri, upitnici ili drugi besmisleni znakovi, ovisno o vašem web pregledniku. operativni sustav i skup instaliranih fontova. Čak i ako vaš preglednik može tumačiti UTF-8 i instalirali ste font koji podržava širok raspon Unicodea, npr. Kod2000, Arial Unicode MS, Lucida Sans Unicode ili jedan od besplatnih Unicode fontova - možda ćete morati koristiti drugi preglednik jer se mogućnosti preglednika u ovom području često razlikuju. kategorije:
  • Brojke
  • Sustavi brojeva

Što znače rimska slova L C D M?

Ovo su brojke! -u rimskom sustavu numeriranja, koji se temelji na upotrebi latiničnih slova, postao je jedan od uvjerljivih razloga za njegovu zamjenu prikladnijim decimalnim sustavom brojeva u tom pogledu
U rastućem redoslijedu, ova slova predstavljaju sljedeće cijele brojeve: I - jedan, V - pet, X - deset, L - pedeset, C - sto, D - petsto, M - tisuću.
rimski brojevi
Rimski sustav numeriranja pomoću slova bio je uobičajen u Europi dvije tisuće godina. Tek u kasnom srednjem vijeku zamijenjen je prikladnijim decimalnim sustavom brojeva, posuđenim od Arapa. Ali do danas se rimski brojevi koriste za označavanje datuma na spomenicima, vremena na satovima i (u anglo-američkoj tipografskoj tradiciji) stranica u predgovorima knjiga. Osim toga, na ruskom je uobičajeno koristiti rimske brojeve za označavanje rednih brojeva.
Za označavanje brojeva korišteno je 7 slova latinične abecede: I = 1, V = 5, X = 10, L = 50, C = 100, D = 500, M = 1000. Međubrojevi su formirani dodavanjem nekoliko slova na desno ili lijevo. Prvo su pisane tisućice i stotice, zatim desetice i jedinice. Tako je broj 24 prikazan kao XXIV. Vodoravna linija iznad simbola znači množenje s tisuću.
Prirodni brojevi se zapisuju ponavljanjem tih brojeva. Štoviše, ako je veći broj ispred manjeg, tada se oni zbrajaju (princip zbrajanja), ali ako je manji broj ispred većeg, tada se manji oduzima od većeg ( princip oduzimanja). Posljednje pravilo vrijedi samo za izbjegavanje ponavljanja istog broja četiri puta. Na primjer, I, X, C stavljaju se redom ispred X, C, M za označavanje 9, 90, 900 ili ispred V, L, D za označavanje 4, 40, 400. Na primjer, VI = 5+1 = 6, IV = 5 - 1 = 4 (umjesto IIII). XIX = 10 + 10 - 1 = 19 (umjesto XVIIII), XL = 50 - 10 =40 (umjesto XXXX), XXXIII = 10 + 10 + 10 + 1 + 1 + 1 = 33, itd.
Izvođenje aritmetičkih operacija s višeznamenkastim brojevima u ovom zapisu vrlo je nezgodno. Sustav rimskih brojeva trenutno se ne koristi, s izuzetkom, u nekim slučajevima, označavanja stoljeća (XV. stoljeće, itd.), godina naše ere. e. (MCMLXXVII i dr.) i mjeseci pri označavanju datuma (npr. 1. V. 1975.), rednih brojeva, a ponekad i izvedenica malih redova većih od tri: yIV, yV i dr.
Kako se pišu rimski brojevi? -//elhow.ru/ucheba/matematika/kak-pishutsja-rimskie-cifry
.437000.ru/info/rim.php
__________________________
Latinski alfabet postao je izoliran oko 7. stoljeća pr. e. i izvorno je uključivao samo 21 slovo: A, B, C, D, E, F, Z, H, I, K, L, M, N, O, P, Q, R, S, T, V i X.
http://ladyretryka.ru/?p=10980

Koji broj predstavlja rimski broj M?

Koji broj predstavlja rimski broj M?

Alsou - sh

Već sam odgovorio na slično pitanje (vidi ovdje). Htio bih i na ovo kratko odgovoriti.

Ponovit ću se malo.

Rimske brojeve, a ima ih samo 7, nije teško zapamtiti. Evo slovnih oznaka ovih brojeva u silaznom redoslijedu: M, D, C, L, X, V, I:

Kao što vidimo, Rimski broj, koji je veliko slovo M, predstavlja broj 1000.

Sada dajemo primjere brojeva koji su napisani rimskim brojevima:



Sada to sami napišimo:

Ovogodišnji broj 2015 , na primjer, bilo bi napisano ovako: MMXV

1941 - MSMXXXXI

1945 - MSMXXXXV

2987 - MMCMLXXXVII

2001 - MMI

Zolotynka

Ako rimski broj M stoji samostalno, onda će njegova vrijednost biti 1000.

Ali: ako ispred M stoji manji broj, kao npr. u ovom primjeru CM, onda će to značiti: 1000-100=900.

Ako C dolazi nakon M, tada morate dodati, stoga je vrijednost 1000+100=1010.

C, kao što se sjećamo, označava stotinu.

Opća pravila: Ne možete staviti više od jednog manjeg broja ispred većeg broja za oduzimanje. Dakle, IIV ne znači 3.

Osim toga, desetice, stotice i tisućice treba odvojiti kao zasebne elemente (manji broj ne može se razlikovati od većeg broja više od 10 puta). To znači da je 99 XCIX, 90 + 9, ali se nikada ne može napisati kao IC. Isto tako, 999 ne može biti IM, a 1999 ne može biti MIM, i tako dalje.

Natasha

Navikli smo koristiti arapske brojeve. Ali rimski još uvijek postoje i naširoko se koriste, koji su stari gotovo dvije i pol tisuće godina. Rimski brojevi predstavljeni su kao slova. Postoji samo sedam takvih slova: I, V, X, L, C, D, M. Njihov specifičan raspored označava broj. Ako se ovi brojevi nalaze odvojeno od ostalih, oni imaju sljedeća značenja: I - 1, V - 5, X - 10, L - 50, C - 100, D - 500, M - 1000.

Prekrasan proplanak

Rimski broj M (također slovo) označava broj 1000 .

U rimskom računu koristi se vrlo malo slova; ima ih samo 7, ali da biste pisali velike brojeve latiničnim slovima, morate zbrajati i oduzimati jedan broj od drugog, što nije tako lako bez vježbe.

U arapskom se 10 znakova koristi za predstavljanje brojeva i njima se može napisati bilo koji broj bez matematičkih operacija.

Latinsko slovo M u rimskim brojevima znači "tisuću", od latinskog mille...

I sada se ovaj prefiks naširoko koristi, na primjer, ppm - doslovno "od tisuću", a odatle je došla i riječ "milijun", doslovno prevedena "ogromna tisuća", "tisuća", a zanimljivo je kako ova riječ pojavio, ali to je druga priča..

Afanasy44

Rimski brojevi se sada rijetko koriste; zamijenjeni su prikladnijim arapskim brojevima. Uglavnom se koriste za imenovanje stoljeća, npr. 5. st., 12. st., au rijetkim slučajevima.

Rimljani su slovom M označavali tisuću. Dva slova MM jedno do drugog znače dvije tisuće, MMM tri tisuće, a onda je još teže i zabavnije.

Moreljuba

Rimski broj M, naravno, poznat nam je kao slovo, ali u sustavu rimskih brojeva to je još uvijek broj. Znači točno tisuću. a ovaj rimski broj potječe od latinske riječi mille.

Ljudmila 1986

Stari Rimljani koristili su slova latinske abecede za predstavljanje brojeva. Rimski brojevi pojavili su se oko 500. pr.

U mnogim se jezicima rimski brojevi koriste za bilježenje broja stoljeća (tisućljeća), označavanje brojčanika, u matematičkoj analizi i važnih događaja.


Pčela Zhuzha

Rimsko L, C, D, M nisu tako česte kao ostale, M označava broj 1000, MM znači 2000, a MMM znači 3000.

Na primjer, 2017. godina bit će označena rimskim brojevima MMXVII, 2018. bit će označena rimskim brojevima MMXVIII.



Rimski brojevi nas često zbunjuju.
Ali oni su ti koji se obično koriste pri numeriranju stoljeća i poglavlja knjiga, pri označavanju veličina odjeće i koraka u glazbi.
Rimski brojevi prisutni su u našim životima. Dakle, prerano je napustiti ih. Lakše za učenje, razumijevanje i učenje. Štoviše, nije teško.
Dakle, za označavanje brojeva na latinskom jeziku prihvatljive su kombinacije od sljedećih 7 znakova: I (1), V (5), X (10), L (50), C (100), D (500), M (1000).
Zašto su latinična slova odabrana za označavanje brojeva 5, 50, 100, 500 i 1000? Ispostavilo se da to nisu latinična slova, već potpuno različiti znakovi. Činjenica je da je osnova za latinicu (a ona, usput rečeno, postoji u nekoliko verzija - 23, 24 i 25 slova) bila zapadna grčka abeceda.

Dakle, tri znaka L, C i M sežu u zapadnu grčku abecedu. Ovdje su označavali aspirirane glasove, kojih nije bilo u latinskom jeziku. Kada je sastavljena latinica, pokazalo se da su suvišne. I bili su prilagođeni za predstavljanje brojeva na latiničnom pismu. Kasnije su se podudarali u pisanju s latiničnim slovima. Tako je znak C (100) postao sličan prvom slovu latinske riječi centum (sto), a M - (1000) - prvom slovu riječi mille (tisuću). Što se tiče znaka D (500), on je bio polovica znaka F (1000), a zatim je postao sličan latiničnom slovu. Znak V (5) bio je samo gornja polovica znaka X (10).
S tim u vezi, inače, smiješna se čini popularna teorija da naziv crkvene službe pape (Vicarius Filii Dei) kad se slova zamijene rimskim brojevima u zbroju daje “đavolji broj”.

Dakle, kako razumijete latinske brojeve?
Ako se znak koji označava manji broj nalazi desno od znaka koji označava veći broj, tada se većem dodaje manji; ako je lijevo, oduzmite:
VI - 6, odn. 5+1
IV - 4, t.j. 5-1
LX - 60, tj. 50+10
XL - 40, tj. 50-10 (prikaz, stručni).
CX - 110, tj. 100+10
XC - 90, tj. 100-10 (prikaz, stručni).
MDCCCXII - 1812., t j . 1000+500+100+100+100+10+1+1.

Moguće su različite oznake za isti broj. Stoga se broj 80 može prikazati kao LXXX (50+10+10+10) i kao XXC(100-20).
Osnovni rimski brojevi izgledaju ovako:
I(1) - jedan (jedan)
II(2) - duo (duo)
III(3) - tres (tres)
IV(4) - quattuor (quattuor)
V(5) - quinque
VI(6) - spol (spol)
VII (7) - rujan (rujan)
VIII (8) - okto (okto)
IX (9) - studeni (novem)
X (10) - decem (decem), itd.

XX (20) - viginti (viginti)
XXI (21) - unus et viginti ili viginti unus
XXII (22) - duo et viginti ili viginti duo itd.
XXVIII (28) - duodetriginta (duodetriginta)
XXIX (29) - undetriginta (undetriginta)
XXX (30) - triginta (triginta)
XL (40) - kvadraginta (kvadraginta)
L (50) - quinquaginta (quinquaginta)
LX (60) - seksaginta (seksaginta)
LXX (70) - septuaginta (septuaginta)
LXXX (80) - oktoginta (octogintna)
XC (90) - nonaginta (nonaginta)
C (100) - centum (centum)
CC (200) - ducenti (ducenti)
CCC (300) - trecenti (trecenti)
CD (400) - kvadrigenti (kvadrigenti)
D (500) - kvingenti (kvingenti)
DC (600) - sexcenti (sexcenti)
DCC (700) - septigenti (septigenti)
DCCC(800) - octingenti (octigenti)
CM (DCCCC) (900) - nongenti (nongenti)
M (1000) - mile (mile)
MM (2000) - duo milia (duo milia)
V (5000) - quinque milia (quinque milia)
X (10000) - decem milia (decem milia)
XX (20000) - viginti milia (viginti milia)
C (1.000.000) - centum milia (centum milia)
XI (1000000) - decies centena milia (decies centena milia)"

Elena Dolotova.

Svi mi koristimo rimske brojeve - njima označavamo brojeve stoljeća ili mjeseci u godini. Rimski brojevi nalaze se na brojčanicima satova, uključujući zvona na Spaskoj kuli. Koristimo ih, ali ne znamo puno o njima.

Kako rade rimski brojevi?

Rimski sustav brojanja u svojoj modernoj verziji sastoji se od sljedećih osnovnih znakova:

ja 1
V 5
X 10
L 50
C 100
D 500
M 1000

Za pamćenje brojeva koji su neobični za nas koji koristimo arapski sustav, postoji nekoliko posebnih mnemoničkih fraza na ruskom i engleskom:
Dajemo sočne limune, to je dovoljno
Dajemo savjete samo dobro obrazovanim pojedincima
Cijenim ksilofone kao krave koje kopaju mlijeko

Sustav slaganja tih brojeva jedan u odnosu na drugi je sljedeći: brojevi do uključivo tri formiraju se zbrajanjem jedinica (II, III); ponavljanje bilo kojeg broja četiri puta je zabranjeno. Za formiranje brojeva većih od tri, veće i manje znamenke se zbrajaju ili oduzimaju, za oduzimanje manja znamenka se stavlja ispred veće, za zbrajanje - iza, (4 = IV), ista logika vrijedi i za ostale znamenke (90 = XC). Redoslijed tisuća, stotina, desetica i jedinica isti je na koji smo navikli.

Važno je da se nijedan broj ne ponavlja više od tri puta, tako da je najduži broj do tisuću 888 = DCCCLXXXVIII (500+100+100+100+50+10+10+10+5+1+1+ 1).

Alternativne opcije

Zabrana četvrtog korištenja istog broja zaredom počela se pojavljivati ​​tek u 19. stoljeću. Stoga se u starim tekstovima mogu vidjeti varijante IIII i VIII umjesto IV i IX, pa čak i IIII ili XXXXXX umjesto V i LX. Ostaci ovog zapisa mogu se vidjeti na satu, gdje se četiri često označava s četiri jedinice. U starim knjigama također su česti slučajevi dvostrukih oduzimanja - XIIX ili IIXX umjesto standardnog XVIII.

Također u srednjem vijeku pojavio se novi rimski broj - nula, koji se označavao slovom N (od latinskog nulla, nula). Veliki brojevi označavani su posebnim znakovima: 1000 - ↀ (ili C|Ɔ), 5000 – ↁ (ili |Ɔ), 10000 – ↂ (ili CC|ƆƆ). Milijuni se dobivaju duplim podcrtavanjem standardnih brojeva. Razlomci su ispisivani i rimskim brojevima: unce su označavane simbolima - 1/12, polovica je označavana simbolom S, a sve veće od 6/12 označavano je dodatkom: S = 10\12. Druga opcija je S::.

Podrijetlo

U ovom trenutku ne postoji jedinstvena teorija o podrijetlu rimskih brojeva. Jedna od najpopularnijih hipoteza je da su etruščansko-rimski brojevi nastali iz sustava brojanja koji koristi urezane crte umjesto brojeva.

Dakle, broj "I" nije latinsko ili starije slovo "i", već urez koji podsjeća na oblik ovog slova. Svaki peti zarez bio je označen kosom - V, a deseti je bio prekrižen - X. Broj 10 u ovom brojanju izgledao je ovako: IIIIΛIIIIX.

Upravo zahvaljujući ovakvom zapisu brojeva u nizu dugujemo poseban sustav zbrajanja rimskih brojeva: s vremenom se zapis broja 8 (IIIIΛIII) mogao svesti na ΛIII, što uvjerljivo dokazuje kako je rimski sustav brojanja dobio svoje specifičnost. Postupno su zarezi prerasli u grafičke simbole I, V i X te se osamostalili. Kasnije su ih počeli poistovjećivati ​​s rimskim slovima - budući da su im po izgledu bili slični.

Alternativna teorija pripada Alfredu Cooperu, koji je predložio promatranje rimskog sustava brojanja s fiziološke točke gledišta. Cooper vjeruje da je I, II, III, IIII grafički prikaz broja prstiju desne ruke koje je trgovac izbacio prilikom pozivanja cijene. V je ispruženi palac, koji zajedno s dlanom čini lik sličan slovu V.

Zato rimski brojevi zbrajaju ne samo jedinice, već ih zbrajaju i s peticama - VI, VII itd. - ovo je palac zabačen unazad, a ostali prsti ruke ispruženi. Broj 10 izražavao se križanjem ruku ili prstiju, otuda i simbol X. Druga mogućnost bila je jednostavno udvostručiti broj V i dobiti X. Veliki brojevi prenosili su se lijevim dlanom koji je brojao desetice. Tako su postupno znakovi drevnog brojanja prstiju postali piktogrami, koji su se zatim počeli poistovjećivati ​​sa slovima latinske abecede.

Moderna primjena

Danas su u Rusiji rimski brojevi potrebni prije svega za bilježenje broja stoljeća ili tisućljeća. Pogodno je staviti rimske brojeve pored arapskih - ako napišete stoljeće rimskim brojevima, a zatim godinu arapskim, tada vam oči neće biti zaslijepljene obiljem identičnih znakova. Rimski brojevi imaju određenu konotaciju arhaizma. Također se tradicionalno koriste za označavanje serijskog broja monarha (Petar I), broja sveska publikacije s više svezaka, a ponekad i poglavlja knjige. Rimski brojevi također se koriste u antiknim brojčanicima satova. Važni brojevi, poput godine Olimpijade ili broja znanstvenog zakona, također se mogu zabilježiti rimskim brojevima: Drugi svjetski rat, Euklidov V postulat.

U različitim se zemljama rimski brojevi koriste malo drugačije: u SSSR-u je bilo uobičajeno označavati mjesec u godini pomoću njih (1.XI.65). Na Zapadu se broj godine često ispisuje rimskim brojevima u špici filmova ili na pročeljima zgrada.

U dijelovima Europe, posebno u Litvi, često možete pronaći dane u tjednu označene rimskim brojevima (I – ponedjeljak i tako dalje). U Nizozemskoj se rimski brojevi ponekad koriste za označavanje katova. A u Italiji obilježavaju dionice od 100 metara rute, istodobno označavajući svaki kilometar arapskim brojevima.

U Rusiji, kada pišete rukom, uobičajeno je istovremeno naglašavati rimske brojeve ispod i iznad. Međutim, često je u drugim zemljama podvlaka značila povećanje velikih i malih slova broja za 1000 puta (ili 10 000 puta s dvostrukom podvlakom).

Postoji uobičajena zabluda da moderne zapadnjačke veličine odjeće imaju neke veze s rimskim brojevima. Zapravo, oznake su XXL, S, M, L itd. nemaju nikakve veze s njima: ovo su kratice engleskih riječi eXtra (vrlo), Small (mali), Large (veliki).