Balanced ternary: Difference between revisions
Content added Content deleted
m (added whitespace to the task's preamble.) |
m (added more whitespace to the task's preamble, added a ;Task section header.) |
||
Line 1: | Line 1: | ||
{{task}} |
{{task}} |
||
[[wp:Balanced ternary|Balanced ternary]] is a way of representing numbers. Unlike the prevailing binary representation, a balanced ternary integer is in base 3, and each digit can have the values 1, 0, or −1. |
[[wp:Balanced ternary|Balanced ternary]] is a way of representing numbers. Unlike the prevailing binary representation, a balanced ternary integer is in base 3, and each digit can have the values 1, 0, or −1. |
||
⚫ | |||
;Examples: |
|||
'''Requirements''' |
|||
Decimal 11 = 3<sup>2</sup> + 3<sup>1</sup> − 3<sup>0</sup>, thus it can be written as "++−" |
|||
Decimal 6 = 3<sup>2</sup> − 3<sup>1</sup> + 0 × 3<sup>0</sup>, thus it can be written as "+−0" |
|||
;Task: |
|||
⚫ | |||
# Support arbitrarily large integers, both positive and negative; |
# Support arbitrarily large integers, both positive and negative; |
||
# Provide ways to convert to and from text strings, using digits '+', '-' and '0' (unless you are already using strings to represent balanced ternary; but see requirement 5). |
# Provide ways to convert to and from text strings, using digits '+', '-' and '0' (unless you are already using strings to represent balanced ternary; but see requirement 5). |
||
Line 10: | Line 16: | ||
# Provide ways to perform addition, negation and multiplication directly on balanced ternary integers; do ''not'' convert to native integers first. |
# Provide ways to perform addition, negation and multiplication directly on balanced ternary integers; do ''not'' convert to native integers first. |
||
# Make your implementation efficient, with a reasonable definition of "efficient" (and with a reasonable definition of "reasonable"). |
# Make your implementation efficient, with a reasonable definition of "efficient" (and with a reasonable definition of "reasonable"). |
||
'''Test case''' With balanced ternaries ''a'' from string "+-0++0+", ''b'' from native integer -436, ''c'' "+-++-": |
'''Test case''' With balanced ternaries ''a'' from string "+-0++0+", ''b'' from native integer -436, ''c'' "+-++-": |