Forwarded from AMIRHOSΣIN
این lru دقیقا توی حافظه cache نمیره، یه map درست میکنه که اون جا ذخیره میکنه ، توی تابع هایی که تعداد بازگشتشون کم هست کاربردی هست ، مثلا تا ۵۰۰ تا بازگشت ولی بیشتر بشه مثلا ۱۰۰۰۰۰ باید استک تابع بازگشتی را دستکاری کنی تا بزاره بزرگتر بگیری ، بعد تازه این جا نمیتونی کدت را با pypy اجرا کنی باید با python اجرا کنی بعد تازه این دستکاری استک خودش باعث مموری لیمیت میشه
حافظه cache توی کامپیوتر محدود هست یه چیزی حدود ۲۰ مگ و با حدود ۵۰۰۰ تا تابع بازگشتی این مقدار پر میشه به خاطره این lru توی ram ذخیره میکنه و این که خودت پیاده سازی کنی خیلی وقت ها بهینه تر میشه
البته ما توی پایتون به دلیل hash کردن مقدار ها برای اعداد بزرگ احتمال این که توی set یا dict برای اعداد بزرگ collision اتفاق میافته و زمان پیدا کردن از o(1) به o(n) میرسه
به خاطره همین توی بعضی از تست کیس ها این قدر اعداد تکراری میدن که این شکلی نمیتونی ازشون استفاده کنی
حافظه cache توی کامپیوتر محدود هست یه چیزی حدود ۲۰ مگ و با حدود ۵۰۰۰ تا تابع بازگشتی این مقدار پر میشه به خاطره این lru توی ram ذخیره میکنه و این که خودت پیاده سازی کنی خیلی وقت ها بهینه تر میشه
البته ما توی پایتون به دلیل hash کردن مقدار ها برای اعداد بزرگ احتمال این که توی set یا dict برای اعداد بزرگ collision اتفاق میافته و زمان پیدا کردن از o(1) به o(n) میرسه
به خاطره همین توی بعضی از تست کیس ها این قدر اعداد تکراری میدن که این شکلی نمیتونی ازشون استفاده کنی
lab
این lru دقیقا توی حافظه cache نمیره، یه map درست میکنه که اون جا ذخیره میکنه ، توی تابع هایی که تعداد بازگشتشون کم هست کاربردی هست ، مثلا تا ۵۰۰ تا بازگشت ولی بیشتر بشه مثلا ۱۰۰۰۰۰ باید استک تابع بازگشتی را دستکاری کنی تا بزاره بزرگتر بگیری ، بعد تازه این…
البته که منظور از cache اون حافظه که بین رم و سی پی یو قرار گرفته نیست. فقط یک اصطلاحه که نتایج ذخیره میشه و همون کاره memoization انجام میشه.
👌1
Forwarded from Fight Club
این سواله , سوال جالبی بود داشتم حلش میکردم
هر دفعه که تلاش میکردم حلش کنم به مشکل میخوردم و این هم به خاطره ساختار زبان پایتون بوده
یه تابع dfs داشتم توش که هر دفعه فقط دو بار خودش را فراخوانی میکرد , یکم بهینش کردم که فقط 1 بار خودش را فراخوانی کنه
و میشه گفته که به صورت خطی بود در حد O(n)
اما یه مشکلی وجود داشت این بود که تابع های بازگشتی توی پایتون نهایتا 998 بار میتونه به صورت بازگشتی خودش را فراخوانه و اگر بیشتر بشه stack overflow میکنه
خوب به صورت دستی با دستور
استک مورد نیاز برای حل این سوال را بهش دادم
اما یه مشکلی بازم وجود داشت , دیگه نمیشد از pypy استفاده کنم
حالا باید از python 3.10 استفاده میکردم که سرعتش فوق العاده از pypy کمتره و با خطای time limit مواجه میشد
خوب حالا گیر افتاده بودیم بین اوور فلو کردن استک و از یه طرف هم با تایم لیمیت برخورد میکردم
به ذهنم رسید که Stack تابع بازگشتی را که توی سیستم عامل ایجاد میشه را خودم پیاده سازی کنم
و از pypy استفاده کنم که سرعت بیشتری داره
این کار را کردم و جواب داد
هر دفعه که تلاش میکردم حلش کنم به مشکل میخوردم و این هم به خاطره ساختار زبان پایتون بوده
یه تابع dfs داشتم توش که هر دفعه فقط دو بار خودش را فراخوانی میکرد , یکم بهینش کردم که فقط 1 بار خودش را فراخوانی کنه
و میشه گفته که به صورت خطی بود در حد O(n)
اما یه مشکلی وجود داشت این بود که تابع های بازگشتی توی پایتون نهایتا 998 بار میتونه به صورت بازگشتی خودش را فراخوانه و اگر بیشتر بشه stack overflow میکنه
خوب به صورت دستی با دستور
sys.setrecursionlimit(10**5)
استک مورد نیاز برای حل این سوال را بهش دادم
اما یه مشکلی بازم وجود داشت , دیگه نمیشد از pypy استفاده کنم
حالا باید از python 3.10 استفاده میکردم که سرعتش فوق العاده از pypy کمتره و با خطای time limit مواجه میشد
خوب حالا گیر افتاده بودیم بین اوور فلو کردن استک و از یه طرف هم با تایم لیمیت برخورد میکردم
به ذهنم رسید که Stack تابع بازگشتی را که توی سیستم عامل ایجاد میشه را خودم پیاده سازی کنم
و از pypy استفاده کنم که سرعت بیشتری داره
این کار را کردم و جواب داد
Forwarded from Fight Club
from collections import deque , Counter
from math import ceil, floor, log2 , sqrt ,lcm
import sys
from itertools import combinations ,permutations
import bisect
mapINT = lambda: map(int, sys.stdin.readline().strip().split())
INT = lambda: int(sys.stdin.readline().strip())
LIST = lambda : list(mapINT())
# sys.setrecursionlimit(10**5)
line = []
visit = set()
n, m = mapINT()
graph = [[] for _ in range(n+1)]
def dfs(start):
global line, graph, visit
stack = [start]
while stack:
node = stack.pop()
if len(graph[node]) == 2:
a = graph[node][1]
if a not in visit and len(graph[a]) == 2:
visit.add(a)
line.append(a)
stack.append(a)
continue
a = graph[node][0]
if a not in visit and len(graph[a]) == 2:
visit.add(a)
line.append(a)
stack.append(a)
def solve():
global graph
for _ in range(m):
v, u = mapINT()
graph[v].append(u)
graph[u].append(v)
for i in range(n+1):
if len(graph[i])!=2:
graph[i] = []
else:
graph[i] = sorted(graph[i])
cnt= 0
ans =set()
for i in range(n+1):
line.clear()
if (len(graph[i])==2 and i not in visit):
line.append(i)
visit.add(i)
dfs(i)
if len(line)>2:
if line[-1] in graph[line[0]]:
cnt+=1
print(cnt)
t = 1
# t = INT()
for i in range(t):solve()
اینم کد پایتونش
🔥3
بنظرم یسری مباحث ریاضی برا مغز مثل ورزش کردن برا ماهیچه تاثیر میزاره و هر از گاهی کنجکاوی کردن راجبش باحاله.
تو ریاضی به عددی که مجموع مقسوم علیه های مثبت واقعیش (بجز خودش) برابر خودش باشن میگیم عدد کامل (perfect number)
حالا یسری فکت جالب راجبش هست و اون اینکه همه اعداد کامل شناخته شده زوج ان و ما هنوز نمیدونم عدد فرد کاملی وجود داره یا نه
حالا یک رابطه هم با اعداد اول دارن و اینطوریه که
مثلن اگه p برابر با 2 باشه عبارت اول عدد 3 رو بهمون میده که فرده و عبارت دوم عدد 6 رو میده که کامله.
راجب فرد نبودن اعداد کامل، این نکته هم جالبه که تا عددی حدود 10 به توان 1500 رو ریاضی دان ها بررسی کردن
تو ریاضی به عددی که مجموع مقسوم علیه های مثبت واقعیش (بجز خودش) برابر خودش باشن میگیم عدد کامل (perfect number)
مثل: 6
جمع 1, 2, 3 میشه 6
حالا یسری فکت جالب راجبش هست و اون اینکه همه اعداد کامل شناخته شده زوج ان و ما هنوز نمیدونم عدد فرد کاملی وجود داره یا نه
حالا یک رابطه هم با اعداد اول دارن و اینطوریه که
اگر (2 به توان p) منهی 1 عدد اول باشد
(2 به توان p-1) ضرب در (2 به توان p) منهی 1 عدد کامل است
مثلن اگه p برابر با 2 باشه عبارت اول عدد 3 رو بهمون میده که فرده و عبارت دوم عدد 6 رو میده که کامله.
راجب فرد نبودن اعداد کامل، این نکته هم جالبه که تا عددی حدود 10 به توان 1500 رو ریاضی دان ها بررسی کردن
❤2🔥1
lab
بنظرم یسری مباحث ریاضی برا مغز مثل ورزش کردن برا ماهیچه تاثیر میزاره و هر از گاهی کنجکاوی کردن راجبش باحاله. تو ریاضی به عددی که مجموع مقسوم علیه های مثبت واقعیش (بجز خودش) برابر خودش باشن میگیم عدد کامل (perfect number) مثل: 6 جمع 1, 2, 3 میشه 6 حالا یسری…
ورزشش اینجاست که بشینید یه عدد کامل فرد پیدا کنید🤣
🥰1🤓1
lab
بنظرم یسری مباحث ریاضی برا مغز مثل ورزش کردن برا ماهیچه تاثیر میزاره و هر از گاهی کنجکاوی کردن راجبش باحاله. تو ریاضی به عددی که مجموع مقسوم علیه های مثبت واقعیش (بجز خودش) برابر خودش باشن میگیم عدد کامل (perfect number) مثل: 6 جمع 1, 2, 3 میشه 6 حالا یسری…
یک پروژه وجود داره به اسم GIMPS مخفف
(Great Internet Mersenne Prime Search)
دنبال بزرگترین عدد اول مرسن هستن.
عدد اول مرسن عددیه که به فرم 2 به توان p منهای 1 در حالی که p هم خودش عدد اول باشه نوشته میشه.
تو این پروژه میشه مشارکت هم داشت اینطوری که نرم افزارشو اجرا میکنی و یه حجمی از محاسبات رو با سیستمت انجام میده و گویا درصورتی که اولین نفر عدد بزرگتر رو پیدا کنی جایزه هم داره.
در حال حاضر بزرگترین عدد اول مرسن اینه:
2¹³⁶²⁷⁹⁸⁴¹-1
(Great Internet Mersenne Prime Search)
دنبال بزرگترین عدد اول مرسن هستن.
عدد اول مرسن عددیه که به فرم 2 به توان p منهای 1 در حالی که p هم خودش عدد اول باشه نوشته میشه.
تو این پروژه میشه مشارکت هم داشت اینطوری که نرم افزارشو اجرا میکنی و یه حجمی از محاسبات رو با سیستمت انجام میده و گویا درصورتی که اولین نفر عدد بزرگتر رو پیدا کنی جایزه هم داره.
در حال حاضر بزرگترین عدد اول مرسن اینه:
2¹³⁶²⁷⁹⁸⁴¹-1
🤣2🤝1
RandRng
Message
داخل ادیتور vim وقتی بزنیم
فایل رو بدون ذخیره کردن میبنده.
راجب اینکه معنیش چی میتونه باشه خودمم گیجم شاید منظورش اینه هیچوقت ذخیره نکرده بیرون نرو.
:q!
فایل رو بدون ذخیره کردن میبنده.
راجب اینکه معنیش چی میتونه باشه خودمم گیجم شاید منظورش اینه هیچوقت ذخیره نکرده بیرون نرو.
RandRng
Message
دوستان اشاره کردن که "never quit" یا "هرگز دست نکش" منظورشه
البته داخل ویم میتونیم با دستور
تغیراتی که ایجاد کردیم رو ذخیره کنیم و بعد دست بکشیم.
البته داخل ویم میتونیم با دستور
:wq
تغیراتی که ایجاد کردیم رو ذخیره کنیم و بعد دست بکشیم.
❤1👍1
Forwarded from L
ی گوشی روت میکنیم
بهش اسکریپت میدیم که وصل شه به سرور
حالا چرا؟ دیگه فیلترینگ نداریم
از سرعت سرور استفاده میکنیم
و از حجمش دیگه پول بسته نمیدیم
حالا چی جور کار میکنه؟ وای فای باید وصل شه به گوشی روت شده از گوشی روت شده که مستقیم وصله به سرور از اینا استفاده کنیم
حالا مشکل کجاس؟ چی جوری ی کاری کنیم که انگار خود سرور داره اونکارو انجام میده نه ی گوشی یا ی مودم
انگار خود سرور داره اینستا نگاه میکنه
بهش اسکریپت میدیم که وصل شه به سرور
حالا چرا؟ دیگه فیلترینگ نداریم
از سرعت سرور استفاده میکنیم
و از حجمش دیگه پول بسته نمیدیم
حالا چی جور کار میکنه؟ وای فای باید وصل شه به گوشی روت شده از گوشی روت شده که مستقیم وصله به سرور از اینا استفاده کنیم
حالا مشکل کجاس؟ چی جوری ی کاری کنیم که انگار خود سرور داره اونکارو انجام میده نه ی گوشی یا ی مودم
انگار خود سرور داره اینستا نگاه میکنه