در این مطلب، ویدئو Leetcode – تقسیم دو عدد صحیح (Python) با زیرنویس فارسی را برای دانلود قرار داده ام. شما میتوانید با پرداخت 15 هزار تومان ، این ویدیو به علاوه تمامی فیلم های سایت را دانلود کنید.اکثر فیلم های سایت به زبان انگلیسی می باشند. این ویدئو دارای زیرنویس فارسی ترجمه شده توسط هوش مصنوعی می باشد که میتوانید نمونه ای از آن را در قسمت پایانی این مطلب مشاهده کنید.
مدت زمان فیلم: 00:06:19
تصاویر این ویدئو:
قسمتی از زیرنویس این فیلم:
00:00:00,719 –> 00:00:02,960
به چالش leeco فوریه خوش آمدید
2
00:00:02,960 –> 00:00:05,200
مشکل امروز تقسیم دو عدد صحیح است
3
00:00:05,200 –> 00:00:07,839
که با دو عدد صحیح تقسیم می شود و مقسوم علیه
4
00:00:07,839 –> 00:00:08,960
یا مقسوم کننده
5
00:00:08,960 –> 00:00:10,719
دو عدد صحیح را بدون استفاده از
6
00:00:10,719 –> 00:00:12,400
تقسیم ضرب تقسیم می کند
7
00:00:12,400 –> 00:00:15,120
و عملگرهای mod
8
00:00:15,120 –> 00:00:17,520
پس از تقسیم تقسیم بر مقسوم علیه تقسیم
9
00:00:17,520 –> 00:00:19,039
اعداد صحیح،
10
00:00:19,039 –> 00:00:20,480
اساساً ضریب این است.
11
00:00:20,480 –> 00:00:20,800
12
00:00:20,800 –> 00:00:24,320
13
00:00:24,320 –> 00:00:26,320
فرض کنید که اعداد صحیح ما در
14
00:00:26,320 –> 00:00:28,400
محدوده اعداد صحیح امضا شده 32 بیتی هستند
15
00:00:28,400 –> 00:00:30,960
و برای این مشکل فرض کنید که تابع شما
16
00:00:30,960 –> 00:00:32,320
17
00:00:32,320 –> 00:00:35,120
2 را به توان 31 منهای 1 برمی گرداند زمانی که
18
00:00:35,120 –> 00:00:37,280
نتیجه تقسیم اساساً سرریز می شود اگر
19
00:00:37,280 –> 00:00:37,920
20
00:00:37,920 –> 00:00:40,800
پاسخ ما خارج از محدوده باشد. محدوده هر
21
00:00:40,800 –> 00:00:42,399
دو طرف مثبت یا منفی
22
00:00:42,399 –> 00:00:44,480
پس میخواهیم کف
23
00:00:44,480 –> 00:00:48,000
یا سقف را 231 منهای یک
24
00:00:48,000 –> 00:00:50,079
خوب برگردانیم، بنابراین اگر این مشکل را در اینجا داشتیم
25
00:00:50,079 –> 00:00:52,160
تقسیمکننده 10 و مقسومکننده سه
26
00:00:52,160 –> 00:00:53,680
چگونه میتوانیم بدون استفاده از تابع تقسیم خوب این مشکل را حل کنیم.
27
00:00:53,680 –> 00:00:55,280
28
00:00:55,280 –> 00:00:57,039
ما این کار را مستقیماً
29
00:00:57,039 –> 00:00:58,960
انجام دادیم کاری که انجام میدهیم این است که
30
00:00:58,960 –> 00:01:01,680
سه بار تا جایی که میتوانیم کم کنیم تا
31
00:01:01,680 –> 00:01:02,239
32
00:01:02,239 –> 00:01:06,560
سود سهام کمتر شود یک سه درست
33
00:01:06,560 –> 00:01:08,080
یک بار که اتفاق بیفتد، می توانیم
34
00:01:08,080 –> 00:01:09,680
تعداد دفعاتی را که توانستیم تفریق کنیم بشماریم
35
00:01:09,680 –> 00:01:12,159
و فقط آن را برگردانیم تا جواب
36
00:01:12,159 –> 00:01:15,439
o از n باشد با فرض اینکه n
37
00:01:15,439 –> 00:01:16,640
تعداد دفعاتی است که
38
00:01:16,640 –> 00:01:18,720
می توانیم در اینجا تقسیم کنیم، پس بیایید با آن
39
00:01:18,720 –> 00:01:20,479
راه حل در ابتدا
40
00:01:20,479 –> 00:01:22,560
کاری که ما انجام خواهیم داد این است که ابتدا این
41
00:01:22,560 –> 00:01:23,680
مقادیر مطلق را
42
00:01:23,680 –> 00:01:25,439
بسازیم تا بتوانیم مثبت
43
00:01:25,439 –> 00:01:26,799
و منفی را محاسبه کنیم و
44
00:01:26,799 –> 00:01:29,280
بعداً می توانیم بررسی کنیم که آیا یکی از
45
00:01:29,280 –> 00:01:30,560
این موارد منفی
46
00:01:30,560 –> 00:01:32,240
است یا خیر، سپس می توانیم
47
00:01:32,240 –> 00:01:34,560
پاسخ خود را برگردانیم. در عوض منفی باشید،
48
00:01:34,560 –> 00:01:36,079
بنابراین کاری که انجام می دهیم این است که
49
00:01:36,079 –> 00:01:38,960
قدر مطلق سود سهام را در
50
00:01:38,960 –> 00:01:42,320
اینجا با مقسوم علیه dv
51
00:01:42,320 –> 00:01:44,320
به دست آوریم و بعداً بررسی می کنیم که آیا تنها
52
00:01:44,320 –> 00:01:45,360
یکی از آنها منفی است
53
00:01:45,360 –> 00:01:46,880
و سپس می توانیم پاسخ خود را برگردانیم تا
54
00:01:46,880 –> 00:01:48,720
خروجی شروع شود. خاموش کردن با صفر،
55
00:01:48,720 –> 00:01:50,159
بنابراین اگر این کار را به طور مستقیم انجام دهیم
56
00:01:50,159 –> 00:01:51,840
، می گوییم در حالی که
57
00:01:51,840 –> 00:01:54,960
d کمتر یا مساوی مقسوم علیه است
58
00:01:54,960 –> 00:01:56,560
،
59
00:01:56,560 –> 00:02:00,880
از d مقسوم علیه کم می کنیم و
60
00:02:00,880 –> 00:02:04,719
هر بار به خروجی خود یک اضافه می
61
00:02:04,719 –> 00:02:06,880
کنیم و پس از انجام این کار می
62
00:02:06,880 –> 00:02:08,560
توانیم خروجی خود را برگردانیم. ما همچنین باید مطمئن شویم
63
00:02:08,560 –> 00:02:09,440
که
64
00:02:09,440 –> 00:02:12,080
اوم، باید بررسی کنیم که آیا یکی از
65
00:02:12,080 –> 00:02:13,599
اینها منفی است، بنابراین میتوانیم
66
00:02:13,599 –> 00:02:15,680
67
00:02:15,680 –> 00:02:18,879
بگوییم اگر سود سهام کمتر از صفر است و
68
00:02:18,879 –> 00:02:20,720
69
00:02:20,720 –> 00:02:23,120
مقسومکننده بزرگتر یا مساوی صفر بود، سپس
70
00:02:23,120 –> 00:02:24,319
میخواهیم آن را
71
00:02:24,319 –> 00:02:27,920
برگردانیم، اگر دیگری است.
72
00:02:30,480 –> 00:02:32,720
جایی که مقسوم علیه کمتر از صفر و
73
00:02:32,720 –> 00:02:34,800
سود سهام بزرگتر
74
00:02:34,800 –> 00:02:36,800
یا مساوی صفر باشد،
75
00:02:36,800 –> 00:02:38,080
خروجی خود را می گیریم و آن را برابر با
76
00:02:38,080 –> 00:02:38,959
خروجی منفی می
77
00:02:38,959 –> 00:02:42,319
کنیم، بنابراین این کار می کند
78
00:02:42,319 –> 00:02:46,319
اما خیلی کارآمد نیست درست است
79
00:02:49,280 –> 00:02:51,200
متاسفم نه کمتر از یا مساوی با
80
00:02:51,200 –> 00:02:54,080
بزرگتر یا مساوی
81
00:02:55,760 –> 00:02:58,159
بله، بنابراین اینجا که می رویم این کار می کند،
82
00:02:58,159 –> 00:02:59,360
اما بسیار ناکارآمد است،
83
00:02:59,360 –> 00:03:01,120
مانند روش هایی که می توانیم
84
00:03:01,120 –> 00:03:04,319
این کار را کارآمدتر کنیم،
85
00:03:04,319 –> 00:03:06,000
یکی از راه هایی که می توانیم آن را کمی
86
00:03:06,000 –> 00:03:07,599
سریعتر کنیم، بگوییم که
87
00:03:07,599 –> 00:03:10,560
تعدادی عدد بزرگ داریم مانند ده هزار
88
00:03:10,560 –> 00:03:12,000
به جای تفریق سه در
89
00:03:12,000 –> 00