Function Repository Resource:

AncientNumberRepresentation

Source Notebook

Display the written representation of an integer in any of several ancient number systems, including Babylonian

Contributed by: Eric Weisstein

ResourceFunction["AncientNumberRepresentation"][n,"numsys"]

gives a representation of the integer n based on the numeric system defined by "numsys".

Details

ResourceFunction["AncientNumberRepresentation"][n,"numsys"] is generally supported for non-negative integers.
Some number systems may not include a representation for the number 0.
Some number systems may have representations defined only up to some finite number n.
Most number systems evolved both in time period and over geographic region; the representation chosen corresponds to the most canonical one available.
In ResourceFunction["AncientNumberRepresentation"][n,"numsys"], possible numeric systems include:
"Babylonian"Babylonian cuneiform numerals
ResourceFunction["AncientNumberRepresentation"] automatically threads over lists.

Examples

Basic Examples (2) 

Give the Babylonian cuneiform representation of 59:

In[1]:=
ResourceFunction["AncientNumberRepresentation"][59, "Babylonian"]
Out[1]=

Give the Babylonian cuneiform representation of 2019:

In[2]:=
ResourceFunction["AncientNumberRepresentation"][2019, "Babylonian"]
Out[2]=

Properties and Relations (1) 

AncientNumberRepresentation extends the functionality of IntegerString to additional numeric systems, including some whose glyphs cannot be easily expressed in string form:

In[3]:=
IntegerString[666, "Roman"]
Out[3]=
In[4]:=
Head[%]
Out[4]=
In[5]:=
ResourceFunction["AncientNumberRepresentation"][666, "Babylonian"]
Out[5]=
In[6]:=
Head[%]
Out[6]=

Possible Issues (4) 

Around the second century BC, the Babylonians used a symbol to denote a blank space or the absence of a number:

In[7]:=
ResourceFunction["AncientNumberRepresentation"][0, "Babylonian"]
Out[7]=

The blank symbol was not, however, used in computation, meaning the numbers with equivalent base-60 expansion after the removal of zeros are indistinguishable:

In[8]:=
Table[IntegerDigits[n, 60], {n, {1, 60, 3600}}]
Out[8]=
In[9]:=
Table[ResourceFunction["AncientNumberRepresentation"][n, "Babylonian"], {n, {1, 60, 3600}}]
Out[9]=

AncientNumberRepresentation will return unevaluated for inapplicable arguments:

In[10]:=
ResourceFunction["AncientNumberRepresentation"][-2, "Babylonian"]
Out[10]=
In[11]:=
ResourceFunction["AncientNumberRepresentation"][Pi, "Babylonian"]
Out[11]=

AncientNumberRepresentation will return unevaluated for unknown numeric systems:

In[12]:=
ResourceFunction["AncientNumberRepresentation"][123, "Coptic"]
Out[12]=

Neat Examples (1) 

Make a table of Babylonian numerals from 1 to 59:

In[13]:=
Multicolumn[
 Table[Row[{n, Show[ResourceFunction["AncientNumberRepresentation"][n, "Babylonian"]]}, Spacer[10]], {n, 59}], 6, Dividers -> All]
Out[13]=

Version History

  • 1.2.0 – 27 October 2021

Related Resources

Author Notes

The Babylonian cuneiform glyphs used here are schematic representations of the more stylized versions appearing in actual Babylonian cuneiform tablets.

License Information