# Is random access allowed in the Bit Complexity model, or is it just expensive?

In the RAM model, you're allowed to do unbounded indirect access (pointers can be arbitrarily large and still fit in a single machine word).

In the Bit Complexity model (no wiki article, sorry), machine words are constant sized. So storing the address of an entry in a table of size $N$ would require $O(lg(N))$ words.

This raises the question: Are you even allowed to do a multi-word random access into a table of size $N$ when using the bit complexity model? It's a bit of a strange operation, because the machine can't "hold the jump in its head" while making it. On the other hand, it could be allowed but cost $O(lg(n))$ time instead of the RAM model's $O(1)$ time.

I realize that this is basically just a definition, with interesting things on either side, but I'm wondering what the common definition is. Is bit complexity just another way of saying "multi-tape turing machine"?

• Why do you say "instead of $O(1)$ time"? Why would a multi-word random access be $O(1)$ time, when (if I understand you correctly) you said that a single-word random access takes $O(\lg N)$ time? – D.W. Jul 15 '14 at 6:55
• Where do you get that $O(\log(n))$ limit from in your first sentence? There is no such limit described in the linked WP article, nor have I seen such a limit in other definitions of RAM. – FrankW Jul 15 '14 at 7:30
• Perhaps you should take a look at this: math.uni-leipzig.de/~diem/preprints/bitcomplexity.pdf. – Yuval Filmus Jul 15 '14 at 13:26
• @D.W. I was contrasting it against the RAM model, where getting to items in a similarly sized table was cheap because the addresses fit into a word. – Craig Gidney Jul 15 '14 at 14:08
• @FrankW It was a misunderstanding between the size of allowed arithmetic and the size of allowed pointers. I've edited it. – Craig Gidney Jul 15 '14 at 14:12