در این مطلب، ویدئو واترلو CCC_2013_J3 (PYTHON) با زیرنویس فارسی را برای دانلود قرار داده ام. شما میتوانید با پرداخت 15 هزار تومان ، این ویدیو به علاوه تمامی فیلم های سایت را دانلود کنید.اکثر فیلم های سایت به زبان انگلیسی می باشند. این ویدئو دارای زیرنویس فارسی ترجمه شده توسط هوش مصنوعی می باشد که میتوانید نمونه ای از آن را در قسمت پایانی این مطلب مشاهده کنید.
مدت زمان فیلم: 00:09:27
تصاویر این ویدئو:
قسمتی از زیرنویس این فیلم:
00:00:00,000 –> 00:00:01,760
سلام امیدوارم این ویدیو شما را خوب بیابد
2
00:00:01,760 –> 00:00:03,199
امروز ما می خواهیم به
3
00:00:03,199 –> 00:00:06,319
یک مشکل 2013 به نام
4
00:00:06,319 –> 00:00:10,000
از 1987 تا 2013 نگاه کنیم و این یک مشکل j3 است
5
00:00:10,000 –> 00:00:11,679
این یک مشکل فوق العاده است زیرا
6
00:00:11,679 –> 00:00:13,599
آنچه را که نیاز است از این نسخه استفاده کنیم
7
00:00:13,599 –> 00:00:14,400
8
00:00:14,400 –> 00:00:16,960
این الگوریتم فوق العاده را مشخص می کند.
9
00:00:16,960 –> 00:00:17,440
ما میتوانیم
10
00:00:17,440 –> 00:00:20,800
به هر رقم یک عدد um دسترسی
11
00:00:20,800 –> 00:00:23,199
داشته باشیم، بنابراین میدانید که من فکر میکنم میخواهم
12
00:00:23,199 –> 00:00:25,039
آن تکنیک را برجسته کنم، زیرا فراتر از
13
00:00:25,039 –> 00:00:26,400
این مشکل، این یک تکنیک واقعاً رایج
14
00:00:26,400 –> 00:00:27,760
است که میبینید در بسیاری از
15
00:00:27,760 –> 00:00:28,840
16
00:00:28,840 –> 00:00:31,359
مسابقات برنامهنویسی ابتدایی نشان داده میشود، من آن را در آزمون ap دیدهام. و
17
00:00:31,359 –> 00:00:32,640
18
00:00:32,640 –> 00:00:34,239
همچنین شرح مسئله ممکن است
19
00:00:34,239 –> 00:00:36,160
تعجب کنید که سال 2013 اولین سال
20
00:00:36,160 –> 00:00:38,960
از سال 1987 با ارقام متمایز
21
00:00:38,960 –> 00:00:41,520
سال 2014 است و همه این ارقام هر کدام
22
00:00:41,520 –> 00:00:42,719
دارای ارقام متمایز هستند.
23
00:00:42,719 –> 00:00:44,879
24
00:00:44,879 –> 00:00:47,039
25
00:00:47,039 –> 00:00:48,800
سال آینده با
26
00:00:48,800 –> 00:00:50,079
ارقام متمایز،
27
00:00:50,079 –> 00:00:52,719
بنابراین مشخصات ورودی ما
28
00:00:52,719 –> 00:00:54,800
ورودی شامل یک عدد صحیح y است
29
00:00:54,800 –> 00:00:57,840
که y بین 0 تا 10 000 است
30
00:00:57,840 –> 00:00:59,680
که سال شروع را نشان می دهد و
31
00:00:59,680 –> 00:01:01,600
مشخصات خروجی o است. خروجی
32
00:01:01,600 –> 00:01:02,879
یک عدد صحیح منفرد d خواهد بود
33
00:01:02,879 –> 00:01:04,559
که سال بعد بعد از y با
34
00:01:04,559 –> 00:01:06,320
ارقام متمایز است
35
00:01:06,320 –> 00:01:07,920
، به عنوان مثال اگر ورودی نمونه
36
00:01:07,920 –> 00:01:10,720
1987 را در نظر بگیریم باید 2013 را بدست
37
00:01:10,720 –> 00:01:12,320
آوریم زیرا اولین سال با
38
00:01:12,320 –> 00:01:13,960
ارقام متمایز
39
00:01:13,960 –> 00:01:17,520
999 است که دوباره 10 23 دریافت می کنیم که اولین
40
00:01:17,520 –> 00:01:18,960
سال پس از آن است. 999
41
00:01:18,960 –> 00:01:22,320
با ارقام متمایز اکنون قبل از
42
00:01:22,320 –> 00:01:23,680
اینکه من واقعاً مشکل را حل
43
00:01:23,680 –> 00:01:24,840
کنم این است که یک
44
00:01:24,840 –> 00:01:26,560
تعریف یا تابعی ایجاد می کنم و
45
00:01:26,560 –> 00:01:28,400
فراخوانی می شود متمایز است
46
00:01:28,400 –> 00:01:30,000
و کاری که این تابع قرار است انجام دهد این است
47
00:01:30,000 –> 00:01:31,840
که انجام شود یک پارامتر x
48
00:01:31,840 –> 00:01:33,119
که یک عدد
49
00:01:33,119 –> 00:01:36,400
صحیح است، اگر x دارای
50
00:01:36,400 –> 00:01:38,159
ارقام متمایز باشد
51
00:01:38,159 –> 00:01:39,840
همانطور که در مسئله تعریف شده است،
52
00:01:39,840 –> 00:01:41,360
مقدار false را برمی گرداند،
53
00:01:41,360 –> 00:01:45,600
اگر x ارقام متمایز
54
00:01:45,600 –> 00:01:50,079
نداشته باشد، بنابراین اگر آن را پاس کنیم،
55
00:01:50,079 –> 00:01:54,000
1987 متمایز است که برای ما برمی گردد.
56
00:01:54,000 –> 00:01:58,000
درست است اگر بتوانم تایپ کنم و اگر بگوییم
57
00:01:58,000 –> 00:01:59,159
58
00:01:59,159 –> 00:02:02,320
999 متمایز است، این به ما غلط برمی گردد،
59
00:02:02,320 –> 00:02:04,240
زیرا بدیهی است که بیش از یک عدد
60
00:02:04,240 –> 00:02:05,840
9 در آنجا وجود دارد
61
00:02:05,840 –> 00:02:08,160
و بنابراین برای انجام این کار،
62
00:02:08,160 –> 00:02:10,080
با ایجاد اعداد لیست خالی شروع می کنم و
63
00:02:10,080 –> 00:02:11,840
این به فروشگاه e
64
00:02:11,840 –> 00:02:14,720
هر رقم از x بنابراین اولین کاری که
65
00:02:14,720 –> 00:02:15,920
انجام می دهیم این است که من هر رقم را بیرون می کشم
66
00:02:15,920 –> 00:02:17,599
و آن را به صورت نقطه
67
00:02:17,599 –> 00:02:19,040
قرار می دهم و از این
68
00:02:19,040 –> 00:02:20,879
الگوریتم کوچک شگفت انگیز در اینجا استفاده
69
00:02:20,879 –> 00:02:23,280
می کنم و می گوییم وای x برابر نیست با
70
00:02:23,280 –> 00:02:24,239
71
00:02:24,239 –> 00:02:25,680
72
00:02:25,680 –> 00:02:27,440
0. و بنابراین تا زمانی که x برابر 0 نباشد این کار را ادامه می دهم و
73
00:02:27,440 –> 00:02:28,879
به دو مرحله نیاز دارد.
74
00:02:28,879 –> 00:02:30,319
مرحله اول این است که nums
75
00:02:30,319 –> 00:02:32,160
را می گیرم و به nums x
76
00:02:32,160 –> 00:02:35,599
mod 10 اضافه می کنم. پس این چه کاری انجام می دهد اما وقتی
77
00:02:35,599 –> 00:02:36,000
78
00:02:36,000 –> 00:02:38,400
هر عددی را 10 تغییر می دهیم، رقم واحد را می گیریم
79
00:02:38,400 –> 00:02:39,760
که رقم یکان است،
80
00:02:39,760 –> 00:02:42,800
بنابراین رقم
81
00:02:42,800 –> 00:02:47,040
واحد x را می گیرد و به اعداد به خوبی اضافه می
82
00:02:47,040 –> 00:02:48,640
کند اگر آن را اجرا کنم، این حلقه
83
00:02:48,640 –> 00:02:50,319
برای همیشه ادامه خواهد داشت. اگر
84
00:02:50,319 –> 00:02:53,120
x را پاس کنم، 0 را نمی دانید زیرا
85
00:02:53,120 –> 00:02:54,319
فقط یک عدد را ادامه می دهد و
86
00:02:54,319 –> 00:02:56,560
ما یک لیست بسیار طولانی دریافت می کنیم،
87
00:02:56,560 –> 00:02:58,319
بنابراین من می خواهم رقم بعدی را بدست بیاورم و برای
88
00:02:58,319 –> 00:02:59,599
انجام این کار
89
00:02:59,599 –> 00:03:02,239
از چیزی به نام تقسیم
90
00:03:02,239 –> 00:03:04,400
اعداد صحیح و عدد صحیح استفاده می کنم. تقسیم زمانی است که ما تقسیم
91
00:03:04,400 –> 00:03:06,080
می کنیم و اعداد اعشاری را برش می دهیم، بنابراین اگر
92
00:03:06,080 –> 00:03:08,239
عدد صحیحی را بر 10 تقسیم
93
00:03:08,239 –> 00:03:11,280
کنم، رقم واحد را برش می دهیم، بنابراین اجازه
94
00:03:11,280 –> 00:03:12,000
دهید فقط
95
00:03:12,000 –> 00:03:15,280
نشان دهم شما یک مثال کوچک در اینجا می آورید اگر من
96
00:03:15,280 –> 00:03:16,000
چیزی مانند
97
00:03:16,000 –> 00:03:19,280
من نمی دانم 345 را در نظر بگیرم بسیار
98
00:03:19,280 –> 00:03:22,640
خوب می گوییم x 345 است. هنگامی که ما
99
00:03:22,640 –> 00:03:24,400
شروع می کنیم اعداد برابر با یک لیست خالی خواهد بود
100
00:03:24,400 –> 00:03:27,720
و وقتی می گویم
101
00:03:27,720 –> 00:03:30,879
345 mod
102
00:03:30,879 –> 00:03:34,159
10 به من می دهد 5 و
103
00:03:34,159 –> 00:03:36,159
پس حالا من 5 رقمی را دارم که به اعداد اضافه می
104
00:03:36,159 –> 00:03:39,440
کنم، بنابراین اعداد اکنون 5 دارد،
105
00:03:39,440 –> 00:03:42,879
بنابراین می گوییم 345
106
00:03:42,879 –> 00:03:44,560
و 2 تقسیم بر 10 و این
107
00:03:44,560 –> 00:03:46,640
به من
108
00:03:46,640 –> 00:03:50,159
34 می دهد زیرا وقتی 345 را بر 10 تقسیم می کنیم به
109
00:03:50,159 –> 00:03:50,920
دست می آوریم.
110
00:03:50,920 –> 00:03:54,319
34.5 اما تقسیم را معرفی می کنیم بنابراین
111
00:03:54,319 –> 00:03:55,599
اعداد اعشاری را حذف
112
00:03:55,599 –> 00:03:57,760
می کنیم و می گوییم آیا این برابر با صفر نیست و
113
00:03:57,760 –> 00:03:58,720
این درست است
114
00:03:58,720 –> 00:04:02,080
بنابراین می گوییم 334
115
00:04:02,080 –> 00:04:05,840
mod 10 که به من 4 می دهد
116
00:04:05,840 –> 00:04:08,959
و سپس می گویم این را به لیست خود اضافه می کنم تا
117
00:04:08,959 –> 00:04:11,840
اعداد میروم 4 میروم و سپس میگویم
118
00:04:11,840 –> 00:04:13,680
34 عدد صحیح تقسیم بر 10 که
119
00:04:13,680 –> 00:04:15,360
به من 3 میدهد و
120
00:04:15,360 –> 00:04:17,839
میگویم این 0 است و پاسخ منفی است، بنابراین میگویم
121
00:04:17,839 –> 00:04:20,399
3 mod 10
122
00:04:20,399 –> 00:04:21,759
و این به من 3 میدهد که
123
00:04:21,759 –> 00:04:24,479
به لیست اضافه میکند. و بنابراین من 3 دریافت می کنم
124
00:04:24,479 –> 00:04:27,440
و سپس می گویم خوب است، سپس می گویم 3
125
00:04:27,440 –> 00:04:28,800
اینچ تقسیم بر 10
126
00:04:28,800 –> 00:04:31,360
که 0 است و می گویم این 0 است و
127
00:04:31,360 –> 00:04:32,160
پاسخ مثبت است
128
00:04:32,160 –> 00:04:34,240
بنابراین از حلقه خارج می شوم و غیره ce
129
00:04:34,240 –> 00:04:35,199
این حلقه با اجرا انجام شد،
130
00:04:35,199 –> 00:04:38,000
من اکنون این وضعیت را دارم
131
00:04:38,000 –> 00:04:38,880
که در آن
132
00:04:38,880 –> 00:04:41,199
اعداد با اعداد از آن پر شده است،
133
00:04:41,199 –> 00:04:42,560
134
00:04:42,560 –> 00:04:43,840
بنابراین من فقط این را انتخاب می کنم و به
135
00:04:43,840 –> 00:04:45,840
اینجا
136
00:04:45,840 –> 00:04:48,240
می رسم که ممکن است برای برخی افراد مفید باشد، شاید
137
00:04:48,240 –> 00:04:50,560
من از آن در کلاس استفاده کنم. برای توضیح
138
00:04:50,560 –> 00:04:51,600
همه چیز خوب، بنابراین ما به اینجا می آییم،
139
00:04:51,600 –> 00:04:53,199
بنابراین اکنون من این لیست از
140
00:04:53,199 –> 00:04:54,160
اعداد را دارم، بنابراین کاری که می خواهم انجام دهم این است
141
00:04:54,160 –> 00:04:55,680
که بگویم اعداد. مرتب سازی
142
00:04:55,680 –> 00:04:57,120
و کاری که قرار است انجام دهد این است