mhdp23 پابلیک سیو مسیج
آقا متین از خوبای کانتستهای الگوریتمی برنامه نویسی و همچنین انجمن علمی آزاد نجف آباد
شات آوت بسیار
شات آوت بسیار
آقا محمد حسین خیلی بزرگوارن
ایشون دبیر انجمن علمی کامپیوتر دانشگاه خلیج فارس هستن و توی مسابقه شریف مقام آور بودن.
https://news.1rj.ru/str/Computer_Jam
ایشون دبیر انجمن علمی کامپیوتر دانشگاه خلیج فارس هستن و توی مسابقه شریف مقام آور بودن.
https://news.1rj.ru/str/Computer_Jam
Telegram
انجمن علمی کامپیوتر جم
کانال اطلاع رسانی انجمن علمی مهندسی کامپیوتر دانشگاه خلیج فارس - دانشکده فنی و مهندسی جم
آیدی جهت ارتباط با دبیر انجمن:
@mohohdp3000
آیدی جهت ارتباط با دبیر انجمن:
@mohohdp3000
❤2🔥2
Forwarded from Linuxor ?
Media is too big
VIEW IN TELEGRAM
چطوری میشه بعد از کال یه فانکشن بهش دیتا بفرستیم؟ و چطور میشه یه فانکشن نوشت که یه فایل سنگین رو بخونه ولی منابع آنچنانی مصرف نشه؟ توی ویدیو دستور yield توی زبان های برنامه نویسی رو معرفی کردم
@Linuxor
@Linuxor
👌3
Forwarded from FarzanehJahanmanesh
سلام رفقا!
یه پروژه خیلی باحال داریم که قراره با کمک شما انجامش بدیم.
کافیه فقط ۱۲ تا سؤال ساده رو توی نظرسنجی جواب بدید،
تا هم به ما کلی کمک کرده باشید،
هم شانس برنده شدن ۲ میلیون تومن جایزه نقدی رو داشته باشید!
هم کمک، هم جایزه، هم حال خوب!🥰
چی از این بهتر؟
بزن بریم — منتظرتیم!
https://survey.porsline.ir/s/Xq15I5lR
یه پروژه خیلی باحال داریم که قراره با کمک شما انجامش بدیم.
کافیه فقط ۱۲ تا سؤال ساده رو توی نظرسنجی جواب بدید،
تا هم به ما کلی کمک کرده باشید،
هم شانس برنده شدن ۲ میلیون تومن جایزه نقدی رو داشته باشید!
هم کمک، هم جایزه، هم حال خوب!🥰
چی از این بهتر؟
بزن بریم — منتظرتیم!
https://survey.porsline.ir/s/Xq15I5lR
Porsline
تحقیق و نظرسنجی
با پُرسلاین به راحتی پرسشنامه خود را طراحی و ارسال کنید و با گزارشهای لحظهای آن به سرعت تصمیم بگیرید.
lab
You might break - and thats okay (eng).pdf
من هنوز کامل نخوندمش ولی دارم منظم پیش میبرمش یه نکته جالب دیگه هم که توش اشاره کرد و میخام از این به بعد به کار بگیرمش این بود که به ریت مسئله اصن نگاه نکن چونکه وقتی میبینی ریت یک مسئله بالاست انتظار یچیز خیلی سخت داری و نمیتونی عادی روی مسئله فک کنی و ممکنه مسئله خیلی خیلی ساده تر باشه
👍2🔥1
Forwarded from UI ACM chapter
🎈 جدول امتیازات UICPC 2025 Round #2
🗓 ۴ اردیبهشت ماه
🔗 پاسخ سوالات و اطلاعات مسابقه
🎯 سوالات مسابقه به همراه جاج
➖➖با انجمن ACM همراه باشید➖➖
[تلگرام] | [اینستاگرام] | [لینکدین]
🗓 ۴ اردیبهشت ماه
🔗 پاسخ سوالات و اطلاعات مسابقه
🎯 سوالات مسابقه به همراه جاج
➖➖با انجمن ACM همراه باشید➖➖
[تلگرام] | [اینستاگرام] | [لینکدین]
🏆10❤1
UI ACM chapter
Photo
معمولن تاپ تن بودن تو اینجور مسابقات خفن به حساب میاد.
بعد امروز سر مسابقه یکی از تیما داد میزد تاپ تن شدیم. (مسابقه با ۹ تا تیم برگزار شد😂)
بعد امروز سر مسابقه یکی از تیما داد میزد تاپ تن شدیم. (مسابقه با ۹ تا تیم برگزار شد😂)
🤣11❤1🔥1
برا مسائلی که توابع بازگشتی و dp نیازه، برا سریعتر کردن روند محاسبه، تکنیکی به کار میره به اسم memoization حرفش اینه که اگه قراره مقداری رو دوباره بهش نیاز داشته باشی یجا ذخیرش کن که نیاز نباشه دوباره حسابش کنی.
مثال بارزش حساب کردن سری فیبوناچی هست.
یک دیکشنری میسازیم و هربار چک میکنیم اگه مقداری که دنبالشیم داخلش بود همونو برمیداریمو دیگه حسابش نمیکنم ولی اگه نبود حسابش میکنیم و نهایتن ذخیرش میکنیم.
پایتون یک کتابخونه ای داره که یک دکوریتور داخلشه به اسم cache و اگه بطور مثال رو تابع فیبوناچی صداش بزنیم خودش کار ذخیره سازی رو انجام میده.
حالا یه مشکل دیگه که پیش میاد بخصوص تو مسابقات اینه که مامعمولن یه حجم محدودی حافظه داریم و اینکه همه چیزو هم ذخیره کنیم خیلی بهینه نیست.
ولی پایتون یه قابلیت دیگم داره به اسم Least Recently Used اینو میشه محدودش کرد که یک تعدادی از آخرین مقادیری که استفاده شدن رو نگه داره فقط.
مثال بارزش حساب کردن سری فیبوناچی هست.
def fib(n, memo={}):
if n in memo:
return memo[n]
if n < 2:
memo[n] = n
else:
memo[n] = fib(n-1, memo) + fib(n-2, memo)
return memo[n]
print(fib(10))یک دیکشنری میسازیم و هربار چک میکنیم اگه مقداری که دنبالشیم داخلش بود همونو برمیداریمو دیگه حسابش نمیکنم ولی اگه نبود حسابش میکنیم و نهایتن ذخیرش میکنیم.
پایتون یک کتابخونه ای داره که یک دکوریتور داخلشه به اسم cache و اگه بطور مثال رو تابع فیبوناچی صداش بزنیم خودش کار ذخیره سازی رو انجام میده.
from functools import cache
@cache
def fib(n):
if n < 2:
return n
return fib(n-1) + fib(n-2)
print(fib(10))
حالا یه مشکل دیگه که پیش میاد بخصوص تو مسابقات اینه که ما
ولی پایتون یه قابلیت دیگم داره به اسم Least Recently Used اینو میشه محدودش کرد که یک تعدادی از آخرین مقادیری که استفاده شدن رو نگه داره فقط.
from functools import lru_cache
@lru_cache(maxsize=100)
def fib(n):
if n < 2:
return n
return fib(n-1) + fib(n-2)
print(fib(10))
❤2👍1
lab
برا مسائلی که توابع بازگشتی و dp نیازه، برا سریعتر کردن روند محاسبه، تکنیکی به کار میره به اسم memoization حرفش اینه که اگه قراره مقداری رو دوباره بهش نیاز داشته باشی یجا ذخیرش کن که نیاز نباشه دوباره حسابش کنی. مثال بارزش حساب کردن سری فیبوناچی هست. def fib(n…
ما میتونیم از بالا به پایین به مسئله نگاه کنیم که بهش میگن Top-Down Approach.
نمونه کد اول پست بالایی میشه. که البته داخل کد تکنیک memoization هم استفاده شده.
ولی میتونیم از پایین به بالا هم به مسئله نگاه کنیم که بهش میگن Bottom-Up Approach.
حالا به جا اینکه بگیم مثلن fib(5) نیاز داره به مقادیر fib(4) و fib(3) میگیم که اگه fib(4) و fib(3) رو باهم جمع کنیم به fib(5) میرسیم. باهمین ایده از دو مقدار اولی که از سری فیبوناچی میدونیم، شروع میکنیم و تا اون مقداری که نیاز داریم حساب میکنیم.
مزیتش اینه که دیگه خبری از تابع بازگشتی نیست.
نمونه کد اول پست بالایی میشه. که البته داخل کد تکنیک memoization هم استفاده شده.
ولی میتونیم از پایین به بالا هم به مسئله نگاه کنیم که بهش میگن Bottom-Up Approach.
حالا به جا اینکه بگیم مثلن fib(5) نیاز داره به مقادیر fib(4) و fib(3) میگیم که اگه fib(4) و fib(3) رو باهم جمع کنیم به fib(5) میرسیم. باهمین ایده از دو مقدار اولی که از سری فیبوناچی میدونیم، شروع میکنیم و تا اون مقداری که نیاز داریم حساب میکنیم.
def fib(n):
if n <= 1:
return n
dp = [0] * (n+1)
dp[1] = 1
for i in range(2, n+1):
dp[i] = dp[i-1] + dp[i-2]
return dp[n]
مزیتش اینه که دیگه خبری از تابع بازگشتی نیست.
👍1
lab
ما میتونیم از بالا به پایین به مسئله نگاه کنیم که بهش میگن Top-Down Approach. نمونه کد اول پست بالایی میشه. که البته داخل کد تکنیک memoization هم استفاده شده. ولی میتونیم از پایین به بالا هم به مسئله نگاه کنیم که بهش میگن Bottom-Up Approach. حالا به جا اینکه…
گاهی برای حل بعضی مسائل مجبوریم همه حالتهای ممکن رو بررسی کنیم. این دقیقاً کاریه که الگوریتم backtracking انجام میده. ولی خب، همه حالتها رو بررسی کردن معمولاً به صرفه نیست، برای همین یه تکنیک خیلی مهم به اسم pruning داریم (هرس کردن حالتهای غیرضروری).
مثال معروفش حل کردن مسئله n-queens هست:
توی این کد، ما وقتی داریم برای ردیف جدید ملکهای میذاریم، فقط ستونهایی رو امتحان میکنیم که با قبلیا تداخلی ندارن. این همون pruning ـه. یعنی یه سری حالتها رو اصلاً نمیذاریم وارد مسیر بشن.
این تکنیک تو خیلی از مسائل ترکیبیاتی و گرافی میتونه سرعت الگوریتم رو از نمایی به قابلحل برسونه.
مثال معروفش حل کردن مسئله n-queens هست:
def solve(n):
result = []
board = []
def is_safe(row, col):
for r, c in enumerate(board):
if c == col or abs(row - r) == abs(col - c):
return False
return True
def backtrack(row):
if row == n:
result.append(board[:])
return
for col in range(n):
if is_safe(row, col): # pruning
board.append(col)
backtrack(row + 1)
board.pop()
backtrack(0)
return result
print(solve(4))
توی این کد، ما وقتی داریم برای ردیف جدید ملکهای میذاریم، فقط ستونهایی رو امتحان میکنیم که با قبلیا تداخلی ندارن. این همون pruning ـه. یعنی یه سری حالتها رو اصلاً نمیذاریم وارد مسیر بشن.
این تکنیک تو خیلی از مسائل ترکیبیاتی و گرافی میتونه سرعت الگوریتم رو از نمایی به قابلحل برسونه.
👍2
Forwarded from نوشتههای ترمینالی
چرا برنامهنویس ها بسیار دچار فرسودگی شغلی میشن؟ (burnout)
یکم طولانیه ولی ویدیوی خیلی جالبی بود.
https://youtu.be/XW-02QiiHDM?si=5YiqqH-iN-nhWc7U
یکم طولانیه ولی ویدیوی خیلی جالبی بود.
https://youtu.be/XW-02QiiHDM?si=5YiqqH-iN-nhWc7U
YouTube
Why Software Devs Keep Burning Out
Our coaches can help you take real steps toward getting your life on track. Learn more: https://bit.ly/3GjDVdy
▼ Timestamps ▼
────────────
00:00 - Introduction
01:13 - Set up to fail
05:35 - Why devs burn out
07:47 - Remote Work
09:15 - Your colleagues…
▼ Timestamps ▼
────────────
00:00 - Introduction
01:13 - Set up to fail
05:35 - Why devs burn out
07:47 - Remote Work
09:15 - Your colleagues…
❤1