🐍 Python & Raspberry 🐍
8.21K subscribers
1.92K photos
125 videos
623 files
1.23K links
Python- Raspberry Pi-AI-IOT
ادمین : فرهاد ناصری زاده
@farhad_naserizadeh
@farhad3412

گروه پایتون
@Python_QA
تبادل
@mmtahmasbi
کانال مرتبط
@new_mathematical
@micropython_iot
@c_micro
اینستاگرام
http://Instagram.com/python_raspberry
Download Telegram
سوال :
https://www.codewars.com/kata/54eb33e5bc1a25440d000891/train/python

جواب :
https://www.codewars.com/kata/reviews/551d6e6d5ed5abde4f000024/groups/61837282ff13ee00013c6206

خب من این سوالو الان حل کردم
واقعا سنگین بود
یخورده شاید زیاد به نظر برسه ولی کلا یه تابع بازگشتی داره کار میکنه
یعنی تابع
_decompose()
بازگشت میخوره به خودش
و
decompose()
صرفا یه Abstraction برای اولیه


سوال در حالت کلی، جواب یکتا نداره یعنی فقط یه دنباله نمیتونه جواب سوال باشه و ممکنه دنباله هایی پیدا کنیم که همچنان جواب بدن ولی پاسخ سوال نباشن (اینکه چرا پاسخ سوال نیستن رو پایین توضیح دادم) مثلا برای عدد 50

14 48
1 3 5 8 49
میتونن جواب باشن
اما یه نکته داره اونم اینکه "باید" نزدیکترین عدد مربع کامل رو پیدا کنی مثلا برای 2500 نزدیکترین عدد مربع کامل 2401 هست. " مگر اینکه " اون عدد قبلا پردازش شده باشه تو لیست output موجود باشه که در اینصورت، باید برگردیم به مرحله قبلش و...
همین کد رو راحت میتونین بخونین چیزی نداره کافیه یه عدد مثل 12 بدین بهش مرحله به مرحله trace کنین(زیاد نیست حتی با دو سه مرحله اول متوجه میشین چه اتفاقی میوفته)

یه سری اضافه کاری مثل filter و try except داره که اونارو دیگه میتونین تو همون تابع بازگشتی اوکی کنین با شرط ها که مثلا index از طول لیست ouput بیشتر نشه و اگه شد return output بشه

چرا output رو اونجوری تعریف کردم؟
دلیل خاصی نداره
فقط نخواستم هی بعدا لیست رو با لیست جمع بزنم
یعنی یجورایی اومدم رزرو کردم چند تا خونه رو، که بعدا پرش کنم
چرا تعدادش 20 تاس؟ چون حدسم از تست کیس ها این بود، بیشتر از این نمیتونه بشه و حتی از اینم کمتره فکر کنم در حد 5 6 تا باشه اخرش..
اگر بخواد عددی بده که دنباله بیشتر از 20 30 تا بشه باید بریم سراغ while for برای همین کد وارز اعداد کوچیکی رو میده چون در غیر اینصورت stack سیستم عامل رو پر میکنه و ارور میده...

این تغییراتی که گفتم بدین خیلی بهینه میشه
بهینه تر ازینم که میتونین تبدیل به حلقه ش کنین و تابع بازگشتی نزنین

الگوریتمش به این شکله که مثلا ما برای عدد 50 داریم
50^2 = 49^2 + 99
99 = 9^2 + 18
18 = 4^2 + 2
2= 1^2 + 1
1= 1^2+0
اینجا عدد 1 قبلا تو لیست اضافه شده
برای همین یه step برمیگرده عقب و
18=4^2+2
رو پردازش میکنه از 4 یدونه کم میکنه
18=3^2 + 9
9 = 3‌^2
بازم 3 تو لیست تکراری میشه
پس دوباره برمیگرده به مرحله قبلیش یعنی مرحله مربوط به عدد 18، مشکل داره پس میریم سراغ 99 و یک واحد کم میکنیم از اونی که قبلا داشته (یعنی از 9 یدونه کم میکنیم)
99= 8^2+35
این دیگه جواب میده و دنباله چاپ میشه



ارسال شده توسط: @awakeforaflip

@raspberry_python


شمام اگه سوال خفنی حل کردید یا پروژه خفنی انجام دادید میتونید با بقیه دوستاتون تو کانال به اشتراک بزارید
میدونی کجای کدت خیلی داغه؟ 😏

همون طور ک میدونید پایتون یک زبان سطح بالاست و ممکنه یه کار به نطر ساده باعث ایجاد ی سری محاسبات خیییلی زیادی بشه و ممکنه خیلی اوقات نتونیم اینارو پیدا کنیم

