Talk:3062: Off By One

Explain xkcd: It's 'cause you're dumb.
Revision as of 15:50, 13 March 2025 by 172.69.195.4 (talk)
Jump to: navigation, search

But what about floats? GreyFox (talk) 20:01, 12 March 2025 (UTC)

Is this dithering? Hcs (talk) 21:19, 12 March 2025 (UTC)

Could be. --PRR (talk) 22:19, 12 March 2025 (UTC)

But if it's adjusted both on store and on read, then there is a chance (of about 1 in 22) that the value after read will be exactly the same as the value before store. This does not eliminate pre-existing off-by-one errors, and in fact, introduces new ones if the adjustment on read is off by one from the adjustment on store, when there was no off-by-one error in the original code. And what's worse - with a single store-read cycle, the value can never be off by 40 to 50. It can be off by up to 10, or by between 80 to 100, in either direction. --NeatNit (talk) 22:42, 12 March 2025 (UTC)

I was just adjusting the explanation to imply this sort of thing (without having read your comment, just yet). Given the assumption that n=n±(40+rand(11)) at every stage (I'm assuming 'inclusive', Snaxmcgee!), two steps of 'intentional adjustment' might result in: -100 (x1), -99 (x2), -98 (x3), -97 (x4), -96 (x5), -95 (x6), -94 (x7), -93 (x8), -92 (x9), -91 (x10), -90 (x11), -89..-80 (x10..x1), -10 (x2), -9 (x4), -8 (x6), -7 (x8), -6 (x10), -5 (x12), -4 (x14), -3 (x16), -2 (x18), -1 (x20), ±0 (x22), +1..+10 (x20..x2), +80..+90..+100 (x1..x11..x1).
This gives a chance of being entirely correct as 22/484 (4.5454...%) and each off-by-one as very slightly less (though ±1, in total is almost twice as likely!).
Adding further steps (skipping odd step-cummulations, at least at first, until you get to nine of them and everything entirely stops being discontinuous) just spreads out an increased number of highs right next to zero deflection... 172.70.86.129 23:38, 12 March 2025 (UTC)
Obligatory quote:
There are two hard things in computer science: cache invalidation, naming things, and off-by-one errors.
See here for a full story of this quote: https://twitter.com/codinghorror/status/506010907021828096
--162.158.129.64 08:28, 13 March 2025 (UTC)
And 3 hard things in distributed computing: 3. Delivering messages exactly one time, 2. Making sure things happen in the correct order, and 3. Delivering messages exactly one time Jamcdonald (talk)
Presumably 1 is not losing data? --NeatNit (talk) 10:19, 13 March 2025 (UTC)

In the comic, Cueball clearly says the adjustment amounts is ‘’between’’ 40 and 50, yet this explanation says the adjustment is from 40 to 50, ironically making an off-by-1 error on both ends of the range. Neither integers 40 nor 50 are “between 40 and 50”. 172.71.154.39 10:43, 13 March 2025 (UTC)

English language is imprecise with its use of "between", but it's usually taken as inclusive. Most people, when asked, "Pick a number between 1 and 10," will assume that 1 and 10 are both valid choices. Even in computing, you have things like Excel's RANDBETWEEN function to generate random integers between two bounds, which is inclusive. 104.23.187.72 (talk) 13:28, 13 March 2025 (please sign your comments with ~~~~)
Interestingly, in German such ranges are defined as including the borders, in Dutch they're defined as excluding the borders. (hence the Dutch t/m ("tot en met" - "up to, and including") 104.23.170.81 15:28, 13 March 2025 (UTC)
Yes, see between#Usage notes as one overview. Between as in "within the bounds defined by" is different from "amongst those things of which these items are the defining outer examples". Especially, but not exclusively, when that's just two distinct items which have no valid intermediate states betwixt the two to choose from ("you have to choose between me and my sister" isn't usually satisfactoraily answerable by choosing a different sibling, or perhaps parent, of the two). 172.69.195.54 15:24, 13 March 2025 (UTC)

It's easy to make an off-by-one error without using a computer at all. Ask a friend how many fenceposts are needed for a 100-foot fence if the rails are ten feet long. 172.71.30.199 12:58, 13 March 2025 (UTC)

And how wide are the posts..? ;) 141.101.98.6 15:27, 13 March 2025 (UTC)

I don't understand - what's all this got to do with water balloons? 172.70.86.129 15:37, 13 March 2025 (UTC)

(ISWYDT...) 171.68.193.204 16:47, 14 February 2026 (UTC)