﻿1
00:00:40,725 --> 00:00:44,725
(คุณครูธนายุส) พวกเราเคยเจอปัญหาแบบนี้บ้างไหมครับ

2
00:00:45,230 --> 00:00:47,207
ปัญหาที่มีลักษณะเดียวกันซ้ำหลาย ๆ รอบ

3
00:00:47,207 --> 00:00:50,875
พวกเรา

4
00:00:50,875 --> 00:00:54,875
ลองไปชมสถานการณ์ตัวอย่างต่อไปนี้ดูนะครับ

5
00:01:33,819 --> 00:01:35,576
เอ๊ะ ควรจะสั่งอย่างไร เพื่อให้สั่งครั้งเดียวแล้วสามารถทำงานได้ตลอดนะ

6
00:01:35,576 --> 00:01:39,576
อ๋อ

7
00:01:41,695 --> 00:01:45,695
ใช้คำสั่งทำซ้ำเข้ามาช่วยดีกว่า

8
00:02:04,409 --> 00:02:06,064
โอเคเรียบร้อย ขอบคุณมากครับ จากสถานการณ์ตัวอย่าง

9
00:02:06,064 --> 00:02:09,802
เราจะพบ ว่า

10
00:02:09,802 --> 00:02:12,930
คุณครูได้สั่งงานให้นักเรียนทำการจัดโต๊ะ

11
00:02:12,930 --> 00:02:16,712
โดยใช้คำสั่งทีละคำสั่ง

12
00:02:16,712 --> 00:02:18,548
แต่คุณครูจำเป็นจะต้องสั่งคำสั่ง

13
00:02:18,548 --> 00:02:21,956
หลายครั้งมาก

14
00:02:21,956 --> 00:02:25,956
คุณครูจึงเลือกใช้การทำซ้ำมาแก้ปัญหา

15
00:02:27,409 --> 00:02:30,354
นอกจากการทำซ้ำ ที่เราพบเจอในชีวิตประจำวันแล้ว เรายังสามารถ

16
00:02:30,354 --> 00:02:34,354
พบเจอการทำซ้ำในสถานการณ์อื่น ๆ ได้อีกครับ

17
00:02:36,266 --> 00:02:40,266
ตัวอย่างให้ครับ

18
00:02:42,677 --> 00:02:46,677
เกมทายเลขมันเริ่มจะแบ่งผู้เล่นเป็น 2 ฝ่าย ฝ่ายแรก

19
00:02:47,909 --> 00:02:50,945
จะเป็นผู้เขียนคำตอบไว้ในกระดาษ ซึ่งมีค่าตั้งแต่ 0 จนถึง 100

20
00:02:50,945 --> 00:02:54,945
จากนั้นให้ฝ่ายที่ 2 ทายตัวเลข

21
00:02:56,244 --> 00:02:59,002
เมื่อไปที่ 2 ทายตัวเลขมีค่ามากกว่าคำตอบ ให้ฝ่ายแรก

22
00:02:59,002 --> 00:03:03,002
บอกว่าค่ามากเกินไป

23
00:03:03,818 --> 00:03:07,818
ฝ่ายที่ 2 ทายตัวเลขอีก ถ้ามีค่าน้อยกว่าคำตอบ

24
00:03:09,909 --> 00:03:12,389
ให้ตอบว่าข้าน้อยเกินไป และเมื่อฝ่ายที่ 2 คล้ายตัวเลข

25
00:03:12,389 --> 00:03:15,835
ทายเลขจะตอบว่า

26
00:03:15,835 --> 00:03:19,739
ทายถูกต้อง จากนั้นจะสลับกันเล่น

27
00:03:19,739 --> 00:03:21,013
โดยฝ่ายไหนทายตัวเลขได้น้อยครั้งกว่า

28
00:03:21,013 --> 00:03:24,984
เป็นผู้ชนะ

29
00:03:24,984 --> 00:03:28,984
เราไปชมวิดีโอสาธิตการเล่นเกมทายเลขกันครับ

30
00:03:30,006 --> 00:03:34,006
(นักเรียนหญิง 1) เราเขียนเสร็จแล้วเริ่มทายได้เลย 15 เกินไป

