| 
									
										
										
										
											2021-06-15 00:49:18 -07:00
										 |  |  | --- | 
					
						
							|  |  |  | id: 5900f4b01000cf542c50ffc2 | 
					
						
							| 
									
										
										
										
											2021-11-19 10:31:54 -08:00
										 |  |  | title: 'Problema 323: Operações bitwise-OR em números inteiros aleatórios' | 
					
						
							| 
									
										
										
										
											2021-06-15 00:49:18 -07:00
										 |  |  | challengeType: 5 | 
					
						
							|  |  |  | forumTopicId: 301980 | 
					
						
							|  |  |  | dashedName: problem-323-bitwise-or-operations-on-random-integers | 
					
						
							|  |  |  | --- | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # --description--
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-11-19 10:31:54 -08:00
										 |  |  | Considere $y_0, y_1, y_2, \ldots$ como uma sequência aleatória de números inteiros de 32 bits sem sinal | 
					
						
							| 
									
										
										
										
											2021-06-15 00:49:18 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-11-19 10:31:54 -08:00
										 |  |  | (ou seja, $0 ≤ y_i < 2^{32}$, sendo cada valor igualmente possível). | 
					
						
							| 
									
										
										
										
											2021-06-15 00:49:18 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-11-19 10:31:54 -08:00
										 |  |  | Para a sequência $x_i$ é dada a seguinte recursão: | 
					
						
							| 
									
										
										
										
											2021-06-15 00:49:18 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-11-19 10:31:54 -08:00
										 |  |  | - $x_0 = 0$ e | 
					
						
							|  |  |  | - $x_i = x_{i - 1} \mathbf{|} y_{i - 1}$, para $i > 0$. ($\mathbf{|}$ é a operação bitwise-OR) | 
					
						
							| 
									
										
										
										
											2021-06-15 00:49:18 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-11-19 10:31:54 -08:00
										 |  |  | Pode-se ver que, eventualmente, haverá um índice $N$, tal que $x_i = 2^{32} - 1$ (um padrão de bits somente composto de 1s) para todos $i ≥ N$. | 
					
						
							| 
									
										
										
										
											2021-06-15 00:49:18 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-11-19 10:31:54 -08:00
										 |  |  | Encontre o valor esperado de $N$. Dê sua resposta arredondada para 10 algarismos após o ponto (10 casas depois da vírgula). | 
					
						
							| 
									
										
										
										
											2021-06-15 00:49:18 -07:00
										 |  |  | 
 | 
					
						
							|  |  |  | # --hints--
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-11-19 10:31:54 -08:00
										 |  |  | `bitwiseOrOnRandomIntegers()` deve retornar `6.3551758451`. | 
					
						
							| 
									
										
										
										
											2021-06-15 00:49:18 -07:00
										 |  |  | 
 | 
					
						
							|  |  |  | ```js | 
					
						
							| 
									
										
										
										
											2021-11-19 10:31:54 -08:00
										 |  |  | assert.strictEqual(bitwiseOrOnRandomIntegers(), 6.3551758451); | 
					
						
							| 
									
										
										
										
											2021-06-15 00:49:18 -07:00
										 |  |  | ``` | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # --seed--
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ## --seed-contents--
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ```js | 
					
						
							| 
									
										
										
										
											2021-11-19 10:31:54 -08:00
										 |  |  | function bitwiseOrOnRandomIntegers() { | 
					
						
							| 
									
										
										
										
											2021-06-15 00:49:18 -07:00
										 |  |  | 
 | 
					
						
							|  |  |  |   return true; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-11-19 10:31:54 -08:00
										 |  |  | bitwiseOrOnRandomIntegers(); | 
					
						
							| 
									
										
										
										
											2021-06-15 00:49:18 -07:00
										 |  |  | ``` | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # --solutions--
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ```js | 
					
						
							|  |  |  | // solution required | 
					
						
							|  |  |  | ``` |