Philocode – Telegram
یه هفته کرونا گرفتم، 2 کیلو وزن کم کردم! :(
😢4
#
##
###
####
#####
####
###
##
#

یه کد بنویسید (پیش خودتون، لازم نیست کامنتش کنید) که این شکل رو توی خروجی بفرسته. شاید برای خیلی‌ها آسون باشه، اما اگه کسی الگوریتم کار نکرده باشه، مسئلۀ خوبیه که فکرش رو به کار بگیره. اگه سخت بود، اولش نصف مثلث رو انجام بدید، بعد نصف پایین.
🤔1
Philocode
یه هفته کرونا گرفتم، 2 کیلو وزن کم کردم! :(
خُب خوشبختانه 1.5 کیلوش تا امروز برگشت. 😂💪
👍1🔥1
دوست دوران دانشگاهمو بعد از چند سال توی اینستاگرام پیدا کردم.
بهش میگم چیکارا می‌کنی؟ میگه تریدر می‌کنم.
این چه شغلیه دیگه...
😁2
Philocode
# ## ### #### ##### #### ### ## # یه کد بنویسید (پیش خودتون، لازم نیست کامنتش کنید) که این شکل رو توی خروجی بفرسته. شاید برای خیلی‌ها آسون باشه، اما اگه کسی الگوریتم کار نکرده باشه، مسئلۀ خوبیه که فکرش رو به کار بگیره. اگه سخت بود، اولش نصف مثلث رو انجام…
چیزی که راجع به این سوال مهمه، اینه که ببینیم چه پترنی توی این شکل وجود داره:
1, 2, 3, 4, 5, 4, 3, 2, 1
و می‌تونیم جاهای خالی رو هم ملاحظه کنیم:
4, 3, 2, 1, 0, 1, 2, 3, 4

انگار اینطوریه:
5 - (5 - 1), 5 - (5 - 2), 5 - (5 - 3), ...
وقتی که این دنباله جلوتر بره، حاصل تفریق منفی میشه که با قدر مطلق میشه کاری کرد که این اتفاق نیفته.

حالا 🧠تون رو به کار بگیرید و حلش کنید. 🦾
👍1🔥1
این یکی نوبره. 😂
😁2
Philocode
#books
آبجکت باید مجموعه‌ای معنادار از داده‌ها و کدی باشد که کارهایی را روی آن داده‌ها انجام می‌دهد؛ نه کیسه‌ای برای ذخیره‌کردن چیزهای باقی‌مانده (و متفرقه)!
🔥3
Philocode
#books
با توابع بازگشتی چقدر آشنا هستید؟

تابع بازگشتی، تابعیه که خودش رو صدا می‌زنه. به احتمال کم (اگه دانشگاه نرفته باشید و تا حالا دربارۀ الگوریتم چیزی نخوندید) براتون مسخره میاد، چرا باید یه فانکشن، خودش رو صدا بزنه؟!

نویسندۀ کتاب Think like a programmer می‌گه که این نوع برنامه‌نویسی کلاً فرق داره؛ وقتی با یه loop سر و کله می‌زنید، می‌دونید که با یه دنباله طرفید ولی وقتی با recursion طرف باشید، برای ذهنتون سخته که مسئله رو اینطوری ببینه که یه فانکشن از طریق صدازدن خودش حلش کنه.

ساده‌ترین مثال (مثالِ کتاب)، factorial ـــه:
function factorial (number) {
if (number === 1) {
return 1
}

return number * 👉factorial(number - 1)
}

console.log(factorial(7)) // 5040

همین برنامه رو اگه بدون recursion می‌نوشتیم، این شکلی می‌شد:
function factorial (number) {
let result = 1

for (let i = number; i > 1; i--) {
result *= i
}

return result
}

اگه بتونم این فصل رو به خوبی قورت بدم، احتمالا یه مقاله توی dev.to داشته باشیم. ^_^
🔥6
ما از فردا کتاب Grokking Algorithms رو می‌خونیم.
دلتون بسوزه.

(پوزخند مشهور مخصوص خود را اجرا می‌کند)
😁7😢1
🔥3
Philocode
Photo
نویسنده، بحثش رو با simple search و binary search شروع کرده.
1 2 3 4 5 6 7 8 9 10 11 12
توی دنبالۀ بالا، simple search از 1 شروع می‌کنه و یکی یکی جلو میاد تا عدد 11 رو پیدا کنه. اما با binary search از 1 شروع نمی‌کنیم و همیشه از وسط می‌پرسیم؛ اگه وسط این دنباله از 11 کوچیک‌‎تر باشه، نصف اول دنباله حذف می‌شه و در غیر این صورت نصف دوم دنباله رو حذف می‌کنیم!

یعنی اگه یه دنبالۀ 240,000تایی داشته باشیم و دنبال موردی بگردیم که آخر دنباله‌ست، با simple search (که نویسنده بهش میگه stupid search) در واقع 240,000 مرحله طول می‌کشه که پیداش کنیم ولی با binary search تنها 18 مرحله نیازه!
#GA
👍5