31
00:03:36,703 --> 00:03:40,703
เกินไป

32
00:03:50,705 --> 00:03:54,705
98 มากเกินไป 71 น้อยเกินไป

33
00:03:56,961 --> 00:04:00,342
82 ถูกแล้ว

34
00:04:00,342 --> 00:04:02,983
(คุณครูธนายุส) เมื่อเราทำกิจกรรมเกมทายเลขเรียบร้อยแล้วนะครับ

35
00:04:02,983 --> 00:04:06,207
พวกเราลองร่วมกัน

36
00:04:06,207 --> 00:04:10,207
เขียนรหัสลำลองของเกมทายเลขนี้ดูนะครับ [เสียงนาฬ

37
00:04:17,383 --> 00:04:19,583
ิกานับถอยหลัง] (คุณครูธนายุส) เป็นอย่างไรบ้างครับ

38
00:04:19,583 --> 00:04:23,583
เขียนรหัสลำลองกันเสร็จแล้วใช่ไหม

39
00:04:25,338 --> 00:04:29,040
ลองดูนะครับ ว่าเหมือนของผมหรือเปล่า เริ่มต้นจากเราสุ่มตัวเลขตั้งแต่ 1

40
00:04:29,040 --> 00:04:32,902
จนถึง 100 ครับ จากนั้นไปเก็บไว้จนจบแปลก

41
00:04:32,902 --> 00:04:35,145
secret และจะทำคำสั่งต่อไปนี้ไปเรื่อย ๆ

42
00:04:35,145 --> 00:04:36,789
เริ่มจากเรารั

43
00:04:36,789 --> 00:04:39,869
บค่าจะพูดเล่น

44
00:04:39,869 --> 00:04:41,462
ที่ถ่ายเป็นจำนวนเต็มมาเก็บไว้ใ

45
00:04:41,462 --> 00:04:44,868
นตัวแปร answer จากนั้น

46
00:04:44,868 --> 00:04:46,658
ตรวจสอบครับ ว่าต่อไปอาจจะมีค่าน้อยกว่า 11 ไหม

47
00:04:46,658 --> 00:04:50,005
ถ้าใช่

48
00:04:50,005 --> 00:04:54,005
เราจะตอบผู้เล่นไปว่าถ้าน้อยเกินไป

49
00:04:56,030 --> 00:05:00,030
แต่ถ้าไม่ใช่เราจะมาตรวจสอบอีกครับ ว่าตัวตัวแปร Answer มากกว่า 41

50
00:05:00,771 --> 00:05:02,496
ถ้าใช่ เราจะตอบไปว่าค่ามากเกินไป

51
00:05:02,496 --> 00:05:05,573
และ

52
00:05:05,573 --> 00:05:09,061
answer มีค่าเท่ากับ 48 เมื่อไหร่

53
00:05:09,061 --> 00:05:11,072
เราก็จะตอบผู้เล่นไปว่าทายถูกแล้ว

54
00:05:11,072 --> 00:05:15,072
และให้จบการทำงาน

55
00:05:17,183 --> 00:05:19,907
แต่ในกรณีที่ยังทายไม่ถูก เราจะวนกลับไปรับค่าใหม่

56
00:05:19,907 --> 00:05:23,907
และตรวจสอบใหม่อีกครั้งหนึ่งไปเรื่อย ๆ

57
00:05:25,783 --> 00:05:27,975
จนกระทั่งเจอเงื่อนไขจบการทำงานครับ

58
00:05:27,975 --> 00:05:31,975
แล้วใช้วิธีการถ่ายแบบถูก

59
00:05:32,345 --> 00:05:34,060
ฝั่งรายการทายน้อยที่สุดและพบคำตอบ

60
00:05:34,060 --> 00:05:37,235
คืนหนึ่งครั้ง

61
00:05:37,235 --> 00:05:38,909
จำนวนครั้งในการทานมากที่สุด

62
00:05:38,909 --> 00:05:42,909
โอกาสถึง

63
00:05:44,122 --> 00:05:44,961
100 ครั้ง แต่ถ้าเรามีกระบวนการ

64
00:05:44,961 --> 00:05:46,962
หรือวิธีการ

