#jsDisabledContent { display:none; } My Account | Register | Help

# Rhind Mathematical Papyrus

Article Id: WHEBN0009210114
Reproduction Date:

 Title: Rhind Mathematical Papyrus Author: World Heritage Encyclopedia Language: English Subject: Collection: Publisher: World Heritage Encyclopedia Publication Date:

### Rhind Mathematical Papyrus

The Rhind Mathematical Papyrus (RMP; also designated as: papyrus British Museum 10057, and pBM 10058), is the best example of Egyptian mathematics. It is named after Alexander Henry Rhind, a Scottish antiquarian, who purchased the papyrus in 1858 in Luxor, Egypt; it was apparently found during illegal excavations in or near the Ramesseum. It dates to around 1650 BC. The British Museum, where the majority of papyrus is now kept, acquired it in 1865 along with the Egyptian Mathematical Leather Roll, also owned by Henry Rhind;[1] there are a few small fragments held by the Brooklyn Museum in New York[2][3] and an 18 cm central section is missing. It is one of the two well-known Mathematical Papyri along with the Moscow Mathematical Papyrus. The Rhind Papyrus is larger than the Moscow Mathematical Papyrus, while the latter is older than the former.[2]

The Rhind Mathematical Papyrus dates to the Second Intermediate Period of Egypt. It was copied by the scribe Ahmes (i.e., Ahmose; Ahmes is an older transcription favoured by historians of mathematics), from a now-lost text from the reign of king Amenemhat III (12th dynasty). Written in the hieratic script, this Egyptian manuscript is 33 cm tall and consists of multiple parts which in total make it over 5m long. The papyrus began to be transliterated and mathematically translated in the late 19th century. In 2008, the mathematical translation aspect remains incomplete in several respects. The document is dated to Year 33 of the Hyksos king Apophis and also contains a separate later Year 11 on its verso likely from his successor, Khamudi.[4]

In the opening paragraphs of the papyrus, Ahmes presents the papyrus as giving "Accurate reckoning for inquiring into things, and the knowledge of all things, mysteries...all secrets". He continues with:

This book was copied in regnal year 33, month 4 of Akhet, under the majesty of the King of Upper and Lower Egypt, Awserre, given life, from an ancient copy made in the time of the King of Upper and Lower Egypt Nimaatre (?). The scribe Ahmose writes this copy.[1]

Several books and articles about the Rhind Mathematical Papyrus have been published, and a handful of these stand out.[2] The Rhind Papyrus was published in 1923 by Peet and contains a discussion of the text that followed Griffith's Book I, II and III outline [5] Chace published a compendium in 1927/29 which included photographs of the text.[6] A more recent overview of the Rhind Papyrus was published in 1987 by Robins and Shute.[7]

## Contents

• Book I 1
• Book II 2
• Volumes 2.1
• Areas 2.2
• Pyramids 2.3
• Book III 3
• References 5

## Book I

The first part of the Rhind papyrus consists of reference tables and a collection of 20 arithmetic and 20 algebraic problems. The problems start out with simple fractional expressions, followed by completion (sekhem) problems and more involved linear equations (aha problems).[2]

The first part of the papyrus is taken up by the 2/n table. The fractions 2/n for odd n ranging from 3 to 101 are expressed as sums of unit fractions. For example, 2/15 = 1/10 + 1/30 . The decomposition of 2/n into unit fractions is never more than 4 terms long as in for example 2/101 = 1/101 + 1/202 + 1/303 + 1/606.

This table is followed by a list of fraction expressions for the numbers 1 through 9 divided by 10. For instance the division of 7 by 10 is recorded as:

7 divided by 10 yields 2/3 + 1/30

After these two tables, the scribe recorded 84 problems altogether and problems 1 through 40 which belong to Book I are of an algebraic nature.

