3 ms·
You don't need to start at 0 to count intervals between objects, it's just easier to say "one" and point your finger to the space to the right of the leftmost i
by TuringTest 6y ago
You don't need to start at 0 to count intervals between objects, it's just easier to say "one" and point your finger to the space to the right of the leftmost item.
- nybble41 6y ago> … and point your finger to the space to the right of the leftmost item. What if there is no leftmost item? Because you skipped the first step, essentially assuming that there was at least one item and including it in your initial condition, that process fails when the set of objects to be counted is empty. Humans are good at dealing with special cases like this; they'll notice the discrepancy and report "zero" instead of following through with the predetermined process. Computers, not so much. So instead we start with a count of zero and all items in the as-yet-uncounted set as our initial condition, and increment the count by one as we move each item from the "uncounted" set to the "counted" set, which correctly handles the case of the empty set.
- TuringTest 6y agoThis whole subthread was about what comes as a natural procedure to humans. Arguing that computers may need a different process is moot. Anyway, to handle the exception, you could start the algorithm with a "check for the empty collection" base case; that would make it a natural definition for a computational recursive definition as well.
- nybble41 6y agoMy point was that the natural procedure for computers is also more natural for humans, since it involves fewer special cases. Humans are better than computers at dealing with ad-hoc special cases but that doesn't make them natural.
- TuringTest 6y agoHaving fewer special cases doesn't make it more natural, when those special cases are intuitive and forcing a single homogeneous process feels weird. The brain is very good at finding patterns for special cases and very bad at following repetitive orders.