How to find shorter encoding of $256$ bit number

147 Views Asked by At

Wondering if you could encode a number such as $2^{256}$, as a polynomial equation or some other encoding that would make it shorter than its actual value written out in decimal notation which is ~70 characters at 115,792,089,237,316,195,423,570,985,008,687,907,853,269,984,665,640,564,039,457,584,007,913,129,639,936, or 256 1's and 0's. Obviously using a larger character set you can make it shorter, but I'm wondering if there's any formula or anything for discovering a polynomial equation that fits it (or any 256 bit number), or if not polynomial equations then something else. So if the polynomial was $10^{256} + 3^{30} - 2^{16}$ then that would only be around 10 characters instead of 70. Not sure if there is any math around this, or if it's possible or not. Knowing if it's not possible would be good too. I asked a similar question earlier but didn't resolve to anything. Obviously also $2^{256}$ is the probably shortest encoding of this example, but I'm wondering for any 256 bit number.

I am looking for an algorithm, or an approach to one.

1

There are 1 best solutions below

3
On BEST ANSWER

If an encoding scheme were able to encode all 256-bit strings with strictly less than 256 bits, say 255 bits, then you cannot decode all encoded strings without ambiguity, because you have at most $2^{255}$ possible values, not $2^{256}$.

More precisely, every function $A \to B$, with $A$ and $B$ finite sets and $A$ strictly larger than $B$, cannot be injective and so cannot be inverted.

Bottom line: for a fixed scheme, you may be able compress some 256-bit strings, but not all of them.