Problems 1–6 compute divisions of a certain number of loaves of bread by 10 men and record the outcome in unit fractions. Problems 7–20 show how to multiply the expressions 1 + 1/2 + 1/4 and 1 + 2/3 + 1/3 by different fractions. Problems 21–23 are problems in completion, which in modern notation is simply a subtraction problem. The problem is solved by the scribe to multiply the entire problem by a least common multiple of the denominators, solving the problem and then turning the values back into fractions. Problems 24–34 are ‘’aha’’ problems. These are linear equations. Problem 32 for instance corresponds (in modern notation) to solving x + 1/3 x + 1/4 x = 2 for x. Problems 35–38 involve divisions of the hekat. Problems 39 and 40 compute the division of loaves and use arithmetic progressions.[1]

## Book II

A portion of the Rhind Papyrus

The second part of the Rhind papyrus consists of geometry problems. Peet referred to these problems as "mensuration problems".[2]

### Volumes

Problems 41 – 46 show how to find the volume of both cylindrical and rectangular based granaries. In problem 41 the scribe computes the volume of a cylindrical granary. Given the diameter (d) and the height (h), the volume V is given by:

V = [(1-1/9) d]^2 h

In modern mathematical notation (and using d = 2r) this equals V = (8/9)^2 d^2 h = (256/81) r^2 h. The quotient 256/81 approximates the value of π as being ca. 3.1605.

In problem 42 the scribe uses a slightly different formula which computes the volume and expresses it in terms of the unit khar. ((1+1/3)d)^2 ((2/3) h) In modern mathematical notation this is equal to (32/27) d^2 h = (128/27) r^2 h (measured in khar). This is equivalent to (256/81) r^2 h measured in cubic-cubits as used in the other problem.[1]

Problem 47 gives a table with equivalent fractions for fractions of 100 quadruple hekat of grain. The quotients are expressed in terms of Horus eye fractions. The short table gives the values related to the original 100 quadruple hekat; the quantity "ro" here is a standard ancient Egyptian measure equivalent to 1/320 of a hekat.-

1/30 gives 3 1/4 1/16 1/64 (quadruple) hekat and 1 2/3 ro
1/40 gives 2 1/2 (quadruple) hekat
1/60 gives 1 1/2 1/8 1/32 (quadruple) hekat 3 1/3 ro
1/70 gives 1 1/4 1/8 1/32 1/64 (quadruple) hekat 2 1/14 1/21 ro
1/80 gives 1 1/4 (quadruple) hekat
1/90 gives 1 1/16 1/32 1/64 (quadruple) hekat 1/2 1/18 ro

### Areas

Problems 48–55 show how to compute an assortment of areas. Problem 48 is often commented on as it computes the area of a circle. The scribe compares the area of a circle (approximated by an octagon) and its circumscribing square. Each side is trisected and the corner triangles are then removed. The resulting octagonal figure approximates the circle. The area of the octagonal figure is: 9^2 - 4 \times \left[\frac{1}{2}(3)(3)\right] = 63; Next we approximate 63 to be 64 and note that 64 = 8^2. And we get the approximation \pi \left(\frac{9}{2}\right)^2 \approx 8^2. Solving for π, we get the approximation \pi \approx \frac{256}{81} \approx 3.1605 (the approximation has an error of .0189).

That this octagonal figure, whose area is easily calculated, so accurately approximates the area of the circle is just plain good luck. Obtaining a better approximation to the area using finer divisions of a square and a similar argument is not simple.[1][8] Other problems show how to find the area of rectangles, triangles and trapezoids.

### Pyramids

The final five problems are related to the slopes of pyramids. A seked problem is reported by :[9]

If a pyramid is 250 cubits high and the side of its base 360 cubits long, what is its seked?"

The solution to the problem is given as the ratio of half the side of the base of the pyramid to its height, or the run-to-rise ratio of its face. In other words, the quantity he found for the seked is the cotangent of the angle to the base of the pyramid and its face.[9]

## Book III

