در این مطلب، ویدئو شکلات ها بر اساس تعداد در Python و C++ Codility Solutions درس 12 با زیرنویس فارسی را برای دانلود قرار داده ام. شما میتوانید با پرداخت 15 هزار تومان ، این ویدیو به علاوه تمامی فیلم های سایت را دانلود کنید.اکثر فیلم های سایت به زبان انگلیسی می باشند. این ویدئو دارای زیرنویس فارسی ترجمه شده توسط هوش مصنوعی می باشد که میتوانید نمونه ای از آن را در قسمت پایانی این مطلب مشاهده کنید.
مدت زمان فیلم: 00:13:04
تصاویر این ویدئو:
قسمتی از زیرنویس این فیلم:
00:00:00,240 –> 00:00:02,399
سلام به همه و خوش آمدید در این
2
00:00:02,399 –> 00:00:04,160
ویدیو ما در حال حل شکلات ها با
3
00:00:04,160 –> 00:00:06,879
اعداد مثال درس
4
00:00:06,879 –> 00:00:09,519
شماره 12 کادیلاک هستیم. دو عدد به ما داده می شود که
5
00:00:09,519 –> 00:00:11,360
اولی تعداد شکلات هایی است
6
00:00:11,360 –> 00:00:13,840
که به صورت دایره ای چیده شده اند و سپس
7
00:00:13,840 –> 00:00:16,640
با خوردن اولین شکلات با شاخص شروع می کنیم.
8
00:00:16,640 –> 00:00:19,119
0 و سپس باید به یک شکلات دیگر پرش کنیم
9
00:00:19,119 –> 00:00:21,520
که عدد خاصی را حذف می کند
10
00:00:21,520 –> 00:00:23,439
که با مشکل نیز فراهم می شود که در
11
00:00:23,439 –> 00:00:26,880
اینجا ذکر شده است m مرحله حذف برای مثال
12
00:00:26,880 –> 00:00:29,519
اگر شماره 10 و 4 به ما داده شود می
13
00:00:29,519 –> 00:00:31,760
دانیم که یک جعبه 10 شکلاتی داریم اینها را تصور کنید.
14
00:00:31,760 –> 00:00:34,399
به صورت دایره ای چیده شده اند،
15
00:00:34,399 –> 00:00:37,520
ابتدا با خوردن شکلات با شاخص 0
16
00:00:37,520 –> 00:00:39,840
شروع می کنیم، سپس چهار شکلات به جلو می پریم، بنابراین
17
00:00:39,840 –> 00:00:42,960
با شاخص چهار شکلات می خوریم و سپس
18
00:00:42,960 –> 00:00:44,960
برای شکلات های بیشتر، شکلات را
19
00:00:44,960 –> 00:00:47,840
با شاخص 8 می خوریم و به همین ترتیب وقتی به
20
00:00:47,840 –> 00:00:50,079
پایان رسیدیم شکلات را می خوریم. آرایه به یاد داشته باشید که این یک
21
00:00:50,079 –> 00:00:52,239
آرایه دایره ای است بنابراین به
22
00:00:52,239 –> 00:00:54,480
ابتدا به معنای عنصر اول برمی گردیم و
23
00:00:54,480 –> 00:00:57,360
به همین ترتیب از شماره 8 اگر چهار
24
00:00:57,360 –> 00:01:00,480
شکلات به جلو بپریم یک دو سه
25
00:01:00,480 –> 00:01:03,120
و چهار خواهیم داشت بنابراین شکلات بعدی ما رفتن است.
26
00:01:03,120 –> 00:01:05,840
اگر در شاخص شماره دو باشیم و به همین ترتیب
27
00:01:05,840 –> 00:01:08,799
ادامه می دهیم در شاخص شش هستیم سپس
28
00:01:08,799 –> 00:01:09,680
29
00:01:09,680 –> 00:01:12,400
به شاخص صفر برمی گردیم زیرا شش به علاوه
30
00:01:12,400 –> 00:01:14,720
چهار ما را به اولین
31
00:01:14,720 –> 00:01:16,240
شکلات می رساند به این معنی که شکلات در
32
00:01:16,240 –> 00:01:18,400
موقعیت صفر است اما این شکلات ما.
33
00:01:18,400 –> 00:01:20,880
قبلاً خوردهاید، فرض کنید یک مربع خالی
34
00:01:20,880 –> 00:01:22,960
است و در این مرحله ما
35
00:01:22,960 –> 00:01:25,280
میخواهیم توقف کنیم و تعداد کل
36
00:01:25,280 –> 00:01:28,000
شکلاتهای خوردهشده را با استفاده از این روش برگردانیم.
37
00:01:28,000 –> 00:01:30,000
38
00:01:30,000 –> 00:01:32,079
39
00:01:32,079 –> 00:01:33,920
از آرایه
40
00:01:33,920 –> 00:01:36,640
و خوردن یک شکلات در هر چهار یا
41
00:01:36,640 –> 00:01:39,759
هر متر شکلات، سپس میتوانیم یک
42
00:01:39,759 –> 00:01:41,920
متغیر شمارنده اضافه کنیم که
43
00:01:41,920 –> 00:01:43,439
هر بار که یک شکلات میخوریم میتوان آن را افزایش داد و
44
00:01:43,439 –> 00:01:45,600
وقتی به جایی رسیدیم
45
00:01:45,600 –> 00:01:47,520
که شکلات قبلاً
46
00:01:47,520 –> 00:01:49,759
خورده شده است، برنامه متوقف میشود. صفر برای
47
00:01:49,759 –> 00:01:52,000
این مثال خاص، اگرچه
48
00:01:52,000 –> 00:01:54,159
پیچیدگی چنین راه حلی
49
00:01:54,159 –> 00:01:56,240
واقعاً چشمگیر نیست، اما آنچه که برای
50
00:01:56,240 –> 00:01:58,560
کدنویسی مورد نیاز است،
51
00:01:58,560 –> 00:02:00,880
کارآمدتر و
52
00:02:00,880 –> 00:02:02,399
کارآمدترین است. راه حل ent متکی به
53
00:02:02,399 –> 00:02:04,399
مفاهیم ریاضی با استفاده از حداقل
54
00:02:04,399 –> 00:02:06,799
مضرب مشترک بین تعداد
55
00:02:06,799 –> 00:02:09,199
شکلات ها و اندازه مرحله است،
56
00:02:09,199 –> 00:02:11,120
بیایید مثال ارائه شده توسط
57
00:02:11,120 –> 00:02:12,720
مسئله را در نظر بگیریم، بنابراین یک جعبه 10
58
00:02:12,720 –> 00:02:14,720
شکلاتی داریم و هر بار که مضرب های 10 را حذف می کنیم، 4 شکلات را حذف می کنیم.
59
00:02:14,720 –> 00:02:17,040
60
00:02:17,040 –> 00:02:20,560
هستند 10 سپس 10 ضربدر 2 پس 20 سپس
61
00:02:20,560 –> 00:02:23,520
ضربدر 3 پس 30 و 40 و به همین ترتیب
62
00:02:23,520 –> 00:02:27,760
مضربی از 4 هستند 4 8 12 16 20 و
63
00:02:27,760 –> 00:02:30,800
غیره و کمترین مضرب مشترک
64
00:02:30,800 –> 00:02:33,200
عدد 20 بین این دو عدد است،
65
00:02:33,200 –> 00:02:35,920
به عبارت دیگر اگر در نظر بگیرم 20 عنصر
66
00:02:35,920 –> 00:02:38,800
از 10 شکلات اولیه خود را مصرف می کنم
67
00:02:38,800 –> 00:02:42,640
و سپس این 10 شکلات را دو بار مصرف می کنم
68
00:02:42,640 –> 00:02:45,440
زیرا به یاد داشته باشید که می توانیم
69
00:02:45,440 –> 00:02:47,519
هر چند بار که دوست داریم روی دایره شکلات ها حلقه بزنیم
70
00:02:47,519 –> 00:02:50,239
و اگر به مراحل نگاه
71
00:02:50,239 –> 00:02:52,720
کنم هر چهار موقعیت را انجام می دهم.
72
00:02:52,720 –> 00:02:56,000
به این شکل نگاه کنید، بنابراین توجه کنید که
73
00:02:56,000 –> 00:02:58,400
ما به موقعیت شماره صفر برمی گردیم، به
74
00:02:58,400 –> 00:03:01,680
عبارت دیگر با در نظر گرفتن 20 عنصر
75
00:03:01,680 –> 00:03:04,080
با کل آرایه،
76
00:03:04,080 –> 00:03:06,879
من را به موقعیت 0 برمی گرداند.
77
00:03:06,879 –> 00:03:10,080
78
00:03:10,080 –> 00:03:13,519
بنابراین اگر در پایان از عدد 4 پرش کنم،
79
00:03:13,519 –> 00:03:15,519
80
00:03:15,519 –> 00:03:18,080
در نقطه ای به موقعیت 0 می رسم به یاد داشته باشید که
81
00:03:18,080 –> 00:03:21,760
ما شروع به خوردن شکلات در شاخص 0
82
00:03:21,760 –> 00:03:23,840
کردیم و
83
00:03:23,840 –> 00:03:26,000
تا زمانی که کل آن را مرور نکردیم، دیگر با این شکلات روبرو نشدیم.
84
00:03:26,000 –> 00:03:28,959
جعبه شکلات دو بار در این مثال خوب
85
00:03:28,959 –> 00:03:31,760
اجازه دهید مثال دیگری را با 12 شکلات در نظر بگیریم
86
00:03:31,760 –> 00:03:34,159
و من یک مرحله از هشت شکلات را حذف می کنم.
87
00:03:34,159 –> 00:03:36,159
88
00:03:36,159 –> 00:03:38,879
89
00:03:38,879 –> 00:03:40,640
90
00:03:40,640 –> 00:03:42,640
91
00:03:42,640 –> 00:03:46,159
در موقعیت صفر و
92
00:03:46,159 –> 00:03:49,599
همچنین اگر من 24 عنصر را که
93
00:03:49,599 –> 00:03:52,319
دو برابر این آرایه است در نظر بگیرم و مرحله
94
00:03:52,319 –> 00:03:55,040
شماره هشت را در نظر بگیرم که از موقعیت صفر شروع می کنم
95
00:03:55,040 –> 00:03:57,599
سپس
96
00:03:57,599 –> 00:04:00,400
به عنوان اولین یا دومین شکلات خورده شده در ساعت هشت فرود می آیم
97
00:04:00,400 –> 00:04:02,879
سپس شماره چهار در اینجا شاخص چهار و
98
00:04:02,879 –> 00:04:05,040
سپس من را
99
00:04:05,040 –> 00:04:07,120
به شاخص صفر برمی گرداند که در حال حاضر یک
100
00:04:07,120 –> 00:04:09,519
شکلات خورده شده است، بنابراین به عبارت دیگر
101
00:04:09,519 –> 00:04:11,599
به نظر می رسد که ما همیشه
102
00:04:11,599 –> 00:04:13,760
الگوریتم را در همان موقعیتی که از آن شروع کرده ایم متوقف می کنیم
103
00:04:13,760 –> 00:04:16,560
و من این ایده را بسیار
104
00:04:16,560 –> 00:04:18,639
مهم می دانم. understa و این
105
00:04:18,639 –> 00:04:21,358
راه حل خاص، منظورم این است که این یک ایده کلیدی در
106
00:04:21,358 –> 00:04:23,600
راه حل ما در اینجا است، بیایید یک
107
00:04:23,600 –> 00:04:25,600
مثال دیگر را در نظر بگیریم و چیزها را متفاوت نشان دهیم،
108
00:04:25,600 –> 00:04:28,320
بنابراین یک جعبه 16
109
00:04:28,320 –> 00:04:30,479
شکلاتی داریم و من
110
00:04:30,479 –> 00:04:32,880
هر بار چهار شکلات می پرم و راه حل
111
00:04:32,880 –> 00:04:34,720
ما به این شکل خواهد بود.
112
00:04:34,720 –> 00:04:37,360
و همانطور که می بینیم
113
00:04:37,360 –> 00:04:40,240
دقیقاً روی همان شکلاتی که از الان شروع کردیم متوقف می شویم
114
00:04:40,240 –> 00:04:43,199
اگر همان جعبه شکلات را
115
00:04:43,199 –> 00:04:46,880
با 16 شکلات بردارید و یک
116
00:04:46,880 –> 00:04:48,400
مرحله 12 در نظر
117
00:04:48,400 –> 00:04:51,440
بگیرید از شکلات با شاخص 0
118
00:04:51,440 –> 00:04:54,560
شروع می کنیم و سپس هر بار 12 را حذف می کنیم و ما
119
00:04:54,560 –> 00:04:57,040
چیزی شبیه به این می شود، بنابراین 12 با شروع
120
00:04:57,040 –> 00:04:59,440
از صفر، ما می خواهیم اینجا فرود بیاییم،
121
00:04:59,440 –> 00:05:02,560
اما 12 شکلات بعدی قرار است
122
00:05:02,560 –> 00:05:04,320
من را به مکان دیگری هدایت کنند، منظورم به
123
00:05:04,320 –> 00:05:06,800
دور دوم همان جعبه شکلات است،
124
00:05:06,800 –> 00:05:09,039
بنابراین من می خواهم اینجا فرود بیایم و
125
00:05:09,039 –> 00:05:11,680
اینها دو شکلات گوشواره هستند، پس
126
00:05:11,680 –> 00:05:14,800
از اینجا اگر یک بار دیگر 12 بپرم،
127
00:05:14,800 –> 00:05:16,400
اینجا فرود می
128
00:05:16,400 –> 00:05:18,639
آیم و از اینجا
129
00:05:18,639 –> 00:05:21,840
دوباره 12 را حذف می کنم و
130
00:05:21,840 –> 00:05:24,400
به شکلات شماره صفر برمی گردم.
131
00:05:24,400 –> 00:05:26,160
در واقع به نظر می رسد که ما
132
00:05:26,160 –> 00:05:27,919
میخواهیم به همان موقعیتی که از آن شروع کردهایم برگردیم،
133
00:05:27,919 –> 00:05:29,840
من برای این کار نمایش ریاضی را ندارم،
134
00:05:29,840 –> 00:05:31,919
اما
135
00:05:31,919 –> 00:05:34,000
میتوانیم آن را به وضوح از مثالهایی که
136
00:05:34,000 –> 00:05:35,520
در اینجا ارائه کردهایم ببینیم،
137
00:05:35,520 –> 00:05:37,440
بنابراین کمترین مضرب مشترک
138
00:05:37,440 –> 00:05:39,680
طول شکلات را برای من فراهم میکند.
139
00:05:39,680 –> 00:05:42,639
تعدادهایی را که قبل از
140
00:05:42,639 –> 00:05:45,360
پیدا کردن یک نقطه خالی شکلاتی در نظر میگیرم به
141
00:05:45,360 –> 00:05:47,520
عبارت دیگر اگر کمترین مضرب مشترک را
142
00:05:47,520 –> 00:05:50,160
بر اندازه جعبه تقسیم
143
00:05:50,160 –> 00:05:52,240
کنم به این معنی
144
00:05:52,240 –> 00:05:55,360
است که تعداد شکلاتها، تعداد دفعات تکرار
145
00:05:55,360 –> 00:05:57,199
در کل جعبه را خواهم داشت. من قصد دارم
146
00:05:57,199 –> 00:05:59,280
قبل از توقف الگوریتم
147
00:05:59,280 –> 00:06:01,600
و تعداد شکلات های خورده
148
00:06:01,600 –> 00:06:04,479
شده مورد نیاز مسئله، این
149
00:06:04,479 –> 00:06:07,360
طول خاص از کل آرایه به
150
00:06:07,360 –> 00:06:10,000
تعداد دفعات مورد نیاز است
151
00:06:10,000 –> 00:06:12,400
تا کوچکترین مقدار چندگانه مشترک
152
00:06:12,400 –> 00:06:15,600
تقسیم بر تعداد مراحل
153
00:06:15,600 –> 00:06:17,840
چون در هر مرحله ما یک
154
00:06:17,840 –> 00:06:20,000
شکلات می خوریم بنابراین اگر یک بار آرایه را
155
00:06:20,000 –> 00:06:22,080
مرور کنم می توانم تعداد
156
00:06:22,080 –> 00:06:23,919
عناصر این آرایه را بر تعداد
157
00:06:23,919 –> 00:06:26,400
مراحل تقسیم کنم و تعداد آنها را بدست بیاورم.
158
00:06:26,400 –> 00:06:28,560
شکلات خوردم اگر دو یا سه بار از آرایه عبور کردم،
159
00:06:28,560 –> 00:06:31,440
سپس سه
160
00:06:31,440 –> 00:06:33,199
برابر تعداد این آرایه،
161
00:06:33,199 –> 00:06:35,039
تعداد عناصر این آرایه را بر
162
00:06:35,039 –> 00:06:37,680
تعداد مراحل و غیره تقسیم می کنم، بنابراین این
163
00:06:37,680 –> 00:06:39,919
هم یک مثال دیگر است که ما 15
164
00:06:39,919 –> 00:06:42,400
شکلات داریم. یک گام
165
00:06:42,400 –>