 |
ขอแจมด้วยคน กระทุ็นี้น่าสนใจดี ผมไม่ใช่นักคณิศาสตร์ครับ ขอใช้วิธีที่ถนัดละกัน
ทดสอบ 5 รอบ รอบละ 1000 ครั้ง กรณีไม่เปลี่ยนคำตอบ -> จำนวนครั้งที่ตอบถูก = 250,274,261,246,243 กรณีเปลี่ยนคำตอบ -> จำนวนครั้งที่ตอบถูก = 307,348,301,364,359
ขออนุญาตไม่สรุปผลนะครับ ผมอาจตีความโจทย์ผิดก็ได้
รอดูคำตอบสุดท้ายครับ
------------------------------------------------------------------------ Source Code ตามนี้ครับ
package exam01; import java.util.Random; public class Exam01 { public static void main(String[] args) { boolean changeAnswer = true; // true = เดาใหม่ , false = ใช้คำตอบเดิม int testLoop; int correctAnswer; // คำตอบที่ถูกต้อง int firstAnswer; // คำตอบครั่งแรก int wrongAnswer; // คำตอบที่รู้ว่าผิด int answer; // คำตอบสุดท้าย int totalCorrect = 0; Random r = new Random();
for (testLoop = 0; testLoop < 1000; testLoop++) { correctAnswer = r.nextInt(4); firstAnswer = r.nextInt(4); do { wrongAnswer = r.nextInt(4); } while (wrongAnswer == correctAnswer || wrongAnswer == firstAnswer);
if (changeAnswer) { do { answer = r.nextInt(4); } while (answer == wrongAnswer); } else { answer = firstAnswer; } if (correctAnswer == answer) { totalCorrect++; } /* System.out.print(String.valueOf(testLoop +1) + "\t"); System.out.print("Correct Answer = " + String.valueOf(correctAnswer) + "\t"); System.out.print("Wrong Answer = " + String.valueOf(wrongAnswer) + "\t"); System.out.print("First Answer = " + String.valueOf(firstAnswer) + "\t"); System.out.print("Answer = " + String.valueOf(answer) + "\t"); System.out.print(correctAnswer == wrongAnswer ? "X\t" : "\t"); System.out.print(firstAnswer == wrongAnswer ? "X\t" : "\t"); System.out.println(correctAnswer == answer ? "/" : ""); */ } System.out.println("Test Count = " + String.valueOf(testLoop)); System.out.println("Correct = " + String.valueOf(totalCorrect)); } }
จากคุณ |
:
โปรแกรมเมอร์ตกอับ
|
เขียนเมื่อ |
:
วันแม่แห่งชาติ 55 10:05:09
A:171.99.73.238 X: TicketID:370872
|
|
|
|
 |