zlacker

[return to "The largest number representable in 64 bits"]
1. addaon+ab6[view] [source] 2023-11-27 20:49:51
>>tromp+(OP)
The article discusses different encodings of numbers to give non-dense representations of numbers exceeding (2^64)-1. (These representations are inherently non-dense by the pigeonhole principle.) But I feel like this is missing a key point. A 64-bit string that we agree represents only numbers can represent 18446744073709551616 different numbers. The choice of what numbers are represented is completely up to us. If we want certain properties (dense integers) we end up with the highest being 18446744073709551615. If we want other properties (nearly logarithmic distribution, signedness, and good mapping to hardware for arithmetic) we might end up with FP64 with a maximum value around 10^308. And if we want no interesting property constraints except being dual to a program on a Turing machine, we end up with a busy beaver number. But... remember, we can choose any 18446744073709551616 values we want to be representable. There's no restriction on the interpretation of these strings; or, equivalently, the amount of external information required to explain the interpretation of these strings is unbounded. As a result, we can choose any computable number to be encoded by the string 64'b1, or by any other string, and exceed any desired bounds.
◧◩
2. tromp+Ne6[view] [source] 2023-11-27 21:07:21
>>addaon+ab6
> we can choose any computable number to be encoded by the string 64'b1

First of all, every finite number is computable by definition.

And second, your encodings will, unlike those in the lambda calculus, be completely arbitrary.

PS: in my self-delimiting encoding of the lambda calculus, there are only 1058720968043859 < 2^50 closed lambda terms of size up to 64 [1].

[1] https://oeis.org/A114852

◧◩◪
3. Kranar+Zr6[view] [source] 2023-11-27 22:07:30
>>tromp+Ne6
>First of all, every finite number is computable by definition.

You likely mean every integer or rational is computable (although not by definition). There are finite real numbers that are not computable, in fact most of them are not.

◧◩◪◨
4. tromp+YF6[view] [source] 2023-11-27 23:20:29
>>Kranar+Zr6
Right; I meant finite integer.
◧◩◪◨⬒
5. TheNew+Bu7[view] [source] 2023-11-28 06:46:42
>>tromp+YF6
What is the 100th busy beaver number? I believe this is an integer, and I also believe it is not computable
◧◩◪◨⬒⬓
6. tromp+tC7[view] [source] 2023-11-28 08:27:52
>>TheNew+Bu7
As a number, N=BB(100) is trivially computable by the program "output N". What you really mean is that the function BB(.) itself is uncomputable.
◧◩◪◨⬒⬓⬔
7. TheNew+JX7[view] [source] 2023-11-28 12:16:09
>>tromp+tC7
I believe you are correct, however I am struggling to see how.

If you have the time to help me with my understanding then I would appreciate it.

I'm looking at wikipedia's formal definition, which says that for x to be computable, you need to provide a function from naturals to integers such that if you pick a denominator of a fraction (n), this function can give the numerator such that (f(n)-1)/n and (f(n)+1)/n end up straddling the value which is computable.

So, for an integer N, you make f(x) = xN then (f(n)-1)/n = N-(1/n) and (f(n)+1)/n = N+(1/n).

Therefore, for any integer N, it is computable.

Now, what is stopping me from doing something similar with a real?

If I say: f(x) = floor(xN)

Now (f(n)-1)/n = floor(n*N)-(1/n)

It is at this point where I realise I need to go to bed and sleep. If you see this and have the time to explain to me where it falls apart with reals, then I will be most happy. To be clear - I'm quite sure I am wrong, and this isn't me being passive aggressive about it.

◧◩◪◨⬒⬓⬔⧯
8. tromp+dTf[view] [source] 2023-11-30 16:23:44
>>TheNew+JX7
You were looking at the definition of a computable real number [1]. The issue there is whether you can approximate the number arbitrarily well. An issue that is nonexistent in integers, as you note in

> Therefore, for any integer N, it is computable.

> If I say: f(x) = floor(xN)

For many definitions of a real, it's not at all clear whether you can compute this f(x). The ability to compute f already amounts to being able to approximate f arbitrarily well. For example, for Chaitin's number, you cannot compute your f() except for a few small values of N.

[1] https://en.wikipedia.org/wiki/Computable_number

◧◩◪◨⬒⬓⬔⧯▣
9. TheNew+6xi[view] [source] 2023-12-01 11:21:30
>>tromp+dTf
Thanks for your reply - and I probably would have missed it except by complete chance.

I still don't think it has properly clicked, because the function "f(x) = xN" still needs me to know what N is - despite it being an integer.

For example, let's suppose that you manage to have a conversation with God and you discover that BB(100) has the value of 42, and Chaitlin's number is 1/2.

Does Chaitlin's number suddenly become computable? My intuition is that it remains uncomputable, but maybe my intuition is wrong... I guess by the definition, it is computable, but you can't prove it.

I'm also struggling with the reciprocal of BB(100). This is rational, so maybe it too is computable.

I guess I am struggling with the lack of a constructive proof and what that means - it is like we are saying "there exists an algorithm to do X, but the algorithm can't be known", and maybe that is the core of me being wrong - we can prove that such an algorithm exists, and so 1/BB(100) is computable just like BB(100) is computable 0 but every time I write this down, I still can't see how this logic doesn't also break down with actually non-computable numbers. e.g. "There is a function f(x) which returns an integer, I can't tell you what the integer is, but it is the one that results in showing that Chaitlin's number is computable"

Anyway, if you notice this and do reply, then very much thank you - and apologies if your reply goes unread

[go to top]