But if you split up the solutions and systematically eliminate them, then you would only expect to sample half of them, actually (n+1)/2. If you systematically try to guess numbers between 1 and 10 without repeating the same guess, you will expect to guess 5.5 times before you get it. So if you are eliminating known wrong solutions you cut your work time in half. You will never guess more than 10 times. I was wondering if pools are doing this, or if the Bitcoin protocol somehow incorporated it automatically.
No because there is no defined space or more technically the defined space is constantly changing.
The input for a hash is:
merkle root hash (a hash of all transactions in block including the pool reward address so you can't cheat)
hash of the last block (prevents you from working on block "ahead of time" and also creates the "chain")
timestamp (current time)
nonce (a 32 bit number 2^23)
So a miner will try every nonce value. That is defined space. There are roughly 4 billion possibilities however at current difficulty (1.2 million) there is only a 1 in 1.2 million chance that any value in the nonce range will produce a value hash. 1,199,999 out of 1,200,000 complete nonce ranges (4 billion hashes) will produce no solution (on average).
So once that defined space is exausted your miner gets new work. The simplest way to get new work is simply increment the timestamp and now you are working on an entire new solution space. Each complete nonce range hashed gives you a 1 / (difficulty) chance of finding the solution.
Periodically the pool will update the other elements in block header. When a block is found the header changes to reflect new "last block hash". As transactions are added they change the merkle root hash. To avoid 2 miners in same pool duplicating work the pool uses a value called "Extra nonce" in the coinbase transaction to ensure each miner is given a unique blockheader to work on at all times.