Initialement, si je compile et exécute le testeur, toutes les méthodes renvoient des zéros. Rectifions l'amdahlSpeedup en premier. Pour l'instant, il renvoie 0. Et si je l'écris juste comme ça? Maintenant, si je lance à nouveau le testeur, j'obtiens en réalité 2.875 alors que je m'y attendais à 1.6. Je ferais mieux de revenir en arrière et le corriger. Maintenant, il fait d'abord les divisions, donc 1 sur s et s sur n. Ensuite les additions et soustractions au milieu et il n'y a pas de sens de la fraction avec laquelle nous avons commencé. Toute cette pièce, de s à n devrait rester unie dans le dénominateur et celle -1 doit rester unie dans son numérateur. Essayons ça encore. On dirait que amdalhSpeedup fonctionne, mais nous devons encore faire le rapport croisé. Je vais essayer de refaire de façon un peu naïve. J'ai écrit ça comme ça a l'air mais l'ai aplati sur une ligne. Donc, si je renvoie cette quantité et que je compile, j'obtiens une erreur, type inattendu, classe valeur trouvée requise. Cette erreur n'a probablement pas beaucoup de sens pour le moment, mais c'est un petit indice de ce qui vient. Une paire de parenthèses comme celle-ci suivie d'une autre quantité a une autre signification surtout, si vous mettez un type ici au lieu d'une expression comme a - c. Ce que je dois faire, c'est indiquer ce que je veux multiplier et je vais devoir le faire ici aussi. Et maintenant, si j'essaie de relancer le testeur, je n'obtiens pas les bonnes réponses pour le rapport croisé. Car lorsque nous avons un groupe d'opérateurs avec les mêmes précédents, Java commencera juste à gauche et se déplacera vers la droite. Donc, au lieu de calculer a - c * b - d sur, entre parenthèses, (b - c) * (a - d). Cela donnera a - c * b - d / b - c et toute cette quantité multipliée par a - d. Ce que je dois faire ici, c'est grouper le dénominateur. Je pourrais aussi regrouper le numérateur, si je le voulais, mais cela ne ferait pas beaucoup de différence. Si je compile à nouveau et exécute le testeur, j'ai maintenant deux méthodes qui fonctionnent bien. Maintenant pour la moyenne. Je pourrais essayer de renvoyer la somme de tous ces éléments, tous divisés par quatre. Voyons voir comment cela fonctionne. Si je lance le testeur, il semble que cela fonctionne dans un cas, mais pas dans l'autre. Regardons le deuxième cas. Je vais aller lire à l'intérieur du testeur. Le cas qui ne fonctionne pas est quand nous essayons de prendre la moyenne de 3, 4, 3 et 3. Nous devrions, en fait, nous attendre à 3,25, mais il semble que nous perdons la décimale. Java interprète cela comme une division entière, car 4 est un entier, et a, b, c et d sont tous déclarés comme entiers. Il y a plusieurs façons de résoudre ce problème. Je pourrais écrire 4 comme 4. ou 4.0 et alors il obtiendrait la bonne réponse ici. Ou je pourrais réellement changer tous ces ints en doubles et alors je n'aurais pas besoin de spécifier que le 4 était un double. Je peux compiler ceci, lancer le testeur et cela fonctionne toujours. C'est parce que si une de ces variables est un double, cette expression entière entre parenthèses sortira comme un double et un double divisé par un entier ne doit pas être fait avec la division entière qui requiert une division régulière. C'est une chose vraiment facile à confondre. Cela nous semble juste, mais l'ordinateur le lira mal et le compilateur ne vous avertira pas. Lorsque nous lançons cela avec les ints et sans doubles, nous avons vu que cela a fini par être une erreur d'exécution. Ceci est un bon exemple de pourquoi il est utile de penser à ce que vous voulez que votre réponse soit à l'avance. Calculez quelques exemples, puis écrivez votre code. Au plaisir avec ce quiz.