برای کمک براتون یه کتابخونه‌ای هست به اسم pyheat که نشون کجای کدتون داغتره(بیشتر زمان میبره)

میتونید پیج گیت هابش رو اینجا بخونید.
و توسط پیپ هم میتونید نصبش کنید.

@raspberry_python
5_6077802727306429300.pdf
84.2 KB
Tips on Python list

@raspberry_python
5_6077802727306429302.pdf
67.9 KB
Tips on Python Classes

@raspberry_python
5_6077802727306429301.pdf
71.3 KB
NumPy methods

@raspberry_python
دوستان و عزیران گرامی درسته گفتن باید زیاد ایمیل بزنید ولی دیگ نه اینجوری
یکم شلخته درو کنید برا خوشه چین ها هم چیزی بمونه
ابرو نمونده دیگه برامون :(
@raspberry_python
سلام، من محمد هستم، دانشجوی رشته هوش مصنوعی. رشته ما پر از چیزای جالب و مفاهیم باحاله و این روزا خیلی ها دلشون میخواد بیشتر و بیشتر در موردش بدونن.
من یه کانال یوتیوب درست کردم که توش ویدیو هایی در زمینه رشته خودم میذارم. بیشتر مقاله های جالبی که می بینم رو توضیح میدم، اما گاهی هم به مفاهیم اساسی و الگوریتم های مهم ماشین لرنینگ می پردازم. اینم لینک کانالم هست که اگه دلتون خواست، ممنون میشم subscribe کنید و ویدیو هامو دنبال کنید. 🙏😁
https://youtube.com/channel/UC34Gj0-vHuBiTNEYlP7wczg
ممدقلی رو مسئول کردن بره از طبیعت دنبال m شئ مختلف بگرده و از هر نمونه n تا پیدا کنه و اونارو اندازه گیری کنه اما از اونجا ک این ممدقلی خیلی گیجه بعضی اعداد رو منفی ثبت میکنه حالا شما ب عنوان ی دوست کمکش کنید و اعداد منفی رو از خروجی ممدقلی حذف کنید
ممدقلی بهتون ی ماتریس از m سطر و n ستون میده
از اونجا ک نمیخواید ابروی ممد بره باید جوری حذف کنید ک خروجی حاصلتون بازم ماتریس بشه
پس اولش بیاید حداقل تعداد اعداد مثبت تو هر سطر رو پیدا کنید و مثلا اسمشو بزارید p
p<n
و در اخر ی ماتریس با m سطر و p ستون برگردونید
ورودی نمونه

10 11 -3 17 -4
26 -1 45 74 93
-8 24 -5 -1 19

خروجی مطلوب

10 11
26 45
24 19

بخش امتیازی:‌ سعی کنید تماما با توابع نامپای و بدون حلقه بنویسید‌:)))

@raspberry_python
🐍 Python & Raspberry 🐍
ممدقلی رو مسئول کردن بره از طبیعت دنبال m شئ مختلف بگرده و از هر نمونه n تا پیدا کنه و اونارو اندازه گیری کنه اما از اونجا ک این ممدقلی خیلی گیجه بعضی اعداد رو منفی ثبت میکنه حالا شما ب عنوان ی دوست کمکش کنید و اعداد منفی رو از خروجی ممدقلی حذف کنید ممدقلی…
از اونجا ک هیچ کس هیچ راه حلی برا این سوال راه حلی نگفته بیاید ی راهنمایی کنم
✏️اگه میخوای با نامپای بنویسید میتونید از توابع
np.diff, np.cumsum
استفاده کنید
فقط توجه کنید ک این دوتابع تقریبا(؟) برعکس هم کار میکنند .
میتونید ی حرکت ریز بزنید ک دقیقا برعکس هم کار کنن.

✏️اگر هم ک میخواید بدون نامپای بنویسید میتونید با زیپ یا فیلتر بنویسید

@raspberry_python
Python GUI Programming with Tkinter: Design and build functional and user-friendly GUI applications, 2nd Edition

کتاب جدید Tkinter
🥇🥇 2021

@RASPBERRY_PYTHON
Alan_D_Moore_Python_GUI_Programming_with_Tkinter_Design_and_build.pdf
16.8 MB
Python GUI Programming with Tkinter: Design and build functional and user-friendly GUI applications, 2nd Edition

کتاب جدید Tkinter
🥇🥇 2021

@RASPBERRY_PYTHON
Sorting Algorithms Times and Space Complexity

@raspberry_python