51 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
		
		
			
		
	
	
			51 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| 
								 | 
							
								---
							 | 
						||
| 
								 | 
							
								id: 5900f3df1000cf542c50fef1
							 | 
						||
| 
								 | 
							
								title: 'Problem 115: Counting block combinations II'
							 | 
						||
| 
								 | 
							
								challengeType: 5
							 | 
						||
| 
								 | 
							
								forumTopicId: 301741
							 | 
						||
| 
								 | 
							
								dashedName: problem-115-counting-block-combinations-ii
							 | 
						||
| 
								 | 
							
								---
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# --description--
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								NOTE: This is a more difficult version of Problem 114.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								A row measuring n units in length has red blocks with a minimum length of m units placed on it, such that any two red blocks (which are allowed to be different lengths) are separated by at least one black square.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Let the fill-count function, F(m, n), represent the number of ways that a row can be filled.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								For example, F(3, 29) = 673135 and F(3, 30) = 1089155.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								That is, for m = 3, it can be seen that n = 30 is the smallest value for which the fill-count function first exceeds one million.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								In the same way, for m = 10, it can be verified that F(10, 56) = 880711 and F(10, 57) = 1148904, so n = 57 is the least value for which the fill-count function first exceeds one million.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								For m = 50, find the least value of n for which the fill-count function first exceeds one million.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# --hints--
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								`euler115()` should return 168.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								```js
							 | 
						||
| 
								 | 
							
								assert.strictEqual(euler115(), 168);
							 | 
						||
| 
								 | 
							
								```
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# --seed--
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								## --seed-contents--
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								```js
							 | 
						||
| 
								 | 
							
								function euler115() {
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  return true;
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								euler115();
							 | 
						||
| 
								 | 
							
								```
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# --solutions--
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								```js
							 | 
						||
| 
								 | 
							
								// solution required
							 | 
						||
| 
								 | 
							
								```
							 |