champagne wrote:Waiting now for Blue's first shot
The code doesn't actually run a single grid at a time, due to the "divide and conquer" approach.
I can run a crippled version, that does to that, but I still need to run two passes.
One pass catches 17's where one band (or stack) has 7 or more clues.
The other catches 17's that are 6+6+5 in both directions.
The outputs for the 100 grids, are below.
Adding the averages, it's ~1.57 seconds per grid.
The normal code, runs in two passes over 983,959,110 (ED) band 1&2 fills, and takes ~1.04s total, per "input".
Multiplying by (983,959,110 inputs)/(5,472,730,538 canonical grids), gives ~0.19s per grid.
N+x+y,N>=7:
Hidden Text: Show
grid 1: 0.25s, avg = 0.249602s
grid 2: 0.11s, avg = 0.179401s
grid 3: 0.23s, avg = 0.197601s
grid 4: 0.09s, avg = 0.171601s
grid 5: 0.45s, avg = 0.227761s
grid 6: 0.06s, avg = 0.200201s
grid 7: 0.16s, avg = 0.193887s
grid 8: 0.08s, avg = 0.179401s
grid 9: 0.45s, avg = 0.209735s
grid 10: 0.06s, avg = 0.195001s
grid 11: 0.44s, avg = 0.216983s
grid 12: 0.11s, avg = 0.208001s
grid 13: 0.73s, avg = 0.248402s
grid 14: 0.11s, avg = 0.238459s
grid 15: 0.33s, avg = 0.244402s
grid 16: 0.14s, avg = 0.237902s
grid 17: 0.80s, avg = 0.270708s
grid 18: 0.22s, avg = 0.267802s
grid 19: 0.09s, avg = 0.258633s
grid 20: 0.47s, avg = 0.269102s
grid 21: 0.11s, avg = 0.261487s
grid 22: 0.16s, avg = 0.256693s
grid 23: 0.05s, avg = 0.247567s
grid 24: 0.66s, avg = 0.264552s
grid 25: 0.12s, avg = 0.258962s
grid 26: 0.19s, avg = 0.256202s
grid 27: 0.31s, avg = 0.258268s
grid 28: 0.17s, avg = 0.255173s
grid 29: 0.09s, avg = 0.249602s
grid 30: 0.30s, avg = 0.251162s
grid 31: 0.17s, avg = 0.248595s
grid 32: 0.08s, avg = 0.243264s
grid 33: 0.76s, avg = 0.259056s
grid 34: 0.09s, avg = 0.254190s
grid 35: 0.14s, avg = 0.250939s
grid 36: 0.19s, avg = 0.249168s
grid 37: 0.06s, avg = 0.244120s
grid 38: 0.58s, avg = 0.252886s
grid 39: 0.12s, avg = 0.249602s
grid 40: 0.64s, avg = 0.259352s
grid 41: 0.11s, avg = 0.255689s
grid 42: 0.08s, avg = 0.251459s
grid 43: 0.14s, avg = 0.248876s
grid 44: 0.08s, avg = 0.244992s
grid 45: 0.06s, avg = 0.240935s
grid 46: 0.06s, avg = 0.237054s
grid 47: 0.42s, avg = 0.240972s
grid 48: 0.47s, avg = 0.245702s
grid 49: 0.25s, avg = 0.245781s
grid 50: 0.06s, avg = 0.242114s
grid 51: 0.12s, avg = 0.239813s
grid 52: 0.17s, avg = 0.238502s
grid 53: 0.42s, avg = 0.241949s
grid 54: 0.20s, avg = 0.241224s
grid 55: 0.27s, avg = 0.241660s
grid 56: 1.44s, avg = 0.262973s
grid 57: 0.05s, avg = 0.259181s
grid 58: 0.12s, avg = 0.256864s
grid 59: 0.14s, avg = 0.254890s
grid 60: 1.15s, avg = 0.269882s
grid 61: 0.37s, avg = 0.271595s
grid 62: 0.05s, avg = 0.267969s
grid 63: 0.17s, avg = 0.266440s
grid 64: 0.34s, avg = 0.267639s
grid 65: 0.03s, avg = 0.264002s
grid 66: 0.20s, avg = 0.263074s
grid 67: 1.19s, avg = 0.276844s
grid 68: 0.12s, avg = 0.274608s
grid 69: 0.31s, avg = 0.275150s
grid 70: 0.28s, avg = 0.275230s
grid 71: 0.08s, avg = 0.272452s
grid 72: 0.16s, avg = 0.270835s
grid 73: 0.42s, avg = 0.272895s
grid 74: 0.09s, avg = 0.270472s
grid 75: 0.09s, avg = 0.268114s
grid 76: 0.42s, avg = 0.270128s
grid 77: 0.06s, avg = 0.267430s
grid 78: 0.33s, avg = 0.268202s
grid 79: 0.22s, avg = 0.267571s
grid 80: 0.08s, avg = 0.265202s
grid 81: 0.20s, avg = 0.264431s
grid 82: 0.08s, avg = 0.262158s
grid 83: 0.50s, avg = 0.265014s
grid 84: 0.19s, avg = 0.264087s
grid 85: 0.95s, avg = 0.272176s
grid 86: 0.19s, avg = 0.271188s
grid 87: 0.05s, avg = 0.268609s
grid 88: 0.34s, avg = 0.269456s
grid 89: 0.55s, avg = 0.272564s
grid 90: 0.20s, avg = 0.271788s
grid 91: 0.12s, avg = 0.270173s
grid 92: 0.05s, avg = 0.267745s
grid 93: 0.14s, avg = 0.266376s
grid 94: 0.28s, avg = 0.266529s
grid 95: 0.06s, avg = 0.264381s
grid 96: 0.41s, avg = 0.265852s
grid 97: 0.30s, avg = 0.266167s
grid 98: 0.47s, avg = 0.268226s
grid 99: 0.03s, avg = 0.265832s
grid 100: 0.42s, avg = 0.267386s
grid 2: 0.11s, avg = 0.179401s
grid 3: 0.23s, avg = 0.197601s
grid 4: 0.09s, avg = 0.171601s
grid 5: 0.45s, avg = 0.227761s
grid 6: 0.06s, avg = 0.200201s
grid 7: 0.16s, avg = 0.193887s
grid 8: 0.08s, avg = 0.179401s
grid 9: 0.45s, avg = 0.209735s
grid 10: 0.06s, avg = 0.195001s
grid 11: 0.44s, avg = 0.216983s
grid 12: 0.11s, avg = 0.208001s
grid 13: 0.73s, avg = 0.248402s
grid 14: 0.11s, avg = 0.238459s
grid 15: 0.33s, avg = 0.244402s
grid 16: 0.14s, avg = 0.237902s
grid 17: 0.80s, avg = 0.270708s
grid 18: 0.22s, avg = 0.267802s
grid 19: 0.09s, avg = 0.258633s
grid 20: 0.47s, avg = 0.269102s
grid 21: 0.11s, avg = 0.261487s
grid 22: 0.16s, avg = 0.256693s
grid 23: 0.05s, avg = 0.247567s
grid 24: 0.66s, avg = 0.264552s
grid 25: 0.12s, avg = 0.258962s
grid 26: 0.19s, avg = 0.256202s
grid 27: 0.31s, avg = 0.258268s
grid 28: 0.17s, avg = 0.255173s
grid 29: 0.09s, avg = 0.249602s
grid 30: 0.30s, avg = 0.251162s
grid 31: 0.17s, avg = 0.248595s
grid 32: 0.08s, avg = 0.243264s
grid 33: 0.76s, avg = 0.259056s
grid 34: 0.09s, avg = 0.254190s
grid 35: 0.14s, avg = 0.250939s
grid 36: 0.19s, avg = 0.249168s
grid 37: 0.06s, avg = 0.244120s
grid 38: 0.58s, avg = 0.252886s
grid 39: 0.12s, avg = 0.249602s
grid 40: 0.64s, avg = 0.259352s
grid 41: 0.11s, avg = 0.255689s
grid 42: 0.08s, avg = 0.251459s
grid 43: 0.14s, avg = 0.248876s
grid 44: 0.08s, avg = 0.244992s
grid 45: 0.06s, avg = 0.240935s
grid 46: 0.06s, avg = 0.237054s
grid 47: 0.42s, avg = 0.240972s
grid 48: 0.47s, avg = 0.245702s
grid 49: 0.25s, avg = 0.245781s
grid 50: 0.06s, avg = 0.242114s
grid 51: 0.12s, avg = 0.239813s
grid 52: 0.17s, avg = 0.238502s
grid 53: 0.42s, avg = 0.241949s
grid 54: 0.20s, avg = 0.241224s
grid 55: 0.27s, avg = 0.241660s
grid 56: 1.44s, avg = 0.262973s
grid 57: 0.05s, avg = 0.259181s
grid 58: 0.12s, avg = 0.256864s
grid 59: 0.14s, avg = 0.254890s
grid 60: 1.15s, avg = 0.269882s
grid 61: 0.37s, avg = 0.271595s
grid 62: 0.05s, avg = 0.267969s
grid 63: 0.17s, avg = 0.266440s
grid 64: 0.34s, avg = 0.267639s
grid 65: 0.03s, avg = 0.264002s
grid 66: 0.20s, avg = 0.263074s
grid 67: 1.19s, avg = 0.276844s
grid 68: 0.12s, avg = 0.274608s
grid 69: 0.31s, avg = 0.275150s
grid 70: 0.28s, avg = 0.275230s
grid 71: 0.08s, avg = 0.272452s
grid 72: 0.16s, avg = 0.270835s
grid 73: 0.42s, avg = 0.272895s
grid 74: 0.09s, avg = 0.270472s
grid 75: 0.09s, avg = 0.268114s
grid 76: 0.42s, avg = 0.270128s
grid 77: 0.06s, avg = 0.267430s
grid 78: 0.33s, avg = 0.268202s
grid 79: 0.22s, avg = 0.267571s
grid 80: 0.08s, avg = 0.265202s
grid 81: 0.20s, avg = 0.264431s
grid 82: 0.08s, avg = 0.262158s
grid 83: 0.50s, avg = 0.265014s
grid 84: 0.19s, avg = 0.264087s
grid 85: 0.95s, avg = 0.272176s
grid 86: 0.19s, avg = 0.271188s
grid 87: 0.05s, avg = 0.268609s
grid 88: 0.34s, avg = 0.269456s
grid 89: 0.55s, avg = 0.272564s
grid 90: 0.20s, avg = 0.271788s
grid 91: 0.12s, avg = 0.270173s
grid 92: 0.05s, avg = 0.267745s
grid 93: 0.14s, avg = 0.266376s
grid 94: 0.28s, avg = 0.266529s
grid 95: 0.06s, avg = 0.264381s
grid 96: 0.41s, avg = 0.265852s
grid 97: 0.30s, avg = 0.266167s
grid 98: 0.47s, avg = 0.268226s
grid 99: 0.03s, avg = 0.265832s
grid 100: 0.42s, avg = 0.267386s
2x(6+6+5):
Hidden Text: Show
grid 1: 1.06s, avg = 1.060807s
grid 2: 1.01s, avg = 1.037407s
grid 3: 0.89s, avg = 0.988006s
grid 4: 0.47s, avg = 0.858006s
grid 5: 1.50s, avg = 0.985926s
grid 6: 0.16s, avg = 0.847605s
grid 7: 1.15s, avg = 0.891434s
grid 8: 0.80s, avg = 0.879456s
grid 9: 2.20s, avg = 1.026140s
grid 10: 0.08s, avg = 0.931326s
grid 11: 1.84s, avg = 1.014006s
grid 12: 0.94s, avg = 1.007506s
grid 13: 2.56s, avg = 1.126807s
grid 14: 1.09s, avg = 1.124321s
grid 15: 2.90s, avg = 1.242808s
grid 16: 0.69s, avg = 1.208033s
grid 17: 5.29s, avg = 1.448056s
grid 18: 0.89s, avg = 1.417009s
grid 19: 0.92s, avg = 1.390872s
grid 20: 2.65s, avg = 1.453929s
grid 21: 1.17s, avg = 1.440409s
grid 22: 0.33s, avg = 1.389827s
grid 23: 0.11s, avg = 1.334148s
grid 24: 3.53s, avg = 1.425459s
grid 25: 1.22s, avg = 1.417113s
grid 26: 1.11s, avg = 1.405209s
grid 27: 1.36s, avg = 1.403431s
grid 28: 1.08s, avg = 1.391752s
grid 29: 1.08s, avg = 1.380878s
grid 30: 1.25s, avg = 1.376449s
grid 31: 1.05s, avg = 1.365764s
grid 32: 0.37s, avg = 1.334784s
grid 33: 1.15s, avg = 1.329318s
grid 34: 0.41s, avg = 1.302150s
grid 35: 0.97s, avg = 1.292580s
grid 36: 0.87s, avg = 1.280942s
grid 37: 0.12s, avg = 1.249694s
grid 38: 0.80s, avg = 1.237745s
grid 39: 0.33s, avg = 1.214408s
grid 40: 2.68s, avg = 1.251128s
grid 41: 0.44s, avg = 1.231266s
grid 42: 0.25s, avg = 1.207893s
grid 43: 0.70s, avg = 1.196129s
grid 44: 0.09s, avg = 1.171071s
grid 45: 0.31s, avg = 1.151981s
grid 46: 0.28s, avg = 1.133042s
grid 47: 1.19s, avg = 1.134160s
grid 48: 1.79s, avg = 1.147907s
grid 49: 1.70s, avg = 1.159183s
grid 50: 0.14s, avg = 1.138807s
grid 51: 0.33s, avg = 1.122901s
grid 52: 1.64s, avg = 1.132807s
grid 53: 1.36s, avg = 1.137041s
grid 54: 0.81s, avg = 1.131007s
grid 55: 1.22s, avg = 1.132567s
grid 56: 3.70s, avg = 1.178365s
grid 57: 0.19s, avg = 1.160976s
grid 58: 1.00s, avg = 1.158173s
grid 59: 0.95s, avg = 1.154672s
grid 60: 11.76s, avg = 1.331469s
grid 61: 1.29s, avg = 1.330868s
grid 62: 0.33s, avg = 1.314686s
grid 63: 0.81s, avg = 1.306694s
grid 64: 0.76s, avg = 1.298221s
grid 65: 0.14s, avg = 1.280408s
grid 66: 0.47s, avg = 1.268099s
grid 67: 3.24s, avg = 1.297602s
grid 68: 0.27s, avg = 1.282420s
grid 69: 2.03s, avg = 1.293226s
grid 70: 1.00s, avg = 1.289014s
grid 71: 0.70s, avg = 1.280746s
grid 72: 0.33s, avg = 1.267508s
grid 73: 2.85s, avg = 1.289252s
grid 74: 0.98s, avg = 1.285111s
grid 75: 0.58s, avg = 1.275672s
grid 76: 1.97s, avg = 1.284750s
grid 77: 0.33s, avg = 1.272320s
grid 78: 1.68s, avg = 1.277608s
grid 79: 0.30s, avg = 1.265188s
grid 80: 0.16s, avg = 1.251323s
grid 81: 1.05s, avg = 1.248778s
grid 82: 0.30s, avg = 1.237164s
grid 83: 4.98s, avg = 1.282215s
grid 84: 0.73s, avg = 1.275680s
grid 85: 3.82s, avg = 1.305637s
grid 86: 1.23s, avg = 1.304785s
grid 87: 0.39s, avg = 1.294270s
grid 88: 4.21s, avg = 1.327427s
grid 89: 3.28s, avg = 1.349321s
grid 90: 0.34s, avg = 1.338142s
grid 91: 0.45s, avg = 1.328409s
grid 92: 0.19s, avg = 1.316004s
grid 93: 0.83s, avg = 1.310744s
grid 94: 1.26s, avg = 1.310242s
grid 95: 0.67s, avg = 1.303512s
grid 96: 1.54s, avg = 1.306021s
grid 97: 1.87s, avg = 1.311856s
grid 98: 0.89s, avg = 1.307543s
grid 99: 0.11s, avg = 1.295439s
grid 100: 2.25s, avg = 1.304948s
grid 2: 1.01s, avg = 1.037407s
grid 3: 0.89s, avg = 0.988006s
grid 4: 0.47s, avg = 0.858006s
grid 5: 1.50s, avg = 0.985926s
grid 6: 0.16s, avg = 0.847605s
grid 7: 1.15s, avg = 0.891434s
grid 8: 0.80s, avg = 0.879456s
grid 9: 2.20s, avg = 1.026140s
grid 10: 0.08s, avg = 0.931326s
grid 11: 1.84s, avg = 1.014006s
grid 12: 0.94s, avg = 1.007506s
grid 13: 2.56s, avg = 1.126807s
grid 14: 1.09s, avg = 1.124321s
grid 15: 2.90s, avg = 1.242808s
grid 16: 0.69s, avg = 1.208033s
grid 17: 5.29s, avg = 1.448056s
grid 18: 0.89s, avg = 1.417009s
grid 19: 0.92s, avg = 1.390872s
grid 20: 2.65s, avg = 1.453929s
grid 21: 1.17s, avg = 1.440409s
grid 22: 0.33s, avg = 1.389827s
grid 23: 0.11s, avg = 1.334148s
grid 24: 3.53s, avg = 1.425459s
grid 25: 1.22s, avg = 1.417113s
grid 26: 1.11s, avg = 1.405209s
grid 27: 1.36s, avg = 1.403431s
grid 28: 1.08s, avg = 1.391752s
grid 29: 1.08s, avg = 1.380878s
grid 30: 1.25s, avg = 1.376449s
grid 31: 1.05s, avg = 1.365764s
grid 32: 0.37s, avg = 1.334784s
grid 33: 1.15s, avg = 1.329318s
grid 34: 0.41s, avg = 1.302150s
grid 35: 0.97s, avg = 1.292580s
grid 36: 0.87s, avg = 1.280942s
grid 37: 0.12s, avg = 1.249694s
grid 38: 0.80s, avg = 1.237745s
grid 39: 0.33s, avg = 1.214408s
grid 40: 2.68s, avg = 1.251128s
grid 41: 0.44s, avg = 1.231266s
grid 42: 0.25s, avg = 1.207893s
grid 43: 0.70s, avg = 1.196129s
grid 44: 0.09s, avg = 1.171071s
grid 45: 0.31s, avg = 1.151981s
grid 46: 0.28s, avg = 1.133042s
grid 47: 1.19s, avg = 1.134160s
grid 48: 1.79s, avg = 1.147907s
grid 49: 1.70s, avg = 1.159183s
grid 50: 0.14s, avg = 1.138807s
grid 51: 0.33s, avg = 1.122901s
grid 52: 1.64s, avg = 1.132807s
grid 53: 1.36s, avg = 1.137041s
grid 54: 0.81s, avg = 1.131007s
grid 55: 1.22s, avg = 1.132567s
grid 56: 3.70s, avg = 1.178365s
grid 57: 0.19s, avg = 1.160976s
grid 58: 1.00s, avg = 1.158173s
grid 59: 0.95s, avg = 1.154672s
grid 60: 11.76s, avg = 1.331469s
grid 61: 1.29s, avg = 1.330868s
grid 62: 0.33s, avg = 1.314686s
grid 63: 0.81s, avg = 1.306694s
grid 64: 0.76s, avg = 1.298221s
grid 65: 0.14s, avg = 1.280408s
grid 66: 0.47s, avg = 1.268099s
grid 67: 3.24s, avg = 1.297602s
grid 68: 0.27s, avg = 1.282420s
grid 69: 2.03s, avg = 1.293226s
grid 70: 1.00s, avg = 1.289014s
grid 71: 0.70s, avg = 1.280746s
grid 72: 0.33s, avg = 1.267508s
grid 73: 2.85s, avg = 1.289252s
grid 74: 0.98s, avg = 1.285111s
grid 75: 0.58s, avg = 1.275672s
grid 76: 1.97s, avg = 1.284750s
grid 77: 0.33s, avg = 1.272320s
grid 78: 1.68s, avg = 1.277608s
grid 79: 0.30s, avg = 1.265188s
grid 80: 0.16s, avg = 1.251323s
grid 81: 1.05s, avg = 1.248778s
grid 82: 0.30s, avg = 1.237164s
grid 83: 4.98s, avg = 1.282215s
grid 84: 0.73s, avg = 1.275680s
grid 85: 3.82s, avg = 1.305637s
grid 86: 1.23s, avg = 1.304785s
grid 87: 0.39s, avg = 1.294270s
grid 88: 4.21s, avg = 1.327427s
grid 89: 3.28s, avg = 1.349321s
grid 90: 0.34s, avg = 1.338142s
grid 91: 0.45s, avg = 1.328409s
grid 92: 0.19s, avg = 1.316004s
grid 93: 0.83s, avg = 1.310744s
grid 94: 1.26s, avg = 1.310242s
grid 95: 0.67s, avg = 1.303512s
grid 96: 1.54s, avg = 1.306021s
grid 97: 1.87s, avg = 1.311856s
grid 98: 0.89s, avg = 1.307543s
grid 99: 0.11s, avg = 1.295439s
grid 100: 2.25s, avg = 1.304948s