una tener relaciones rapido quiero quedar que puedo puede primeriza pastillas para mujeres mujer mejor ideal hombre hijos hasta hacer embarazada edad despues cual como bebe amor algorithm math search

algorithm - tener - que hacer despues de hacer el amor para quedar embarazada



La mejor forma de buscar un valor de saturación en una lista ordenada (5)

Dado que es una pregunta de entrevista, considere

  1. La costosa operación es el mono subiendo y bajando las escaleras, sin tirar el coco. Al pensarlo de esta manera, el enfoque "lineal" es en realidad N 2 .

  2. La energía impartida al coco por la caída es aproximadamente proporcional a la altura de la gota. Si el caparazón se rompe después de absorber cierta cantidad de energía en TODAS sus caídas ...

Una pregunta de Math Battle . Esta pregunta en particular también me fue formulada en una de mis entrevistas de trabajo.

"Un mono tiene dos cocos. Está jugando tontamente arrojando coco desde los balcones del edificio de pisos M. El mono quiere saber el piso más bajo cuando se rompe el coco. ¿Cuál es el número mínimo de intentos necesarios para establecer ese hecho? "

Condiciones: si un coco está roto, no puede volver a usarlo. Te quedan solo con el otro coco

Posibles enfoques / estrategias que puedo pensar son

  • Descomposiones binarias y una vez que encuentre el piso en el que se rompe el coco utilice el conteo ascendente del último índice binario descompuesto encontrado.
  • Ventana / Rebanadas de conjuntos más pequeños de pisos y uso de división binaria dentro de la Ventana / Rebanada (pero en el lado negativo esto requeriría un algoritmo de Rebanar propio).

Preguntándose si hay otras formas de hacer esto.


La mejor solución que conozco es 2 * sqrt (n). Suelta el primer coco de sqrt (n), 2 * sqrt (n), ... hasta n (o hasta que se rompa). Luego suelte el segundo desde el último punto "seguro" conocido, en incrementos de un piso hasta que se rompa. Ambas etapas toman como máximo sqrt (n) throws.

Editar: Puede mejorar la constante dentro de O (sqrt (n)), ver comentario por recursivo. Creo que el primer paso debería ser alrededor de sqrt (2 * n) y disminuir en 1 con cada lanzamiento, de modo que el último paso (si la altura de corte es en realidad n) es exactamente 1. Los detalles deben ser descifrados por los lectores :)


Las preguntas de la entrevista como esta están diseñadas para ver cómo piensas. Entonces, probablemente mencionaría una solución O (N ^ 0.5) como la anterior, pero también daría la siguiente discusión ...

Dado que los cocos pueden tener grietas internas con el tiempo, los resultados pueden no ser tan consistentes con una solución O (N ^ 0.5). Aunque la solución O (N ^ 0.5) es eficiente, no es del todo confiable.

Recomendaría una solución O (N) lineal con el primer coco, y luego verificaría el resultado con el segundo coco. Donde N es el número de pisos en el edificio. Entonces, para el primer coco, prueba el primer piso, luego el segundo, luego el tercero, ...

Suponiendo que ambos cocos se construyen estructuralmente exactamente igual y se dejan caer en el mismo ángulo exacto, entonces puede tirar el segundo coco directamente en el piso que rompió el primero. Llame a este coco rompiendo el piso B.

Para coco # 2, no necesita probar en 1..B-1 porque ya sabe que el primer cocounut no se rompió en el piso B-1, B-2, ... 1. Así que solo necesita probarlo en B.

Si el segundo coco se rompe con B, entonces sabes que B es el piso en cuestión. Si no se rompe puede deducir que hubo grietas internas y degradación del coco con el tiempo y que la prueba es defectuosa desde el principio. Necesitas más cocos.

Dado que los tamaños de construcción son bastante limitados, la confianza adicional en su solución vale la solución O (N).

Como mencionó @ Rafał Dowgird, la solución también depende de si el mono en cuestión es un mono africano o un mono europeo. Es de conocimiento común que los monos africanos lanzan con una fuerza mucho mayor. Por lo tanto, hacer que el piso de ruptura B solo sea preciso con una variación de +/- 2 pisos.

Para garantizar que el mono no se cansa de todas esas escaleras, también sería aconsejable unir una cuerda al primer coco. De esta forma no es necesario hacer 1 + 2 + .. + B = B * (B + 1) / 2 tramos de escaleras para el primer coco. Solo necesitarías hacer exactamente B tramos de escaleras.

Puede parecer que el número de tramos de escaleras no es relevante para este problema, pero si el mono se cansa en primer lugar, es posible que nunca lleguemos a una solución. Esto da nuevas consideraciones para el problema de detención .

También estamos haciendo la suposición de que el edificio reside en la tierra y la gravedad se establece en 9.8m / s ^ 2. También asumiremos que no existen ondas de gravitación.


Una búsqueda binaria no es la respuesta, porque solo tiene una oportunidad de sobreestimar. La búsqueda binaria requiere log m sobreestimaciones máximas.

Este es un enfoque de dos fases. El primero es recorrer los pisos con pasos relativamente grandes. Después de que el primer coco se rompe, la segunda fase es probar cada piso comenzando después del último piso seguro.

Los grandes pasos son aproximadamente sqrt(m) , pero son más grandes al principio y más pequeños más adelante porque si el primer coco se rompe antes, puede permitirse más iteraciones en la segunda fase.

StepSize = (minimum s such that s * (s + 1) / 2 >= m) CurrentFloor = 0 While no coconuts broken { CurrentFloor += StepSize StepSize -= 1 Drop coconut from CurrentFloor } CurrentFloor -= StepSize + 1 While one remains coconut unbroken { CurrentFloor += 1 Drop remaining coconut from CurrentFloor } // CurrentFloor is now set to the lowest floor that will break the coconut, // using no more total drops than the original value of StepSize


Pregunta de entrevista dura Me tomó varios días.

Creo que el # de tries es 1.5 veces SQRT de # pisos. (Para 100 pisos y 2 coco es 15)

Queremos minimizar el tamaño de cada intento y el número de intentos, usando ambos juntos para cubrir todos los pisos posibles. En tales casos, un sqroot resulta ser un buen punto de partida, pero variamos el tamaño de cada intento y el promedio en torno al sqroot. De esta manera, tenemos lo mejor de ambos mundos: tener el tamaño de cada intento distribuido uniformemente alrededor de la raíz cuadrada nos da los mejores resultados. Para 100 y 2, esto es 15,14,13,12,11,10,9,8,7,6 Esto funciona hasta 1,5 veces 10.