The third part of the Rhind papyrus consists of the remainder of the 84 problems.[2] Problem 61 consists of 2 parts. Part 1 contains multiplications of fractions. Part b gives a general expression for computing 2/3 of 1/n, where n is odd. In modern notation the formula given is

\frac{2}{3n} = \frac{1}{2n} + \frac{1}{6n}

Problems 62–68 are general problems of an algebraic nature. Problems 69–78 are all pefsu problems in some form or another. They involve computations regarding the strength of bread and or beer.[1]

Problem RMP 79 sums five terms in a geometric progression. It is a multiple of 7 riddle, which would have been written in the Medieval era as, "Going to St. Ives" problem.[2] Problems 80 and 81 compute Horus eye fractions of henu (or hekats). Problem 81 is followed by a table. The last three problems 82–84 compute the amount of feed necessary for fowl and oxen.[1]

## References

-- Module:Hatnote -- -- -- -- This module produces hatnote links and links to related articles. It -- -- implements the and meta-templates and includes -- -- helper functions for other Lua hatnote modules. --

local libraryUtil = require('libraryUtil') local checkType = libraryUtil.checkType local mArguments -- lazily initialise Module:Arguments local yesno -- lazily initialise Module:Yesno

local p = {}

-- Helper functions

local function getArgs(frame) -- Fetches the arguments from the parent frame. Whitespace is trimmed and -- blanks are removed. mArguments = require('Module:Arguments') return mArguments.getArgs(frame, {parentOnly = true}) end

local function removeInitialColon(s) -- Removes the initial colon from a string, if present. return s:match('^:?(.*)') end

function p.findNamespaceId(link, removeColon) -- Finds the namespace id (namespace number) of a link or a pagename. This -- function will not work if the link is enclosed in double brackets. Colons -- are trimmed from the start of the link by default. To skip colon -- trimming, set the removeColon parameter to true. checkType('findNamespaceId', 1, link, 'string') checkType('findNamespaceId', 2, removeColon, 'boolean', true) if removeColon ~= false then link = removeInitialColon(link) end local namespace = link:match('^(.-):') if namespace then local nsTable = mw.site.namespaces[namespace] if nsTable then return nsTable.id end end return 0 end

function p.formatPages(...) -- Formats a list of pages using formatLink and returns it as an array. Nil -- values are not allowed. local pages = {...} local ret = {} for i, page in ipairs(pages) do ret[i] = p._formatLink(page) end return ret end

function p.formatPageTables(...) -- Takes a list of page/display tables and returns it as a list of -- formatted links. Nil values are not allowed. local pages = {...} local links = {} for i, t in ipairs(pages) do checkType('formatPageTables', i, t, 'table') local link = t[1] local display = t[2] links[i] = p._formatLink(link, display) end return links end

function p.makeWikitextError(msg, helpLink, addTrackingCategory) -- Formats an error message to be returned to wikitext. If -- addTrackingCategory is not false after being returned from -- Module:Yesno, and if we are not on a talk page, a tracking category -- is added. checkType('makeWikitextError', 1, msg, 'string') checkType('makeWikitextError', 2, helpLink, 'string', true) yesno = require('Module:Yesno') local title = mw.title.getCurrentTitle() -- Make the help link text. local helpText if helpLink then helpText = ' (help)' else helpText = end -- Make the category text. local category if not title.isTalkPage and yesno(addTrackingCategory) ~= false then category = 'Hatnote templates with errors' category = string.format( '%s:%s', mw.site.namespaces[14].name, category ) else category = end return string.format( '%s', msg, helpText, category ) end

-- Format link -- -- Makes a wikilink from the given link and display values. Links are escaped -- with colons if necessary, and links to sections are detected and displayed -- with " § " as a separator rather than the standard MediaWiki "#". Used in -- the template.

