Le lendemain
Titre: jeter des questions ufs
Il y a deux ufs ont été lancés vers le bas de 100 étages, afin de tester la dureté des oeufs. Par exemple, aucun oeuf cassé à au 9ème étage, au 10ème étage et a cassé, puis a cassé l'uf est pas le point critique est le 9ème étage.
Q: Comment utiliser le moins de tentatives, tester le point critique de l'uf est pas cassé?
Pour la châtaigne, les méthodes les plus stupides de test, qu'est-ce? L'un des oeufs, jeté du début de niveau 1. Si la première couche ne se décompose pas, le deuxième commutateur de couche 2 à jeter, sinon rompu à la couche 2, la couche 3 au changement touche ....... pas rompu si la première couche 59, la couche 60 à la seconde touche de changement; 60 Si la première couche est rompue, ce qui indique que le point critique est pas cassé rez-de-59e.
Dans le pire des cas, cette méthode doit lancer 100 fois.
Première méthode: dichotomie
Une méthode similaire à une recherche binaire, les ufs de plancher de la moitié (couche 50) à jeter.
Si l'uf d'abord, le cassé de 50 étages, le second oeufs, ils commencent à jeter de la couche 1, couche par couche de croissance, a été jeté dans le 49ème étage.
Si la première couche d'uf 50 n'est pas cassé, puis continuer à utiliser la dichotomie, jeter la moitié (75 couches) restant étages ......
Cette méthode est dans le pire des cas, essayez 50 fois.
Méthode deux: Racine carrée Méthode
Comment faire un certain nombre de tentatives sur les ufs et deuxième oeuf d'or, comme il équilibré?
Très simple à faire une opération de racine carrée, la racine carrée de 100 est 10.
Nous essayons donc de jeter une fois tous les 10 couches, 10 couches du premier jet, jetant de la deuxième couche 20, et la troisième a été jeté du sol de 30 ...... 100 couches.
Ceci est de préférence le cas dans la première couche 10 Suidiao, des essais est de 1 + 9 = 10 fois.
Dans le pire des cas, la première couche 100 Suidiao, des tentatives de 10 + 9 = 19.
Cependant, il y a un petit point d'optimisation, nous pouvons commencer à jeter du 15e étage, puis jeté du 25e étage, 35ème étage ...... jusqu'à 95 couches.
Ainsi, dans le pire des cas de rupture couche plus 95, les tentatives de 9 + 9 = 18 fois.
En supposant que le nombre optimal de tentatives est x fois, pourquoi le premier jet choisira la première couche x il?
Voici quelques explications brûlerait le cerveau, s'il vous plaît assis serrés petits amis bonne aide:
Supposons que le premier jet de x + 1 couche:
Si le premier uf est cassé, puis le deuxième oeuf jeter une couche de la première couche, a été jeté dans la couche x.
De cette façon, nous avons essayé un total de x + 1 fois, et je suppose que les temps de x incohérents. Ainsi, le premier jet du sol doit être inférieure à x + 1 couche.
Supposons d'abord jeter la première couche x-1:
Si le premier uf est cassé, puis les oeufs une couche à un deuxième jet de niveau 1, a été jeté dans la première couche x-2.
En conséquence, le total nous avons essayé x-2 + 1 = x-1 fois, bien qu'il n'y ait pas de numéro de série d'hypothèses, mais il semble un peu trop conservatrice.
Supposons que le premier jet de la couche de x:
Si le premier uf est cassé, puis le deuxième oeuf jeter une couche de la première couche, a été jeté dans la première couche x-1.
En conséquence, le total nous avons essayé x-1 + 1 = x fois, ne dépasse pas très bien le nombre d'hypothèses.
Par conséquent, pour essayer de couvrir plusieurs étages, mais aussi des tentatives de faire en sorte que plus qu'hypothétique x, alors la première fois en jetant des oeufs choix optimal est la première couche de x.
Troisième méthode: méthode de résolution des équations
x + (x-1) + (x-2) + ... + 1 = 100
Cette équation est facile à comprendre:
Le polynôme est portée à gauche du plancher et de jeter les ufs à chaque fois. Comme je suppose x nombre de fois, donc ce polynôme x articles au total.
A droite est le nombre total de 100 étages.
Résolvons cette équation:
x + (x-1) + (x-2) + ... + 1 = 100 est converti en
(X + 1) * x / 2 = 100
X finale arrondie, pour donner x = 14
Par conséquent, le nombre de tentatives de la solution dans le pire des cas est de 14 fois, le premier étage jette également les ufs de 14 couches.
Enfin, nous mettons le cas du premier oeuf est pas cassé, tentative Nombre d'étages de la liste complète:
14, 27, 39, 50, 60, 69, 77, 84, 90, 95, 99, 100
Pour la prochaine vérification de la châtaigne:
Si l'uf est cassé ne couche 65 est le point critique, le premier étage est un uf jeté 14,27,50,60,69. Cette fois-ci avec un smash up.
Le second continue oeuf, à partir du 61ème étage, 61,62,63,64,65,66, cassé net cassé.
Ainsi, le point critique ne se décompose pas à obtenir 65 couches, le nombre total de tentatives est de 6 + 6 = 12 < 14.
Avertissement: Cet article est l'auteur de « programmeur petit gris « soumission, appartient à l'auteur original.
Appel à elle!
RPSC n ° respecter le concept du public « et dix millions de personnes la croissance totale de la technologie, » non seulement aux « geeks gros titres », colonne « Chatteris » pour la première fois une description technique unique point de vue de la personne qui se soucie industrie de la technologie, la mise au point de l'événement, plus « titres techniques » colonne, et la scène dans la profondeur de l'application de l'industrie de la technologie chaude d'interprétation, de sorte que tous les développeurs de suivre les tendances technologiques, demeurent sens vigilant de la technologie de l'odorat, les tendances de l'industrie, la technologie est la connaissance plus complète.
Si vous avez de nouvelles idées dans des articles de haute qualité ou des événements de l'industrie chaud, les tendances technologiques idées ou application pratique de la profondeur des programmes de scène, veuillez contacter la soumission RPSC, Contact: lettre Micro (de guorui_1118, s'il vous plaît noter le nom + contribution + emplois des entreprises), boîte aux lettres (guorui@csdn.net).