{ localUrl: '../page/emulating_digits.html', arbitalUrl: 'https://arbital.com/p/emulating_digits', rawJsonUrl: '../raw/4sk.json', likeableId: '2853', likeableType: 'page', myLikeValue: '0', likeCount: '1', dislikeCount: '0', likeScore: '1', individualLikes: [ 'EricRogstad' ], pageId: 'emulating_digits', edit: '2', editSummary: 'if -> If', prevEdit: '1', currentEdit: '2', wasPublished: 'true', type: 'wiki', title: 'Emulating digits', clickbait: '', textLength: '1783', alias: 'emulating_digits', externalUrl: '', sortChildrenBy: 'likes', hasVote: 'false', voteType: '', votesAnonymous: 'false', editCreatorId: 'EricRogstad', editCreatedAt: '2016-06-25 17:14:02', pageCreatorId: 'NateSoares', pageCreatedAt: '2016-06-24 05:14:02', seeDomainId: '0', editDomainId: 'AlexeiAndreev', submitToDomainId: '0', isAutosave: 'false', isSnapshot: 'false', isLiveEdit: 'true', isMinorEdit: 'false', indirectTeacher: 'false', todoCount: '0', isEditorComment: 'false', isApprovedComment: 'true', isResolved: 'false', snapshotText: '', anchorContext: '', anchorText: '', anchorOffset: '0', mergedInto: '', isDeleted: 'false', viewCount: '25', text: 'In general, given enough $n$-digits, you can emulate an $m$-digit, for any $m, n \\in$ [45h $\\mathbb N$]. If $m < n,$ you can emulate an $m$-digit using just one $n$-digit — in other words, you can use a [-42d] like a $7$-digit if you want to, by just ignoring three of the possible ways to set the digit wheel. If $m > n,$ things are a bit more difficult, but only slightly.\n\nBasically, with 2 $n$-digits, you can emulate a $n^2$-digit, as follows. Using your two $n$-digits, encode a number $(x, y)$ where $0 \\le x < n$ and $0 \\le y < n$. Interpret $(x, y)$ as $xn + y.$ You have now encoded a number between 0 (if $x = y = 0$) and $n^2 - 1$ (if $x = y = n-1$). Congratulations, you just used two $n$-digits to make an $n^2$ digit!\n\nYou can use the same strategy to emulate $n^3$-digits (interpret $(x, y, z)$ as $xn^2 + yn + z$), $n^4$-digits (you get the picture), and so on. Now, to emulate an $m$-digit, just pick an exponent $a$ such that $n^a > m,$ collect $a$ copies of an $n$-digit, and you're done.\n\nThis isn't necessarily the most efficient way to use $n$-digits to encode $m$-digits. For example, if $m$ is 1,000,001 and $n$ is 10, then you need seven 10-digits. Seven 10-digits are enough to emulate a 10-million-digit, whereas $m$ is a mere million-and-one-digit — paying for a 10-million-digit when all you needed was an $m$-digit seems a bit excessive. For some different methods you can use to recover your losses when encoding one type of digit using another type of digit, see [44l] and [3ty]. (These techniques are fairly useful in practice, given that modern computers encode everything using [3p0 bits], i.e. 2-digits, and so it's useful to know how to efficiently encode $m$-messages using bits when $m$ is pretty far from the nearest power of 2.)', metaText: '', isTextLoaded: 'true', isSubscribedToDiscussion: 'false', isSubscribedToUser: 'false', isSubscribedAsMaintainer: 'false', discussionSubscriberCount: '2', maintainerCount: '2', userSubscriberCount: '0', lastVisit: '', hasDraft: 'false', votes: [], voteSummary: 'null', muVoteSummary: '0', voteScaling: '0', currentUserVote: '-2', voteCount: '0', lockedVoteType: '', maxEditEver: '0', redLinkCount: '0', lockedBy: '', lockedUntil: '', nextPageId: '', prevPageId: '', usedAsMastery: 'false', proposalEditNum: '0', permissions: { edit: { has: 'false', reason: 'You don't have domain permission to edit this page' }, proposeEdit: { has: 'true', reason: '' }, delete: { has: 'false', reason: 'You don't have domain permission to delete this page' }, comment: { has: 'false', reason: 'You can't comment in this domain because you are not a member' }, proposeComment: { has: 'true', reason: '' } }, summaries: {}, creatorIds: [ 'NateSoares', 'EricRogstad' ], childIds: [], parentIds: [ 'math' ], commentIds: [], questionIds: [], tagIds: [], relatedIds: [], markIds: [], explanations: [], learnMore: [], requirements: [], subjects: [], lenses: [], lensParentId: '', pathPages: [], learnMoreTaughtMap: {}, learnMoreCoveredMap: {}, learnMoreRequiredMap: {}, editHistory: {}, domainSubmissions: {}, answers: [], answerCount: '0', commentCount: '0', newCommentCount: '0', linkedMarkCount: '0', changeLogs: [ { likeableId: '0', likeableType: 'changeLog', myLikeValue: '0', likeCount: '0', dislikeCount: '0', likeScore: '0', individualLikes: [], id: '14594', pageId: 'emulating_digits', userId: 'EricRogstad', edit: '2', type: 'newEdit', createdAt: '2016-06-25 17:14:02', auxPageId: '', oldSettingsValue: '', newSettingsValue: 'if -> If' }, { likeableId: '0', likeableType: 'changeLog', myLikeValue: '0', likeCount: '0', dislikeCount: '0', likeScore: '0', individualLikes: [], id: '14560', pageId: 'emulating_digits', userId: 'NateSoares', edit: '0', type: 'newParent', createdAt: '2016-06-24 05:14:04', auxPageId: 'math', oldSettingsValue: '', newSettingsValue: '' }, { likeableId: '0', likeableType: 'changeLog', myLikeValue: '0', likeCount: '0', dislikeCount: '0', likeScore: '0', individualLikes: [], id: '14558', pageId: 'emulating_digits', userId: 'NateSoares', edit: '1', type: 'newEdit', createdAt: '2016-06-24 05:14:02', auxPageId: '', oldSettingsValue: '', newSettingsValue: '' } ], feedSubmissions: [], searchStrings: {}, hasChildren: 'false', hasParents: 'true', redAliases: {}, improvementTagIds: [], nonMetaTagIds: [], todos: [], slowDownMap: 'null', speedUpMap: 'null', arcPageIds: 'null', contentRequests: {} }