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