دسته بندی پستها با هشتگ:
#نکته_لینوکس
#ابزار_لینوکس
#رایس
#نکته_ویندوز
#ابزار_ویندوز
#میم
#فان
#گوناگون
#متفرقه_لینوکس
#متفرقه_ویندوز
#پایتون
#معرفی
#خبر
#سخن_هیکته
#نوستالژی
#مهندسی_نرم_افزار
#شبکه
#والپیپر
#زیبایی
#انیمه
#کد_بزنیم
#الگوریتم
#جاوااسکریپت
#کلین_کد
#امنیت
#فلاتر
#کوئیز
#سیپلاسپلاس
#راست
#علوم_کامپیوتر
#کتاب
#سی
#هوش_مصنوعی
#گیت
#سیب
#دواپس
[این لیست به تدریج کامل میشود.]
#نکته_لینوکس
#ابزار_لینوکس
#رایس
#نکته_ویندوز
#ابزار_ویندوز
#میم
#فان
#گوناگون
#متفرقه_لینوکس
#متفرقه_ویندوز
#پایتون
#معرفی
#خبر
#سخن_هیکته
#نوستالژی
#مهندسی_نرم_افزار
#شبکه
#والپیپر
#زیبایی
#انیمه
#کد_بزنیم
#الگوریتم
#جاوااسکریپت
#کلین_کد
#امنیت
#فلاتر
#کوئیز
#سیپلاسپلاس
#راست
#علوم_کامپیوتر
#کتاب
#سی
#هوش_مصنوعی
#گیت
#سیب
#دواپس
[این لیست به تدریج کامل میشود.]
👍9❤1
#کد_بزنیم
اگه ما تمام اعداد طبیعی کمتر از 10 که مضرب 3 یا 5 هستن رو در نظر بگیریم:
[3, 5, 6, 9]
مجموعشون 23 میشه.
حالا اگه بخوایم کدی بنویسیم که مجموع مضرب های m یا n که کمتر از t هستن رو پیدا کنه؛ با این شرایط که کد ما
الف: حداکثر برای t برابر با عدد بزرگ 10 به توان 1 میلیون
ب: حداکثر برای t برابر با عدد 1 میلیارد
هم بخوبی کار کنه؛ چطور مینویسیمش؟ :)))
از هر زبان برنامهنویسیای میتونید استفاده کنید. 👨💻
کدهاتون رو توی کامنت بفرستید.👇
[اگه نتونستید حالت الف که سخت تره رو بنویسید برای حالت ب تلاش کنید.]
خب دیگه... بسم الله
🚁 Hicte Blog
اگه ما تمام اعداد طبیعی کمتر از 10 که مضرب 3 یا 5 هستن رو در نظر بگیریم:
[3, 5, 6, 9]
مجموعشون 23 میشه.
حالا اگه بخوایم کدی بنویسیم که مجموع مضرب های m یا n که کمتر از t هستن رو پیدا کنه؛ با این شرایط که کد ما
الف: حداکثر برای t برابر با عدد بزرگ 10 به توان 1 میلیون
ب: حداکثر برای t برابر با عدد 1 میلیارد
هم بخوبی کار کنه؛ چطور مینویسیمش؟ :)))
از هر زبان برنامهنویسیای میتونید استفاده کنید. 👨💻
کدهاتون رو توی کامنت بفرستید.👇
[اگه نتونستید حالت الف که سخت تره رو بنویسید برای حالت ب تلاش کنید.]
خب دیگه... بسم الله
🚁 Hicte Blog
👍7🤯1
HICTE Blog
#کد_بزنیم اگه ما تمام اعداد طبیعی کمتر از 10 که مضرب 3 یا 5 هستن رو در نظر بگیریم: [3, 5, 6, 9] مجموعشون 23 میشه. حالا اگه بخوایم کدی بنویسیم که مجموع مضرب های m یا n که کمتر از t هستن رو پیدا کنه؛ با این شرایط که کد ما الف: حداکثر برای t برابر با عدد بزرگ…
این کدی هست که برای حالت ب نوشتم:
🚁 Hicte Blog
# Refrence to arithmetic progression:
# https://en.wikipedia.org/wiki/Arithmetic_progression
def APSum(first, number, difference):
last = first + (number - 1) * difference
return number * (first + last) // 2
def NMultipliers(bound, x):
return bound // x if bound % x else bound // x - 1
m = 3
n = 5
t = 1000_000_000
result = (
APSum(m, NMultipliers(t, m), m)
+ APSum(n, NMultipliers(t, n), n)
- APSum(m * n, NMultipliers(t, m * n), m * n)
)
print(result)
🚁 Hicte Blog
👌2👍1🔥1
HICTE Blog
#کد_بزنیم اگه ما تمام اعداد طبیعی کمتر از 10 که مضرب 3 یا 5 هستن رو در نظر بگیریم: [3, 5, 6, 9] مجموعشون 23 میشه. حالا اگه بخوایم کدی بنویسیم که مجموع مضرب های m یا n که کمتر از t هستن رو پیدا کنه؛ با این شرایط که کد ما الف: حداکثر برای t برابر با عدد بزرگ…
#پایتون
برای اعداد بزرگتر مثل حالت الف هم تو پایتون میتونین محدودیت integer string conversion length رو بردارین. ولی خب منطقا باید الگوریتم بهینهای داشته باشین تا رسیدن به جواب خیلی طول نکشه.
t.me/HicteBlog/752
که یه عدد 2 میلیون رقمی هست و کد بالا حدودا یک دقیقه و بیست ثانیه رو سیستم من طول کشید تا به جواب برسه.
🚁 Hicte Blog
برای اعداد بزرگتر مثل حالت الف هم تو پایتون میتونین محدودیت integer string conversion length رو بردارین. ولی خب منطقا باید الگوریتم بهینهای داشته باشین تا رسیدن به جواب خیلی طول نکشه.
import sysجواب برای m برابر 3 و n برابر 5 و t برابر با 10 به توان 1 میلیون میشه:
# https://docs.python.org/3/library/stdtypes.html#integer-string-conversion-length-limitation
sys.set_int_max_str_digits(0)
# Refrence to arithmetic progression:
# https://en.wikipedia.org/wiki/Arithmetic_progressiony
def APSum(first, number, difference):
last = first + (number - 1) * difference
return number * (first + last) // 2
def NMultipliers(bound, x):
return bound // x if bound % x else bound // x - 1
m = 3
n = 5
t = 10**1000_000
result = (
APSum(m, NMultipliers(t, m), m)
+ APSum(n, NMultipliers(t, n), n)
- APSum(m * n, NMultipliers(t, m * n), m * n)
)
print(result)
t.me/HicteBlog/752
که یه عدد 2 میلیون رقمی هست و کد بالا حدودا یک دقیقه و بیست ثانیه رو سیستم من طول کشید تا به جواب برسه.
🚁 Hicte Blog
👍2🔥2⚡1
#ابزار_لینوکس
اگه میخواین تعداد کلمات/خطوط/کاراکترهای یه فایل متنی رو بشمارین یا تعداد بایتهای یه فایل رو [مثلا برای فهمیدن حجمش] میتونین از 🚾 استفاده کنین.
مثلا تو پست قبلی برای فهمیدن تعداد ارقام عدد خروجی کدم از همین ابزار استفاده کردم:
خروجیای که کدم پرینت میکنه رو pipe کردم و به عنوان ورودی به wc دادم و آپشن -m هم مشخص میکنه فقط تعداد کاراکترها رو برامون بشماره.
[دقت کنین توی شمارش کاراکترها، کاراکتر new line رو هم حساب میکنه.]
چندتا از آپشنهای مهم:
این ابزار جزو GNU Core Utilities هست.
اطلاعات بیشتر ۱
اطلاعات بیشتر ۲
🚁 Hicte Blog
اگه میخواین تعداد کلمات/خطوط/کاراکترهای یه فایل متنی رو بشمارین یا تعداد بایتهای یه فایل رو [مثلا برای فهمیدن حجمش] میتونین از 🚾 استفاده کنین.
مثلا تو پست قبلی برای فهمیدن تعداد ارقام عدد خروجی کدم از همین ابزار استفاده کردم:
python b.py | wc -mخروجیای که کدم پرینت میکنه رو pipe کردم و به عنوان ورودی به wc دادم و آپشن -m هم مشخص میکنه فقط تعداد کاراکترها رو برامون بشماره.
[دقت کنین توی شمارش کاراکترها، کاراکتر new line رو هم حساب میکنه.]
چندتا از آپشنهای مهم:
bytes: -c
chars: -m
lines: -l
words: -wاین ابزار جزو GNU Core Utilities هست.
اطلاعات بیشتر ۱
اطلاعات بیشتر ۲
🚁 Hicte Blog
👍9
HICTE Blog
#معرفی لینوکستون🐧 کریسمسی🎅 نصب در آرچ لینوکس Xsnow is a software application that creates the appearance of snow falling on the elements of the graphical user interface of a computer system. Xsnow was originally created as a virtual greeting card for Macintosh…
This media is not supported in your browser
VIEW IN TELEGRAM
#نکته_لینوکس
شاید مثل من بخواین sudo بجای پسورد user شما از پسورد root استفاده کنه.
برای اینکار کافیه فایل sudoers رو ادیت کنیم. پس:
و بعد
رو بهش اضافه میکنیم.
منطقا باید برای root هم پسوردی متفاوت از user خودمون تعیین کنیم دیگه. پس با
[حواستون باشه یادتون نره پسورد رو چی میذارین.]
حالا اگه لپتاپتون رو دادین دست رفیقتون و پسورد user خودتون رو هم برا لاگین شدن بهش دادین دیگه نمیتونه
بزنه. 😂
🚁 Hicte Blog
شاید مثل من بخواین sudo بجای پسورد user شما از پسورد root استفاده کنه.
برای اینکار کافیه فایل sudoers رو ادیت کنیم. پس:
# EDITOR=vim visudoو بعد
Defaults rootpwرو بهش اضافه میکنیم.
منطقا باید برای root هم پسوردی متفاوت از user خودمون تعیین کنیم دیگه. پس با
su سوئیچ میکنیم به یوزر root و با passwd پسورد root رو چیز دیگهای میذاریم:$ su# passwd[حواستون باشه یادتون نره پسورد رو چی میذارین.]
حالا اگه لپتاپتون رو دادین دست رفیقتون و پسورد user خودتون رو هم برا لاگین شدن بهش دادین دیگه نمیتونه
$ sudo rm -rf /* بزنه. 😂
🚁 Hicte Blog
👍4😁1👌1👨💻1
#خبر
بقول سینا:
کد ملی هامون رو بیو بنویسیم اینطوری سنگین تره!
https://news.1rj.ru/str/irleaks/20
🚁 Hicte Blog
بقول سینا:
کد ملی هامون رو بیو بنویسیم اینطوری سنگین تره!
https://news.1rj.ru/str/irleaks/20
🚁 Hicte Blog
👍9
HICTE Blog
#خبر بقول سینا: کد ملی هامون رو بیو بنویسیم اینطوری سنگین تره! https://news.1rj.ru/str/irleaks/20 🚁 Hicte Blog
میخوام یه ریپو تو گیتهاب بزنم.
تمام اطلاعات شخصی خودم رو تحت لایسنس MIT بنویسم توش. 🗿
تمام اطلاعات شخصی خودم رو تحت لایسنس MIT بنویسم توش. 🗿
👍14🔥2
#پایتون
تایپ هینت در پایتون
پایتون یه زبان
از پایتون 3.5 یه ویژگی به اسم type hint اضافه شد که به برنامه نویس این اجازه رو میده تا تایپ مورد انتظار خودش رو برای متغیرها، آرگومانهای توابع و خروجی توابع مشخص کنه که با این کار خوانایی کدش افزایش پیدا کنه و احتمال بروز خطا کم بشه.
دقت کنید که این فقط یه hint برای کسی هست که داره کد رو میخونه یا از اون تابع تو جای دیگهای استفاده میکنه و پایتون رو static-typed نمیکنه. همچنین این hint ها برای ابزارهایی مثل
برای مشخص کردن تایپ مورد انتظار یه متغیر اون رو بعد از یه کالن جلوی اسم متغیر مینویسیم.
تایپ هینت در پایتون
پایتون یه زبان
dynamically-typed هست و برخلاف زبانهای static-typed مثل Java یا C نوع متغیرها از قبل مشخص نیست و توی runtime مشخص میشه.از پایتون 3.5 یه ویژگی به اسم type hint اضافه شد که به برنامه نویس این اجازه رو میده تا تایپ مورد انتظار خودش رو برای متغیرها، آرگومانهای توابع و خروجی توابع مشخص کنه که با این کار خوانایی کدش افزایش پیدا کنه و احتمال بروز خطا کم بشه.
دقت کنید که این فقط یه hint برای کسی هست که داره کد رو میخونه یا از اون تابع تو جای دیگهای استفاده میکنه و پایتون رو static-typed نمیکنه. همچنین این hint ها برای ابزارهایی مثل
linter ها هم قابل درک هستن.برای مشخص کردن تایپ مورد انتظار یه متغیر اون رو بعد از یه کالن جلوی اسم متغیر مینویسیم.
age: int = 20برای آرگومانهای توابع هم همینطوری عمل میکنیم و برای مشخص کردن تایپ خروجی مورد انتظار تابع اون رو بعد از یه -> جلوی () میذاریم.
def greet(name: str) -> str:میتونیم از کلاسهای built-in پایتون یا کلاسهای abstract base یا تایپهایی که تو ماژول types وجود دارن استفاده کنیم. همچنین کلاسهایی که خودمون تعریف کردیم رو هم به عنوان تایپ میتونیم در نظر بگیریم.
return "Hello, " + name
def sum_elements(numbers: list[int]) -> int:میتونیم type alias هم داشته باشیم.
return sum(numbers)
type Vector = list[float]برای اینکه بتونین چندتا تایپ رو در نظر بگیرین از پایتون 3.10 به بعد میتونین از اوپراتور | استفاده کنین.
def scale(scalar: float, vector: Vector) -> Vector:
return [scalar * num for num in vector]
def parse_email(email_address: str) -> str | None:🚁 Hicte Blog
if "@" in email_address:
username, domain = email_address.split("@")
return username
return None
👍3🔥3🍌2