function p._formatLink(link, display) -- Find whether we need to use the colon trick or not. We need to use the -- colon trick for categories and files, as otherwise category links -- categorise the page and file links display the file. checkType('_formatLink', 1, link, 'string') checkType('_formatLink', 2, display, 'string', true) link = removeInitialColon(link) local namespace = p.findNamespaceId(link, false) local colon if namespace == 6 or namespace == 14 then colon = ':' else colon = end -- Find whether a faux display value has been added with the | magic -- word. if not display then local prePipe, postPipe = link:match('^(.-)|(.*)$') link = prePipe or link display = postPipe end -- Find the display value. if not display then local page, section = link:match('^(.-)#(.*)$') if page then display = page .. ' § ' .. section end end -- Assemble the link. if display then return string.format('%s', colon, link, display) else return string.format('%s%s', colon, link) end end

-- Hatnote -- -- Produces standard hatnote text. Implements the template.

function p.hatnote(frame) local args = getArgs(frame) local s = args[1] local options = {} if not s then return p.makeWikitextError( 'no text specified', 'Template:Hatnote#Errors', args.category ) end options.extraclasses = args.extraclasses options.selfref = args.selfref return p._hatnote(s, options) end

function p._hatnote(s, options) checkType('_hatnote', 1, s, 'string') checkType('_hatnote', 2, options, 'table', true) local classes = {'hatnote'} local extraclasses = options.extraclasses local selfref = options.selfref if type(extraclasses) == 'string' then classes[#classes + 1] = extraclasses end if selfref then classes[#classes + 1] = 'selfref' end return string.format( '
%s
', table.concat(classes, ' '), s )

end

return p-------------------------------------------------------------------------------- -- Module:Hatnote -- -- -- -- This module produces hatnote links and links to related articles. It -- -- implements the and meta-templates and includes -- -- helper functions for other Lua hatnote modules. --

local libraryUtil = require('libraryUtil') local checkType = libraryUtil.checkType local mArguments -- lazily initialise Module:Arguments local yesno -- lazily initialise Module:Yesno

local p = {}

-- Helper functions

local function getArgs(frame) -- Fetches the arguments from the parent frame. Whitespace is trimmed and -- blanks are removed. mArguments = require('Module:Arguments') return mArguments.getArgs(frame, {parentOnly = true}) end

local function removeInitialColon(s) -- Removes the initial colon from a string, if present. return s:match('^:?(.*)') end

function p.findNamespaceId(link, removeColon) -- Finds the namespace id (namespace number) of a link or a pagename. This -- function will not work if the link is enclosed in double brackets. Colons -- are trimmed from the start of the link by default. To skip colon -- trimming, set the removeColon parameter to true. checkType('findNamespaceId', 1, link, 'string') checkType('findNamespaceId', 2, removeColon, 'boolean', true) if removeColon ~= false then link = removeInitialColon(link) end local namespace = link:match('^(.-):') if namespace then local nsTable = mw.site.namespaces[namespace] if nsTable then return nsTable.id end end return 0 end

function p.formatPages(...) -- Formats a list of pages using formatLink and returns it as an array. Nil -- values are not allowed. local pages = {...} local ret = {} for i, page in ipairs(pages) do ret[i] = p._formatLink(page) end return ret end

function p.formatPageTables(...) -- Takes a list of page/display tables and returns it as a list of -- formatted links. Nil values are not allowed. local pages = {...} local links = {} for i, t in ipairs(pages) do checkType('formatPageTables', i, t, 'table') local link = t[1] local display = t[2] links[i] = p._formatLink(link, display) end return links end

function p.makeWikitextError(msg, helpLink, addTrackingCategory) -- Formats an error message to be returned to wikitext. If -- addTrackingCategory is not false after being returned from -- Module:Yesno, and if we are not on a talk page, a tracking category -- is added. checkType('makeWikitextError', 1, msg, 'string') checkType('makeWikitextError', 2, helpLink, 'string', true) yesno = require('Module:Yesno') local title = mw.title.getCurrentTitle() -- Make the help link text. local helpText if helpLink then helpText = ' (help)' else helpText = end -- Make the category text. local category if not title.isTalkPage and yesno(addTrackingCategory) ~= false then category = 'Hatnote templates with errors' category = string.format( '%s:%s', mw.site.namespaces[14].name, category ) else category = end return string.format( '%s', msg, helpText, category ) end

-- Format link -- -- Makes a wikilink from the given link and display values. Links are escaped -- with colons if necessary, and links to sections are detected and displayed -- with " § " as a separator rather than the standard MediaWiki "#". Used in -- the template.

function p._formatLink(link, display) -- Find whether we need to use the colon trick or not. We need to use the -- colon trick for categories and files, as otherwise category links -- categorise the page and file links display the file. checkType('_formatLink', 1, link, 'string') checkType('_formatLink', 2, display, 'string', true) link = removeInitialColon(link) local namespace = p.findNamespaceId(link, false) local colon if namespace == 6 or namespace == 14 then colon = ':' else colon = end -- Find whether a faux display value has been added with the | magic -- word. if not display then local prePipe, postPipe = link:match('^(.-)|(.*)$') link = prePipe or link display = postPipe end -- Find the display value. if not display then local page, section = link:match('^(.-)#(.*)$') if page then display = page .. ' § ' .. section end end -- Assemble the link. if display then return string.format('%s', colon, link, display) else return string.format('%s%s', colon, link) end end

-- Hatnote -- -- Produces standard hatnote text. Implements the template.

function p.hatnote(frame) local args = getArgs(frame) local s = args[1] local options = {} if not s then return p.makeWikitextError( 'no text specified', 'Template:Hatnote#Errors', args.category ) end options.extraclasses = args.extraclasses options.selfref = args.selfref return p._hatnote(s, options) end

function p._hatnote(s, options) checkType('_hatnote', 1, s, 'string') checkType('_hatnote', 2, options, 'table', true) local classes = {'hatnote'} local extraclasses = options.extraclasses local selfref = options.selfref if type(extraclasses) == 'string' then classes[#classes + 1] = extraclasses end if selfref then classes[#classes + 1] = 'selfref' end return string.format( '
%s
', table.concat(classes, ' '), s )

end

return p
1. ^ a b c d e f g h Clagett, Marshall Ancient Egyptian Science, A Source Book. Volume Three: Ancient Egyptian Mathematics (Memoirs of the American Philosophical Society) American Philosophical Society. 1999 ISBN 978-0-87169-232-0
2. ^ a b c d e f g Anthony Spalinger, The Rhind Mathematical Papyrus as a Historical Document, Studien zur Altägyptischen Kultur, Bd. 17 (1990), pp. 295-337, Helmut Buske Verlag GmbH
3. ^
4. ^ cf. Thomas Schneider's paper 'The Relative Chronology of the Middle Kingdom and the Hyksos Period (Dyns. 12-17)' in Erik Hornung, Rolf Krauss & David Warburton (editors), Ancient Egyptian Chronology (Handbook of Oriental Studies), Brill: 2006, p.194-195
5. ^ Peet, Thomas Eric. 1923. The Rhind Mathematical Papyrus, British Museum 10057 and 10058. London: The University Press of Liverpool limited and Hodder & Stoughton limited
6. ^ Chace, Arnold Buffum. 1927-1929. The Rhind Mathematical Papyrus: Free Translation and Commentary with Selected Photographs, Translations, Transliterations and Literal Translations. Classics in Mathematics Education 8. 2 vols. Oberlin: Mathematical Association of America. (Reprinted Reston: National Council of Teachers of Mathematics, 1979). ISBN 0-87353-133-7
7. ^ Robins, R. Gay, and Charles C. D. Shute. 1987. The Rhind Mathematical Papyrus: An Ancient Egyptian Text. London: British Museum Publications Limited. ISBN 0-7141-0944-4
8. ^ Don Allen Egyptian and Babylonian Mathematics from [1]
9. ^ a b