در این مطلب، ویدئو مصاحبه پایتون با یک مهندس مایکروسافت: حداکثر توالی متوالی با زیرنویس فارسی را برای دانلود قرار داده ام. شما میتوانید با پرداخت 15 هزار تومان ، این ویدیو به علاوه تمامی فیلم های سایت را دانلود کنید.اکثر فیلم های سایت به زبان انگلیسی می باشند. این ویدئو دارای زیرنویس فارسی ترجمه شده توسط هوش مصنوعی می باشد که میتوانید نمونه ای از آن را در قسمت پایانی این مطلب مشاهده کنید.
مدت زمان فیلم: 00:27:15
تصاویر این ویدئو:
قسمتی از زیرنویس این فیلم:
00:00:21,260 –> 00:00:29,119
سلام هی هی خوبی تو چطوری من خوبم
2
00:00:29,119 –> 00:00:32,308
پس بله به عنوان مقدمه من یک
3
00:00:32,308 –> 00:00:34,440
مهندس نرم افزار در مایکروسافت هستم، تیمی
4
00:00:34,440 –> 00:00:36,900
که در حال انجام آن هستم این است که ما در حال
5
00:00:36,900 –> 00:00:38,850
ساخت یک ظرف برای اجرای
6
00:00:38,850 –> 00:00:41,780
سرور بعدی در داخل هستیم که crazy forever می
7
00:00:41,780 –> 00:00:44,699
تواند روی پلتفرم های غیر ویندوزی بدون
8
00:00:44,699 –> 00:00:47,489
تغییر بیش از حد کد منبع برنامه اجرا شود،
9
00:00:47,489 –> 00:00:51,540
اوه خوب، بله، پس این
10
00:00:51,540 –> 00:00:53,159
کمی به خودم مربوط است.
11
00:00:53,159 –> 00:00:54,629
12
00:00:54,629 –> 00:00:57,360
13
00:00:57,360 –> 00:00:59,070
بنابراین
14
00:00:59,070 –> 00:01:01,199
در حال حاضر من در شرکت فناوری چیزهای خود
15
00:01:01,199 –> 00:01:04,319
در نیویورک کار می کنم، بنابراین به
16
00:01:04,319 –> 00:01:06,360
دلایل شخصی به دنبال تغییر به سواحل غربی
17
00:01:06,360 –> 00:01:10,380
هستم، بنابراین بله، خیلی خوب است،
18
00:01:10,380 –> 00:01:12,810
بنابراین از نظر مصاحبه امروز
19
00:01:12,810 –> 00:01:14,310
آنچه در ذهن دارم این است که با این مانند یک
20
00:01:14,310 –> 00:01:16,680
صفحه نمایش تلفن ساختگی برای مایکروسافت
21
00:01:16,680 –> 00:01:18,659
رفتار کنید. من از شما سوالاتی با همان سختی می پرسم
22
00:01:18,659 –> 00:01:19,890
که شما را با همان استانداردها نگه می دارد
23
00:01:19,890 –> 00:01:21,330
و در پایان به شما
24
00:01:21,330 –> 00:01:22,770
بازخورد می دهد آیا منطقی به نظر می رسد
25
00:01:22,770 –> 00:01:25,619
بله عالی نیست.
26
00:01:25,619 –> 00:01:26,609
ادامه دهید و زبان خود را انتخاب
27
00:01:26,609 –> 00:01:28,020
کنید و شروع کنیم
28
00:01:28,020 –> 00:01:30,929
من شلیک کردم آیا آنها در حال مبارزه هستند بله بسیار
29
00:01:30,929 –> 00:01:33,840
خوب، بنابراین ما ابتدا این کار را انجام می دهیم این
30
00:01:33,840 –> 00:01:38,850
است که اساساً به یک
31
00:01:38,850 –> 00:01:43,799
مشکل دستکاری لیست نگاه کنیم خوب است بنابراین
32
00:01:43,799 –> 00:01:50,359
لیستی از اعداد صحیح به خوبی و حداکثر
33
00:01:50,359 –> 00:01:57,990
طول دنباله ای از
34
00:01:57,990 –> 00:02:06,049
اعداد متوالی که می تواند باشد. با استفاده از
35
00:02:06,049 –> 00:02:16,800
عناصر زیر این okay تشکیل شده است، من
36
00:02:16,800 –> 00:02:20,250
یک مثال برای شما می زنم، بنابراین این ایده که می گویند به
37
00:02:20,250 –> 00:02:28,170
شما این آرایه 5 3 1 داده شده است و
38
00:02:28,170 –> 00:02:29,069
سپس بیایید
39
00:02:29,069 –> 00:02:34,590
99 را در اینجا قرار دهیم تا 100، بنابراین در اینجا شما دو
40
00:02:34,590 –> 00:02:40,829
دنباله برای انتخاب از سمت راست دارید 99 1
41
00:02:40,829 –> 00:02:47,549
از طریق 5 و 99 و 100 و شما
42
00:02:47,549 –> 00:03:04,260
کاملاً احساس می کنید مهم نیست که
43
00:03:04,260 –> 00:03:10,230
اعداد را به چه ترتیبی انتخاب می کنم، خوب است
44
00:03:10,230 –> 00:03:12,480
که اعداد باید پشت سر هم
45
00:03:12,480 –> 00:03:15,209
باشند، بنابراین خوب است، بنابراین من فقط تعجب می کنم که
46
00:03:15,209 –> 00:03:19,530
چگونه 1 2 5 را در اینجا به دست آوردید. بنابراین چون
47
00:03:19,530 –> 00:03:21,810
وقتی آرایه شما دو عدد 1 2 3 4 5 دارید،
48
00:03:21,810 –> 00:03:24,930
اوه بله، بنابراین من میپرسم که آیا
49
00:03:24,930 –> 00:03:26,730
لازم است اعداد
50
00:03:26,730 –> 00:03:30,959
به همان ترتیب ظاهر شوند زیرا در
51
00:03:30,959 –> 00:03:32,939
این مورد 1 منظورم این است که اعداد ما
52
00:03:32,939 –> 00:03:36,239
خارج هستند از ترتیب درست است پس خوب است بله
53
00:03:36,239 –> 00:03:38,669
بله اعداد دنباله شما هستند
54
00:03:38,669 –> 00:03:40,949
ترتیب اعداد در آرایه
55
00:03:40,949 –> 00:03:48,019
شما مهم نیست، بیایید آن را مطرح کنیم، بسیار خوب،
56
00:03:48,019 –> 00:03:56,150
سوال درست است،
57
00:03:56,849 –> 00:03:59,170
بنابراین حدس میزنم که منظور شما این بود که
58
00:03:59,170 –> 00:04:00,940
اولین رویکردی که میتوانم به آن فکر کنم،
59
00:04:00,940 –> 00:04:03,819
مرتب کردن کل آرایه است و شما
60
00:04:03,819 –> 00:04:05,110
میدانید که فقط آرایه یک را مرور میکنید.
61
00:04:05,110 –> 00:04:06,970
عنصر در یک زمان و من می
62
00:04:06,970 –> 00:04:10,660
توانم دنباله ای را که اولین کلمات توقفی است
63
00:04:10,660 –> 00:04:15,880
که می توانم در حال حاضر به آن فکر کنم شمارش کنم،
64
00:04:15,880 –> 00:04:17,858
اوه، این چیزی است که قطعاً درست کار می کند، اما
65
00:04:17,858 –> 00:04:19,899
بله، من تمام کردم، بله، درست است، بله،
66
00:04:19,899 –> 00:04:21,910
بله، اما این مقدار از n خواهد بود. log n
67
00:04:21,910 –> 00:04:23,710
پیچیدگی من سعی می کنم فکر کنم که آیا می
68
00:04:23,710 –> 00:04:26,580
توانیم آن را در یک زمان خطی انجام دهیم.
69
00:04:54,980 –> 00:04:57,040
70
00:05:34,320 –> 00:05:36,390
71
00:05:36,390 –> 00:05:39,060
72
00:05:39,060 –> 00:05:40,260
73
00:05:40,260 –> 00:05:43,350
74
00:05:43,350 –> 00:05:48,120
به این راه رسیدم و من پنج را ذخیره می کنم و سپس
75
00:05:48,120 –> 00:05:52,950
با 210 مواجه می شوم و
76
00:05:52,950 –> 00:05:57,770
بعد از فروشگاه در جای دیگری با 99 مواجه
77
00:06:52,339 –> 00:06:55,789
می شوم، خوب شاید حدس می زنم می توانم با گزینه
78
00:06:55,789 –> 00:06:59,029
I can have مانند دو نشانگر
79
00:06:59,029 –> 00:07:04,549
شروع کنم. من آرام
80
00:07:04,549 –> 00:07:06,169
هستم، بنابراین مشکل زمانی است که با یک شماره روبرو می شوم
81
00:07:06,169 –> 00:07:07,819
مثل آنتیگونه باید بفهمم
82
00:07:07,819 –> 00:07:09,589
که بخشی از یک دنباله متفاوت است یا
83
00:07:09,589 –> 00:07:12,949
همان دنباله نیست، درست
84
00:07:12,949 –> 00:07:15,469
است که هر عددی درست است که شما دارید،
85
00:07:15,469 –> 00:07:21,069
فقط می تواند بخشی از یک دنباله باشد، بله
86
00:07:21,069 –> 00:07:32,749
دقیقاً بله، پس شاید بنابراین باید پیدا کنم
87
00:07:32,749 –> 00:07:35,089
کدام یک ترتیبی که عدد به درستی می افتد بسیار
88
00:07:35,089 –> 00:07:37,429
خوب یا باید خود دنباله را پیدا کنید
89
00:07:37,429 –> 00:07:39,409
و سپس آن عدد را به عنوان بازدید شده علامت گذاری کنید
90
00:07:39,409 –> 00:07:41,449
و دیگر مجبور نیستید آن
91
00:07:41,449 –> 00:07:46,610
عدد را دوباره ببینید پس خوب است، بنابراین فرض کنید من
92
00:07:46,610 –> 00:07:52,669
اکنون پنج دارم، بنابراین باید بفهمم
93
00:07:52,669 –> 00:07:55,609
کدام رویکرد منطقی
94
00:07:55,609 –> 00:07:58,969
است که با عدد درست شروع کنیم بله،
95
00:07:58,969 –> 00:08:02,269
من می خواهم یک جستجو انجام دهم و سپس
96
00:08:02,269 –> 00:08:03,979
اعداد قبل از آن را جستجو کنم و بعد از
97
00:08:03,979 –> 00:08:09,229
آن بله دقیقاً بله، اما منظورم این است که
98
00:08:09,229 –> 00:08:10,669
برای هر عدد باشد، سپس آن را انجام خواهم داد.
99
00:08:10,669 –> 00:08:12,649
درست است، بنابراین برای مثال اگر
100
00:08:12,649 –> 00:08:15,979
پنج نفر در حال حاضر آن ثانویه را نگه دارید، اما
101
00:08:15,979 –> 00:08:19,219
درست است، بله، این همان چیزی است که ما
102
00:08:19,219 –> 00:08:21,379
باید انجام دهیم، بنابراین حدس میزنم نگرانی شما در مورد
103
00:08:21,379 –> 00:08:23,029
آن این است که اگر آن را برای هر
104
00:08:23,029 –> 00:08:25,279
عدد انجام دهید، دقیقاً N میشود.
105
00:08:25,279 –> 00:08:28,819
لازم نیست درست باشد
106
00:08:28,819 –> 00:08:30,739
ب زیرا در اینجا از ویژگی دیگری استفاده می کنید
107
00:08:30,739 –> 00:08:32,419
که اعداد
108
00:08:32,419 –> 00:08:33,919
باید متوالی باشند، لازم نیست
109
00:08:33,919 –> 00:08:38,929
کل آرایه را درست تکرار کنید، بنابراین برای بچه های
110
00:08:38,929 –> 00:08:40,759
پنج ساله فقط شش و چهار را انتخاب کنید،
111
00:08:40,759 –> 00:08:42,698
سپس به شش بروید و به دنبال آن بگردید.
112
00:08:42,698 –> 00:08:45,379
هفت درست است، شما به چهار می روید و به
113
00:08:45,379 –> 00:08:48,050
دنبال سه مورد می گردید، بنابراین اگر بتوانید این کار را انجام دهید
114
00:08:48,050 –> 00:08:51,319
و زمان ثابتی عالی خواهد بود، بنابراین
115
00:08:51,319 –> 00:08:53,089
حدس می زنم همیشه می گویید وقتی
116
00:08:53,089 –> 00:08:55,519
آن را پیدا کردم، به پنج
117
00:08:55,519 –> 00:08:57,250
از چهار برنمی گردم. من به عقب برمی گردم که به نظر می رسد ما
118
00:08:57,250 –> 00:09:00,410
خوب هستیم، بنابراین از سه می توانم به عقب برگردم
119
00:09:00,410 –> 00:09:03,559
و به دنبال دو مورد خوب بگردم، بنابراین حدس می زنم
120
00:09:03,559 –> 00:09:05,179
که این سؤال به یک لیست تبدیل شود،
121
00:09:05,179 –> 00:09:06,170
این حق را
122
00:09:06,170 –> 00:09:08,690
از a به شما نمی دهد، زیرا شما نمی توانید بدون انجام یک کار به a3 بروید.
123
00:09:08,690 –> 00:09:12,320
جستجوی خطی دقیقاً بله
124
00:09:12,320 –> 00:09:15,110
عدد، بنابراین چه ساختار دادهای به
125
00:09:15,110 –> 00:09:17,269
شما این جستجوی زمان ثابت را میدهد، بله، بنابراین من
126
00:09:17,269 –> 00:09:19,040
باید مانند یک نقشه هش
127
00:09:19,040 –> 00:09:21,639
از همه شاخصهای اعداد یک
128
00:09:21,639 –> 00:09:24,560
نقشه هش یا مجموعه هش استفاده کنم، شما باید
129
00:09:24,560 –> 00:09:26,350
در اینجا مراقب باشید.
130
00:09:26,350 –> 00:09:30,500
این فقط به من می گوید که
131
00:09:30,500 –> 00:09:32,329
شماره وجود دارد یا خیر، بنابراین حدس می زنم که
132
00:09:32,329 –> 00:09:34,639
باید fi باشد چون من واقعاً مجبور نیستم
133
00:09:34,639 –> 00:09:36,610
به فهرست شماره
134
00:09:36,610 –> 00:09:39,320
درست بروم، بنابراین حدس میزنم شما در مجموعه هش هستید
135
00:09:39,320 –> 00:09:40,850
و فقط جستجو کنید که آیا عدد وجود دارد
136
00:09:40,850 –> 00:09:41,380
یا خیر،
137
00:09:41,380 –> 00:09:44,000
بنابراین این قسمت اول است، پس
138
00:09:44,000 –> 00:09:45,260
یک بار چه کار میکنید شما از آن شماره بازدید کرده اید،
139
00:09:45,260 –> 00:09:47,660
پس آیا خوب هستید، پس بیایید
140
00:09:47,660 –> 00:09:50,899
بگوییم خوب است، بنابراین من فقط ادامه می دهم، بنابراین بیایید
141
00:09:50,899 –> 00:09:53,269
بگوییم من در پنج عقب هستم، خوب است، بنابراین پنج را بسازید،
142
00:09:53,269 –> 00:09:58,910
بنابراین من به دنبال چهار شش و چهار هستم،
143
00:09:58,910 –> 00:10:01,699
خوب، حالا بیایید این را بگوییم مجموعهای است که من
144
00:10:01,699 –> 00:10:03,889
از همه اعداد مجموعهای دارم، بنابراین به دنبال
145
00:10:03,889 –> 00:10:06,529
شش و چهار میگردم، بنابراین حالا فرض کنید
146
00:10:06,529 –> 00:10:10,579
در این مورد چهار را پیدا کردهام، سپس باید به
147
00:10:10,579 –> 00:10:13,149
دنبال سه باشم و باید به راه خود ادامه دهم تا زمانی
148
00:10:13,149 –> 00:10:15,769
که طول دنبالهام را بسیار خوشحال کنم و ادامه
149
00:10:15,769 –> 00:10:17,660
دهم. سپس باید ادامه دهم
150
00:10:17,660 –> 00:10:20,060
تا زمانی که این شرایط
151
00:10:20,060 –> 00:10:24,500
کوفتهها را برگرداند و پس از آن زمانی که
152
00:10:24,500 –> 00:10:26,000
درست شد، بنابراین در حین انجام این کار، باید
153
00:10:26,000 –> 00:10:28,519
کاری کنم که تمام گرههایم از همه چیزهایی
154
00:10:28,519 –> 00:10:30,079
که میگذرم بازدید کنند، بنابراین
155
00:10:30,079 –> 00:10:31,970
اینجا در مجموعه من میتوانم اساساً
156
00:10:31,970 –> 00:10:34,250
آن را از آرایه اصلی ما حذف کنید،
157
00:10:34,250 –> 00:10:36,680
حدس میزنم که به جای آن، آن را در واقع آره بازدید میکنم
158
00:10:36,680 –> 00:10:38,360
با حذف آن،
159
00:10:38,360 –> 00:10:41,660
شما را به عنوان بازدید شده قرار می دهم و سپس در سال 99 خواهم بود، بنابراین
160
00:10:41,660 –> 00:10:43,579
فکر می کنم به دنبال 98 و 100 می
161
00:10:43,579 –> 00:10:47,000
گردم، هنگامی که صدها را پیدا کردم، به دنبال 101
162
00:10:47,000 –> 00:10:50,720
می گردم و فقط همین راه را ادامه می دهم تا
163
00:10:50,720 –> 00:10:52,420
بله را کاهش دهم.
164
00:10:52,420 –> 00:10:54,680
بله، این همان چیزی است که قطعاً کار
165
00:10:54,680 –> 00:10:58,279
می کند، فکر می کنم خوب است، گفتم شما به من بدهکار هستید آن را کدنویسی کنید
166
00:10:58,279 –> 00:11:00,800
یا بله، بیایید کد آن را بنویسیم،
167
00:11:00,800 –> 00:11:06,370
اوه من،
168
00:11:16,000 –> 00:11:22,420
اگر واقعاً کمک می کنم به آن گوش دهید
169
00:11:22,540 –> 00:11:26,150
و چگونه آن واقعاً آماده نیست، بنابراین
170
00:11:26,150 –> 00:11:32,420
ما هنوز همه چیز خواهیم بود خیس است بنابراین در ابتدا
171
00:11:32,420 –> 00:11:34,030
همه عناصر یا
172
00:11:34,030 –> 00:11:40,280
false در حال حاضر هستند، بنابراین اگر
173
00:11:40,280 –> 00:11:45,170
مجموعه معمولی اولیه
174
00:11:45,170 –> 00:11:46,760
را تبدیل کنم
175
00:11:46,760 –> 00:11:49,700
176
00:11:49,700 –> 00:11:52,310
اشکالی ندارد یا امممممممممممممممممممممممممممممممم حالا میگویم اگر میتواند
177
00:11:52,310 –> 00:11:54,290
آرایه اصلی را تغییر دهم یا باید
178
00:11:54,290 –> 00:11:56,120
آن را در مجموعهای جدید کپی کنم، در عوض
179
00:11:56,120 –> 00:11:59,120
سؤال من چیست، آیا اشکالی ندارد اگر
180
00:11:59,120 –> 00:12:00,920
آرایه اصلی را اصلاح کنم اگر آرایه اصلی را
181
00:12:00,920 –> 00:12:03,800
درست کنم، سؤال من برای شماست متأسفانه
182
00:12:03,800 –> 00:12:06,800
اوه شما میپرسید چرا
183
00:12:06,800 –> 00:12:09,200
آرایه اصلی انجام نمیشود، زیرا من میخواهم
184
00:12:09,200 –> 00:12:11,390
زمان جستجوی ثابتی داشته باشد، بنابراین میخواهم آن را
185
00:12:11,390 –> 00:12:15,290
مجموعهای تنظیم کند ht بنابراین میتوانید
186
00:12:15,290 –> 00:12:17,240
بدون تغییر آرایه یک جستجو درست کنید، بله،
187
00:12:17,240 –> 00:12:18,650
خدای من، سؤال من این بود که آیا این موضوع
188
00:12:18,650 –> 00:12:19,580
خوب است،
189
00:12:19,580 –> 00:12:21,230
زیرا فکر کردم دعوت از شما فقط میتوانید
190
00:12:21,230 –> 00:12:22,760
آن را به عنوان یک مجموعه روی a یا چیزی انجام دهید
191
00:12:22,760 –> 00:12:25,550
تا آن را به یک مجموعه تبدیل کنید، بنابراین من. فقط
192
00:12:25,550 –> 00:12:28,310
یک مجموعه جدید ایجاد می کنم، اوه نه، منظورم این است که بله، شما می توانید
193
00:12:28,310 –> 00:12:30,580
این کار را در اینجا انجام دهید، می توانید این کار را انجام دهید.
194
00:12:30,580 –> 00:12:34,370
195
00:12:34,370 –> 00:12:37,750
196
00:12:38,030 –> 00:12:44,870
197
00:12:44,870 –> 00:12:48,850
من باید از ظرافت خودم نگاه
198
00:12:55,950 –> 00:13:02,950
کنم تا همه ما به دنبال آن باشیم که عالی است
199
00:13:02,950 –> 00:13:06,520
یک توصیه انتقادی که فقط از آن گرفته شده است من
200
00:13:06,520 –> 00:13:17,830
درست خواهم بود، اما همه اینها اتفاق می افتد اگر
201
00:13:17,830 –> 00:13:23,500
کافی است اگر فریاد بزنم اکنون می توانم سعی کنم
202
00:13:23,500 –> 00:13:36,490
به دنبال منهای منهای 1 من بگردم. 1 بنابراین اگر چنین است، من
203
00:13:36,490 –> 00:13:53,010
هم باید یک لنز داشته باشم، پس حالا اگر
204
00:13:53,010 –> 00:14:13,420
عنصر نارنجی زیبا s 1 است و باید به دنبال آن باشم،
205
00:14:13,420 –> 00:14:17,260
پس پس از ادامه این
206
00:14:17,260 –> 00:14:29,400
روند، به این معنی است که شهر را انجام خواهم داد
207
00:14:30,540 –> 00:14:36,240
و این یک خطای کوچک مانند این است.
208
00:14:40,650 –> 00:14:45,510
و سپس به
209
00:14:48,870 –> 00:14:55,230
سمت چپ ادامه میدهم و تیک آن
210
00:14:55,230 –> 00:14:58,060
را برداریم، بنابراین یک پیانو جستجوی تکی انجام میدهیم،
211
00:14:58,060 –> 00:15:00,160
مانند آن که یک ch را انجام میدهد.
212
00:15:00,160 –> 00:15:06,820
کافی است من باید بررسی کنم که آیا من
213
00:15:06,820 –> 00:15:08,380
برای هر دو به علاوه یک و منهای یک بررسی می
214
00:15:08,380 –> 00:15:09,280
کنم اگر این همان چیزی است که شما می پرسید
215
00:15:09,280 –> 00:15:10,900
خوب است، اما آنچه من می گویم
216
00:15:10,900 –> 00:15:13,090
برای هر عنصری است که فکر می کردم
217
00:15:13,090 –> 00:15:14,830
توافق کرده ایم که انجام دهیم
218
00:15:14,830 –> 00:15:17,200
جستجوی جامع ما باید آره من را
219
00:15:17,200 –> 00:15:19,390
به روز کنیم تا شناسه های متقاضی خود را به روز کنم.
220
00:15:19,390 –> 00:15:20,650
221
00:15:20,650 –> 00:15:22,480
222
00:15:22,480 –> 00:15:24,420
223
00:15:24,420 –> 00:15:26,740
224
00:15:26,740 –> 00:15:29,770
در نظر دارید که من به داشتن
225
00:15:29,770 –> 00:15:32,520
ساختار بتا دیگری برای مثال یک
226
00:15:32,520 –> 00:15:35,650
پشته یا مکعب فکر میکردم و میتوانم آن را در آن قرار دهم تا
227
00:15:35,650 –> 00:15:37,420
مانند یک DFS در صف قرار دهم.
228
00:15:37,420 –> 00:15:42,190
229
00:15:42,190 –> 00:15:43,690
230
00:15:43,690 –> 00:15:45,490
درست است و شما آرایه بازدید شده خود را درست علامت گذاری می کنید،
231
00:15:45,490 –> 00:15:47,620
همچنین نمی دانم
232
00:15:47,620 –> 00:15:49,150
که چرا به یک ساختار داده متفاوت
233
00:15:49,150 –> 00:15:50,670
نیاز دارید، آنچه شما نیاز دارید این است که اساساً به
234
00:15:50,670 –> 00:15:52,960
دنبال عناصر دیگر بگردید، بنابراین
235
00:15:52,960 –> 00:15:55,540
اساساً آنچه من می گویم این است که
236
00:15:55,540 –> 00:15:58,330
اطلاعات ما توسط