در این مطلب، ویدئو کد Quickie: MATLAB در مقابل پایتون راند 1: مرتب سازی با زیرنویس فارسی را برای دانلود قرار داده ام. شما میتوانید با پرداخت 15 هزار تومان ، این ویدیو به علاوه تمامی فیلم های سایت را دانلود کنید.اکثر فیلم های سایت به زبان انگلیسی می باشند. این ویدئو دارای زیرنویس فارسی ترجمه شده توسط هوش مصنوعی می باشد که میتوانید نمونه ای از آن را در قسمت پایانی این مطلب مشاهده کنید.
تصاویر این ویدئو:
قسمتی از زیرنویس این فیلم:
00:00:01,400 –> 00:00:04,670
[موسیقی]
2
00:00:04,670 –> 00:00:07,319
به یکی دیگر خوش آمدید سریعاً و
3
00:00:07,319 –> 00:00:08,700
این اولین دور از
4
00:00:08,700 –> 00:00:12,420
نبرد matlab اولین پایتون خواهد بود بنابراین دور اول
5
00:00:12,420 –> 00:00:14,309
ما به تابع مرتب سازی نگاه می کنیم،
6
00:00:14,309 –> 00:00:16,470
تابع مرتب سازی داخلی، بنابراین در اینجا ما
7
00:00:16,470 –> 00:00:19,740
متلب داریم که تعریف کرده ایم.
8
00:00:19,740 –> 00:00:22,230
تعداد نمونههای داخل بردار تصادفی
9
00:00:22,230 –> 00:00:23,699
تعداد آزمایشها
10
00:00:23,699 –> 00:00:25,769
برای بدست آوردن میانگین انجام میشد تا
11
00:00:25,769 –> 00:00:27,840
بتوانیم نتایج کمی پایدارتر به دست آوریم،
12
00:00:27,840 –> 00:00:30,660
یک بردار را مقداردهی اولیه میکنیم تا x ما را در
13
00:00:30,660 –> 00:00:32,520
آنجا ذخیره کنیم و یک حلقه در تمام
14
00:00:32,520 –> 00:00:35,340
آزمایشها انجام دهیم. ایجاد دادههای تصادفی دریافت زمان
15
00:00:35,340 –> 00:00:38,040
متوجه این موضوع میشود که تمام تخصیص حافظه
16
00:00:38,040 –> 00:00:39,540
ما قبل از اینکه زمان را یادداشت کنیم، انجام میشود،
17
00:00:39,540 –> 00:00:41,280
بنابراین ما فقط
18
00:00:41,280 –> 00:00:43,170
زمانی را که برای مرتبسازی طول میکشد اختصاص میدهیم، بنابراین میخواهیم
19
00:00:43,170 –> 00:00:45,239
آیتمی را که به نظر میرسد مرتب کنیم.
20
00:00:45,239 –> 00:00:47,340
مثل اینکه در جای خود مرتب نشده است، به
21
00:00:47,340 –> 00:00:48,539
نظر می رسد که ما داده ها را مرتب می کنیم
22
00:00:48,539 –> 00:00:50,730
و سپس این نسخه از داده ها را بازنویسی می کنیم،
23
00:00:50,730 –> 00:00:52,410
بنابراین احتمالاً یک کپی در اینجا وجود دارد که
24
00:00:52,410 –> 00:00:55,020
در حافظه اتفاق می افتد و سپس ما
25
00:00:55,020 –> 00:00:57,690
زمان را یادداشت می کنیم تا در matlab شما بتوانید
26
00:00:57,690 –> 00:01:00,570
از tik استفاده کنید و برای صحبت با wi صحبت کنید از
27
00:01:00,570 –> 00:01:02,520
زمانی که تابع تیک را فراخوانی کردید،
28
00:01:02,520 –> 00:01:04,680
اساساً زمانی خواهد بود که تیک تاک در MATLAB تعبیه شده است،
29
00:01:04,680 –> 00:01:06,720
در اینجا کمی عجیب به نظر می رسد،
30
00:01:06,720 –> 00:01:07,950
مثل اینکه از متغیرهایی استفاده می کنید که
31
00:01:07,950 –> 00:01:10,830
تعریف نشده اند، اما این یک راه آسان برای آزمایشگاه من
32
00:01:10,830 –> 00:01:13,530
برای نگه داشتن زمان و سپس است. ما در
33
00:01:13,530 –> 00:01:15,390
طول حلقه چاپ می کنیم تا بدانیم که
34
00:01:15,390 –> 00:01:17,340
در حال اجرا است و سپس در انتها
35
00:01:17,340 –> 00:01:19,259
میانگین زمان را در تمام آزمایشات چاپ خواهیم کرد،
36
00:01:19,259 –> 00:01:22,530
در این مورد
37
00:01:22,530 –> 00:01:26,549
صد هزار نمونه برداریم و انجام دهیم.
38
00:01:26,549 –> 00:01:28,500
هزار بار آزمایش کنید و ببینید چقدر طول می
39
00:01:28,500 –> 00:01:32,210
کشد در MATLAB، بنابراین در اینجا ما می
40
00:01:32,210 –> 00:01:35,340
بینیم که بسیار سریع پرواز می کند و
41
00:01:35,340 –> 00:01:39,360
انجام می شود، بنابراین میانگین زمان 1.9
42
00:01:39,360 –> 00:01:42,720
برابر ده برابر ده تا منهای سه ثانیه است، بنابراین
43
00:01:42,720 –> 00:01:44,189
ما اساساً به یک نقطه
44
00:01:44,189 –> 00:01:46,350
نه و هشت میلی ثانیه نگاه می کنیم. به
45
00:01:46,350 –> 00:01:48,509
کدی که فکر میکردم
46
00:01:48,509 –> 00:01:49,920
پایتون باید با مقداری واردات شروع به کار کند،
47
00:01:49,920 –> 00:01:51,390
48
00:01:51,390 –> 00:01:53,640
نگاهی بیندازید، ما میخواهیم تابع میانگین خود را از numpy دریافت کنیم، ما یک زمان واردات هستیم، بنابراین
49
00:01:53,640 –> 00:01:55,170
میتوانیم زمان شروع و زمان توقف را
50
00:01:55,170 –> 00:01:57,420
برای زمانی که مرتبسازی را انجام میدهیم یادداشت کنیم. و سپس
51
00:01:57,420 –> 00:01:58,979
ما نیز به صورت تصادفی وارد می کنیم ما
52
00:01:58,979 –> 00:02:00,540
میتوانیم دوباره چند بردار تصادفی ایجاد
53
00:02:00,540 –> 00:02:01,829
کنیم، از همان تعداد نمونه استفاده میکنیم،
54
00:02:01,829 –> 00:02:03,840
بنابراین ده تا پنج نمونه
55
00:02:03,840 –> 00:02:07,259
100000 ما 1000 آزمایش را اجرا میکنیم
56
00:02:07,259 –> 00:02:10,258
و این برای تخصیص بردار خالی ما
57
00:02:10,258 –> 00:02:12,959
چهار بار در این مورد آرایهای که
58
00:02:12,959 –> 00:02:13,819
میرویم. برای استفاده از آنها
59
00:02:13,819 –> 00:02:16,640
یک عملگر را پیدا کنیم و بردار خالی را
60
00:02:16,640 –> 00:02:18,530
چهار بار
61
00:02:18,530 –> 00:02:20,750
ایجاد کنیم، این یک نمونه از کلاس تصادفی نقطه
62
00:02:20,750 –> 00:02:23,120
تصادفی ایجاد می کند، سپس
63
00:02:23,120 –> 00:02:25,159
تمام آزمایش های خود را حلقه حلقه می کنیم، در این مورد
64
00:02:25,159 –> 00:02:26,629
، از درک لیست استفاده می کنیم.
65
00:02:26,629 –> 00:02:29,390
بنابراین هر یک از اینها یک مقدار تصادفی را برمی گرداند
66
00:02:29,390 –> 00:02:31,489
و سپس ما این کار را روی این حلقه انجام می دهیم،
67
00:02:31,489 –> 00:02:32,780
بنابراین این درک لیست
68
00:02:32,780 –> 00:02:35,930
، لیستی با n نمونه تصادفی
69
00:02:35,930 –> 00:02:38,480
در آن ایجاد می کند، این تابع مقداری را
70
00:02:38,480 –> 00:02:40,939
در بازه 0 تا 1 برمی گرداند، این یک
71
00:02:40,939 –> 00:02:42,349
توزیع یکنواخت است. این همان
72
00:02:42,349 –> 00:02:43,909
توزیعی است که در تابع MATLAB
73
00:02:43,909 –> 00:02:45,469
داشتیم، بنابراین میخواهیم از همان
74
00:02:45,469 –> 00:02:47,599
توزیع برای مرتبسازی استفاده کنیم، سپس در اینجا
75
00:02:47,599 –> 00:02:48,920
متغیری به نام تیک تعریف میکنیم
76
00:02:48,920 –> 00:02:50,599
و فقط زمان فعلی را دریافت میکنیم و سپس
77
00:02:50,599 –> 00:02:52,189
دادههایمان را دوباره مرتب میکنیم. دوباره
78
00:02:52,189 –> 00:02:54,230
با استفاده از سرگرمی عملی که آن را در جای خود انجام نمی دهد،
79
00:02:54,230 –> 00:02:55,639
ما به
80
00:02:55,639 –> 00:02:57,739
81
00:02:57,739 –> 00:02:59,480
جای اینکه آن را در جای خود انجام دهیم، فقط برای اینکه
82
00:02:59,480 –> 00:03:01,730
همه چیز را منصفانه نگه داریم، داده ها را با نسخه مرتب شده بازنویسی می کنیم و سپس اختلاف زمانی خود را ذخیره می کنیم،
83
00:03:01,730 –> 00:03:02,930
بنابراین می خواهیم اطلاعات خود را دریافت
84
00:03:02,930 –> 00:03:04,519
کنیم. زمان فعلی منهای تیک و
85
00:03:04,519 –> 00:03:08,109
بیایید این را اجرا کنیم تا ببینیم چقدر طول می کشد
86
00:03:10,090 –> 00:03:14,540
و ارزش دارد که هنوز زمان واقعی است، بنابراین به
87
00:03:14,540 –> 00:03:16,189
نظر می رسد کمی کندتر است، من
88
00:03:16,189 –> 00:03:17,750
می روم جلو و سریع جلو می روم تا زمانی که
89
00:03:17,750 –> 00:03:20,260
به آخر برسیم.
90
00:03:21,810 –> 00:03:26,620
که نقطه
91
00:03:26,620 –> 00:03:30,630
صفر یک 91 ثانیه یا در این مورد
92
00:03:30,630 –> 00:03:33,209
نوزده نقطه یک سه سه
93
00:03:33,209 –> 00:03:36,190
میلی ثانیه طول کشید، بنابراین تقریباً ده برابر
94
00:03:36,190 –> 00:03:39,459
کندتر از نسخه متلب است و
95
00:03:39,459 –> 00:03:40,810
برای اینکه در اینجا منصف باشیم، اجازه دهید ادامه
96
00:03:40,810 –> 00:03:42,280
دهیم و روش مرتبسازی
97
00:03:42,280 –> 00:03:44,769
این دادهها را تغییر دهیم. میخواهیم ببینیم اگر
98
00:03:44,769 –> 00:03:50,650
این کار را در جای خود انجام دهیم، چه اتفاقی میافتد، فراخوانی
99
00:03:50,650 –> 00:03:53,410
ماژول کلاس مرتبسازی برای یک لیست، آن
100
00:03:53,410 –> 00:03:55,959
فهرست را در جای خود مرتب میکند، بنابراین بیایید ادامه دهیم و
101
00:03:55,959 –> 00:04:00,910
آن را امتحان کنیم، ببینیم آیا سریعتر است،
102
00:04:00,910 –> 00:04:02,019
بنابراین ما در زمان واقعی کار میکنیم.
103
00:04:02,019 –> 00:04:04,540
دوباره در اینجا ممکن است سریعتر باشد من
104
00:04:04,540 –> 00:04:05,920
می روم آه بخوانید و سریع جلو بروید تا
105
00:04:05,920 –> 00:04:08,220
تمام شود
106
00:04:08,260 –> 00:04:11,900
، یعنی فقط کمی سریعتر است، بنابراین
107
00:04:11,900 –> 00:04:14,360
ما به 17 نقطه هفت شش
108
00:04:14,360 –> 00:04:16,970
میلیثانیه میرسیم، فقط کمی سریعتر
109
00:04:16,970 –> 00:04:20,570
از خارج از اتاق در جای خود نیست، بنابراین
110
00:04:20,570 –> 00:04:23,560
به نظر میرسد برای این یکی به موقع است.
111
00:04:23,560 –> 00:04:26,030
MATLAB قهرمان ما است.
112
00:04:26,030 –> 00:04:28,430
113
00:04:28,430 –> 00:04:29,660
114
00:04:29,660 –> 00:04:32,120
115
00:04:32,120 –> 00:04:34,610
116
00:04:34,610 –> 00:04:37,130
117
00:04:37,130 –> 00:04:40,280
typecast اینها را به
118
00:04:40,280 –> 00:04:42,110
اعداد صحیح تبدیل کنید، در واقع با خطا مواجه می شوید، بنابراین
119
00:04:42,110 –> 00:04:44,780
من سعی می کنم این را اجرا کنم تا بتوانید
120
00:04:44,780 –> 00:04:47,360
در اینجا خطای تایپ را ببینید، بنابراین اگر بخواهید
121
00:04:47,360 –> 00:04:48,680
تابع range را با چیزی
122
00:04:48,680 –> 00:04:50,750
که عدد صحیح نیست فراخوانی کنید، با خطا مواجه خواهید شد
123
00:04:50,750 –> 00:04:54,710
و این از آنجایی که این مقدار یک
124
00:04:54,710 –> 00:04:57,470
عدد صحیح نیست، حتی اگر به وضوح به
125
00:04:57,470 –> 00:04:58,820
یک عدد صحیح گرد میشود، به طور خودکار سعی نمیکند
126
00:04:58,820 –> 00:05:01,340
آن را تایپ کند و پایتون هر زمان که از این حاشیهنویسی استفاده میکنید
127
00:05:01,340 –> 00:05:03,830
128
00:05:03,830 –> 00:05:06,620
یا مانند یک نسخه کوتاه از
129
00:05:06,620 –> 00:05:08,360
نماد علمی، همیشه به شما
130
00:05:08,360 –> 00:05:10,580
یک val ممیز شناور میدهد. ue یا double،
131
00:05:10,580 –> 00:05:12,500
بنابراین در اینجا در پایتون با خطا مواجه می شوید
132
00:05:12,500 –> 00:05:15,229
که به نظر من بسیار تعجب آور
133
00:05:15,229 –> 00:05:17,270
است، یکی از مشکلاتی است که من با پایتون
134
00:0