65
00:05:46,962 --> 00:05:48,542
ในการค้นหาข้อมูล

66
00:05:48,542 --> 00:05:50,892
เราจะใช้

67
00:05:50,892 --> 00:05:53,601
ในการถ่ายน้อยที่สุด

68
00:05:53,601 --> 00:05:56,581
และพบคำตอบ คือ 1 ครั้ง เช่นกัน

69
00:05:56,581 --> 00:05:59,785
แต่จำนวนครั้งในการถ่ายมากที่สุด

70
00:05:59,785 --> 00:06:03,785
จะเหลือเพียงแค่ 7 ครั้งเท่านั้น

71
00:06:06,854 --> 00:06:10,854
เราลองหาข้อมูลเกี่ยวกับการค้นหาข้อมูล หรือการ Search ข้อมูลนะครับ

72
00:06:13,406 --> 00:06:16,430
Binary Search ผมว่าน่าสนใจเลยทีเดียวนะครับ

73
00:06:16,430 --> 00:06:20,030
ลองหาข้อมูลดูนะครับ

74
00:06:20,030 --> 00:06:24,030
ปัญหาอย่างหนึ่งของการทำซ้ำ คือ

75
00:06:27,153 --> 00:06:28,895
แล้วเมื่อไหร่ล่ะ เราจึงได้หยิบการทำซ้ำนั้นมาใช้งาน เราลองกลับไปศึกษาเรื่อง

76
00:06:28,895 --> 00:06:31,283
พิจารณารูปแบบ

77
00:06:31,283 --> 00:06:32,499
หรือ Pattern connection

78
00:06:32,499 --> 00:06:36,499
เราจะพบว่า

79
00:06:40,290 --> 00:06:44,290
เมื่อไหร่ก็ตามที่เราพิจารณารูปแบบการแก้ปัญหาแล้วพบว่ามีรูปแบบการแก้ปัญหาที่เหมือนกัน

80
00:06:44,953 --> 00:06:47,488
เราก็จะสามารถยึดการทำซ้ำมาแก้ปัญหาในส่วนนี้ได้ครับ

81
00:06:47,488 --> 00:06:51,202
จากบทเรียนที่เรียนมา

82
00:06:51,202 --> 00:06:52,627
เราจะพบว่าการทำซ้ำนั่น มีอยู่ 2 รูปแบบใหญ่ ๆ ครับ

83
00:06:52,627 --> 00:06:56,627
รูปแบบแรก คือ

84
00:06:58,582 --> 00:07:01,405
การทำซ้ำที่มีจำนวนรอบที่ชัดเจน อย่างเช่น คุณครูสั่งให้นักเรียนยกโต๊ะครับ

85
00:07:01,405 --> 00:07:05,090
จะสังเกตว่านักเรียนจะทำ

86
00:07:05,090 --> 00:07:09,090
ไปเรื่อย ๆ  จนกระทั่งหมดจำนวนโต๊ะ ก็จะหยุดการทำงาน

87
00:07:10,594 --> 00:07:14,594
กับอีกรูปแบบหนึ่งครับ คือ การทำซ้ำที่ไม่มีจำนวนรอบที่ชัดเจนครับ

88
00:07:14,602 --> 00:07:17,364
แต่จบการทำงานก็ต่อเมื่อตรงตามเงื่อนไข

89
00:07:17,364 --> 00:07:21,364
ยกตัวอย่างเช่น เกมทายเลขครับ

90
00:07:22,975 --> 00:07:25,273
จะสังเกตว่าเกมทายจะไม่รู้ว่าจะจบการทำงานเมื่อครั้งที่เท่าไร

91
00:07:25,273 --> 00:07:26,766
แต่จะจบการทำงานก็ต่อเมื่อ

92
00:07:26,766 --> 00:07:28,851
ตรงตามเงื่อนไขครับ

93
00:07:28,851 --> 00:07:32,851
แล้วพวกเรา

94
00:07:34,682 --> 00:07:38,682
เคยพบการทำซ้ำในรูปแบบใดบ้าง และเป็นอย่างไร ลองคิดดูนะครับ [เสียงดนตรี]

