Forwarded from کافه برنامه نویسان | 𝗣𝗿𝗼𝗴𝗿𝗮𝗺𝗲𝗿s 𝗖𝗮𝗳𝗲
برداشتی که خیلیهامون از وضعیت فعلی #اینترنت داریم؛
نفسهای آخرشه.
نفسهای آخرشه.
برداشتی که خیلیهامون از حال و وضعیت فعلی ظالم داریم، بازم همینه.
نفسهای آخرشه .
🔥2
"فراموشی"
سرود – به لاله در خون خفته
هم شهدا ۸ سال دفاع مقدس و هم شهدا راه آزادی در دل ما جا دارند و آنهارا فراموش نمی کنیم
#جاویدان_ایرانه_عزیز_ما
#جاویدان_ایرانه_عزیز_ما
👍2
داشتم جنایات و مکافات میخوندم، این جمله از داستایفسکی دقیقا همون حسی رو میگه که این روزا دارم:)
"هر وقت سعی میکنم لبخند بزنم،
احساس میکنم به آنچه رخ داده است، خیانت میکنم."
💔3
"فراموشی"
چالش انجام دادن روزی یک سوال از سوال ها یه Euler با پایتون😁 @faramoshi_pc
روز بیستوششم، سؤال بیستوششم:
Reciprocal cycles
A unit fraction contains 1 in the numerator. The decimal representation of the unit fractions with denominators 2 to 10 are given:
1/2 = 0.5
1/3 = 0.(3)
1/4 = 0.25
1/5 = 0.2
1/6 = 0.1(6)
1/7 = 0.(142857)
1/8 = 0.125
1/9 = 0.(1)
1/10 = 0.1
Where 0.1(6) means 0.166666..., and the 1-digit recurring cycle is '6'.
It can be seen that 1/7 has a 6-digit recurring cycle.
Find the value of d < 1000 for which 1/d contains the longest recurring cycle in its decimal part.
سؤال از ما میخواد:
بین همه اعداد d کوچکتر از ۱۰۰۰، اون d رو پیدا کنیم که وقتی ۱ رو بر d تقسیم میکنیم، بخش اعشاریش طولانیترین دوره تکراری (recurring cycle) رو داشته باشه.
یعنی طولانیترین دنبالهای که تو اعشار تکرار میشه.
مقدار نهایی: ۹۸۳
(یعنی ۱/۹۸۳ طولانیترین چرخه رو داره که ۹۸۲ رقم طولشه)
نکته: اگر d بر ۲ یا ۵ بخشپذیر باشه، اعشارش زود تموم میشه (مثل ۰.۵ یا ۰.۲۵) و چرخه تکراری نداره. برای همین طول چرخهش رو ۰ گذاشتیم.
@faramoshi_pc
Reciprocal cycles
A unit fraction contains 1 in the numerator. The decimal representation of the unit fractions with denominators 2 to 10 are given:
1/2 = 0.5
1/3 = 0.(3)
1/4 = 0.25
1/5 = 0.2
1/6 = 0.1(6)
1/7 = 0.(142857)
1/8 = 0.125
1/9 = 0.(1)
1/10 = 0.1
Where 0.1(6) means 0.166666..., and the 1-digit recurring cycle is '6'.
It can be seen that 1/7 has a 6-digit recurring cycle.
Find the value of d < 1000 for which 1/d contains the longest recurring cycle in its decimal part.
سؤال از ما میخواد:
بین همه اعداد d کوچکتر از ۱۰۰۰، اون d رو پیدا کنیم که وقتی ۱ رو بر d تقسیم میکنیم، بخش اعشاریش طولانیترین دوره تکراری (recurring cycle) رو داشته باشه.
یعنی طولانیترین دنبالهای که تو اعشار تکرار میشه.
مقدار نهایی: ۹۸۳
(یعنی ۱/۹۸۳ طولانیترین چرخه رو داره که ۹۸۲ رقم طولشه)
def cycle_length(d):
if d % 2 == 0 or d % 5 == 0:
return 0
seen = {}
rem = 1
pos = 0
while rem not in seen:
seen[rem] = pos
rem = (rem * 10) % d
pos += 1
return pos - seen[rem]
max_len = 0
best_d = 0
for d in range(1, 1000):
length = cycle_length(d)
if length > max_len:
max_len = length
best_d = d
print(best_d, max_len) # 983 982
نکته: اگر d بر ۲ یا ۵ بخشپذیر باشه، اعشارش زود تموم میشه (مثل ۰.۵ یا ۰.۲۵) و چرخه تکراری نداره. برای همین طول چرخهش رو ۰ گذاشتیم.
@faramoshi_pc
❤🔥1
دیدم این تیکه از کتابِ گرگِ بیابان از هرمان هسه خیلی موده؛
«من برای این دنیا زیادی شکستهام،
و برای نابودشدن زیادی زندهام.»
«درون من چند نفر زندگی میکنند
که هیچکدام بلد نیستند خوشحال باشند.»
💔3
"فراموشی"
چالش روزی یک قدم برای تبدیل شدن به یک Rustacean 🦀😍 روز اول درس اول: مقدمه ای از Rustacean و زبان Rust روز دوم درس دوم: نصب Rust در ویندوز و لینوکس روز سوم درس سوم: آشنایی با Cargo، ساخت و اجرای پروژه روز چهارم درس چهارم:…
روز دهم از چالش تبدیل شدن به یک Rustacean 🦀
خب ما در جلسه پیش با حلقه ها در Rust و دستورات break و continue آشنا شدیم، تو این جلسه قرار با آرایه ها، حلقه for و tuple ها آشنا بشیم.
🔘 آرایه ها، Array
آرایه ها یک کالکشن از یک نوع داده هستن که داده ها را به صورت پشت سر هم در حافظه ذخیره میکنن، به طور مثال ما در زبان rust آرایه ها رو اینگونه تعریف می کنیم:
حالا چه جوری می تونین ازش استفاده کنیم؟🤔
برای دسترسی به عناصر آرایه، از index استفاده میکنیم. ایندکسها در Rust (و اکثر زبانها) از صفر شروع میشن:
نکته:
🔘 مقداردهی اولیه آرایهها
آرایهها رو میتونیم به چند روش بسازیم.
به طور مثال ساخت آرایه با مقدار پیشفرض:
و بعد عنصر به عنصر مقدار خانه های آرایه رو تغییر دهیم
🔘 چاپ آرایهها
برای چاپ کل آرایه، میتونین از فرمتهای Debug استفاده کنیم:
و اگر خروجی خواناتر بخوایم:
🔘 حلقه for
یکی از بهترین راهها برای کار با آرایهها، استفاده از حلقه for هست:
اینجا Rust خودش تکتک اعضای آرایه رو براتون برمیداره و داخل متغیر city میذاره. تمیز، امن و خوانا 😌
اگه بخوایم به index هم دسترسی داشته باشیم، میتونیم اینطوری بنویسیم:
🔘 ا Tuple ها
ا Tuple ها هم جزو Compound Type ها هستن، با این تفاوت که میتونن چند نوع داده مختلف رو کنار هم نگه دارن.
یا روش حرفهایتر و تمیزتر، Destructuring:
نکته: Tuple ها معمولاً زمانی استفاده میشن که بخوایم چند مقدار مرتبط رو با هم برگردونیم یا نگه داریم، بدون این که Struct تعریف کنیم.
خب درس امروز هم همینجا تموم شد اگه دوست داشتید ریکشن بزارید اگه هم نقدی یا مشکلی در اون بود میتونید بهم پیام بدید😉
@faramoshi_pc
خب ما در جلسه پیش با حلقه ها در Rust و دستورات break و continue آشنا شدیم، تو این جلسه قرار با آرایه ها، حلقه for و tuple ها آشنا بشیم.
در ساختمان داده ما به جز Type های اصلی یک سری Compound Types دارین.
🔘 آرایه ها، Array
آرایه ها یک کالکشن از یک نوع داده هستن که داده ها را به صورت پشت سر هم در حافظه ذخیره میکنن، به طور مثال ما در زبان rust آرایه ها رو اینگونه تعریف می کنیم:
let cities = ["Tehran","Shiraz","isfahan"];
حالا چه جوری می تونین ازش استفاده کنیم؟🤔
برای دسترسی به عناصر آرایه، از index استفاده میکنیم. ایندکسها در Rust (و اکثر زبانها) از صفر شروع میشن:
fn main() {
let my_array = [12, 15, 9];
println!("{}", my_array[0]); // 12
println!("{}", my_array[1]); // 15
println!("{}", my_array[2]); // 9
}نکته:
اگر سعی کنید به ایندکسی خارج از محدوده آرایه دسترسی پیدا کنید، برنامه panic میکنه و متوقف میشه.
🔘 مقداردهی اولیه آرایهها
آرایهها رو میتونیم به چند روش بسازیم.
به طور مثال ساخت آرایه با مقدار پیشفرض:
let numbers = [3; 5]; // [3, 3, 3, 3, 3]
و بعد عنصر به عنصر مقدار خانه های آرایه رو تغییر دهیم
🔘 چاپ آرایهها
برای چاپ کل آرایه، میتونین از فرمتهای Debug استفاده کنیم:
println!("{:?}", scores);و اگر خروجی خواناتر بخوایم:
println!("{:#?}", scores);🔘 حلقه for
یکی از بهترین راهها برای کار با آرایهها، استفاده از حلقه for هست:
fn main() {
let cities = ["Tehran", "Shiraz", "Isfahan"];
for city in cities {
println!("{}", city);
}
}اینجا Rust خودش تکتک اعضای آرایه رو براتون برمیداره و داخل متغیر city میذاره. تمیز، امن و خوانا 😌
اگه بخوایم به index هم دسترسی داشته باشیم، میتونیم اینطوری بنویسیم:
fn main() {
let cities = ["Tehran", "Shiraz", "Isfahan"];
for i in 0..cities.len() {
println!("{} -> {}", i, cities[i]);
}
}🔘 ا Tuple ها
ا Tuple ها هم جزو Compound Type ها هستن، با این تفاوت که میتونن چند نوع داده مختلف رو کنار هم نگه دارن.
fn main() {
let user = ("Ali", 23, true);
println!("{}", user.0); // Ali
println!("{}", user.1); // 23
}یا روش حرفهایتر و تمیزتر، Destructuring:
fn main() {
let user = ("Ali", 23, true);
let (name, age, is_active) = user;
println!("Name: {}", name);
println!("Age: {}", age);
println!("Active: {}", is_active);
}نکته: Tuple ها معمولاً زمانی استفاده میشن که بخوایم چند مقدار مرتبط رو با هم برگردونیم یا نگه داریم، بدون این که Struct تعریف کنیم.
خب درس امروز هم همینجا تموم شد اگه دوست داشتید ریکشن بزارید اگه هم نقدی یا مشکلی در اون بود میتونید بهم پیام بدید😉
@faramoshi_pc
❤🔥2
تو این مدت که اینترنت قطع بود سعی کردم قلم خودمو حفظ کنم و تو راویکست بنویسم
راویکست تو دوره ای که تمام وبلاگ ها دارن بسته میشن یا سانسور شدید گذاشتن رو پست ها و اینترنت قطع بود بالا اومد و با اين که هنوز خیلی جوونه و باگ داره توش میشه آزادی قلم یک نویسنده رو پیدا کرد و نکته خیلی مهم اپنسورسه و توسط کامیونیتی اداره میشه که من خیلی از این نکته خوشم میاد
پست هایی که تو قطع اینترنت نوشتم رو میتونید از اینجا ببینید 😉
https://ravicast.com/@PouriaAalamifar
راویکست تو دوره ای که تمام وبلاگ ها دارن بسته میشن یا سانسور شدید گذاشتن رو پست ها و اینترنت قطع بود بالا اومد و با اين که هنوز خیلی جوونه و باگ داره توش میشه آزادی قلم یک نویسنده رو پیدا کرد و نکته خیلی مهم اپنسورسه و توسط کامیونیتی اداره میشه که من خیلی از این نکته خوشم میاد
پست هایی که تو قطع اینترنت نوشتم رو میتونید از اینجا ببینید 😉
https://ravicast.com/@PouriaAalamifar
RaviCast
پوریا اعلمی فر | RaviCast
شبکه اجتماعی نشر و اشتراکگذاری محتوای متنی و صوتی
❤2👏1
تو این مدت که اینترنت قطع بود و یکم سرم خلوت شده بود تصمیم گرفتم یه دوره Rust بزارم و این زبان شیرین و قدرتمند رو آموزش بدم
سرفصل هاش به این صورته:
این دوره در ۴ ماه برگزار میشه، جلسه اولش برگزار شده و جلساتش هر چهارشنبه ساعت ۱۰ تا ۱۲ هست، اگه کسی خواست شرکت کنه میتونه بهم تو دایرکت کانال پیام بده🤗
سرفصل هاش به این صورته:
1.آشنایی با تعریفهای پایه => Compiler، Keywords، IDE، نصب rustup، ساخت اولین برنامه، معرفی و ساخت اولین برنامه با cargo
2.اVariable => ساخت Variable، چاپ مقدار، Data Types، Type Aliases، Type suffix، Naming conventions، Mutability، Scope، Constant،Shadowing
3.خواندن اطلاعات از روی صفحه و Operator => دستور read_line، خواندن عدد – تبدیل، Split، Operator
4.اBoolean Logic => ا If و else ، ا If و let ، حلقههای while و loop،
5.اDebug و حلقه ها ادامه => دستورات break و continue، بازگشت مقدار از حلقه، نام گذاری حلقهها (Loop Labels)، انجام پروژه ها ، Debug
6.اCompound Types => ا Array، حلقهی for، ا Tuple، ا Nested Tuple
7.اFunction => تعریف و پارامتر، Return
8.اOwnership => کل بحث حافظه ها و تخصیص حافظه و Stack، ا Heap، ا Ownership، ا Borrowing ، ا References، ا swap و ...
9.اStruct => ا tuple structs و Unit-Like Structs، ا Method - impl Blocks - Associated Functions ، ا Constructor ، ا Method cascading و ....
10.اEnum => ا Enum، Match ا، Option ا، If و let
11.اError Handlin => ا !Unrecoverable Errors – panic، ا Recoverable Errors – Result، ا unwrap – expect
، ا Propagating Errors و ? Operator
12.اCommon collection , ساخت رشته و پکیجها => Vector، ا Format ، ا نصب پکیجها – crates و استفاده از use
این دوره در ۴ ماه برگزار میشه، جلسه اولش برگزار شده و جلساتش هر چهارشنبه ساعت ۱۰ تا ۱۲ هست، اگه کسی خواست شرکت کنه میتونه بهم تو دایرکت کانال پیام بده🤗
🔥2❤1
Forwarded from linuxtnt(linux tips and tricks) (hosein seilany https://seilany.ir/)
گسترش استفاده از Rust در هسته لینوکس
پشتیبانی از Rust دیگر صرفاً آزمایشی نیست و توسعهدهندگان هسته در حال افزودن درایورها و زیرسیستمهای جدید با Rust هستند. برای Linux 7.1 نیز قابلیتهای جدیدی برای بهبود کارایی کدهای Rust در دست توسعه است.
https://rust-lang.org/tools/install/
پشتیبانی از Rust دیگر صرفاً آزمایشی نیست و توسعهدهندگان هسته در حال افزودن درایورها و زیرسیستمهای جدید با Rust هستند. برای Linux 7.1 نیز قابلیتهای جدیدی برای بهبود کارایی کدهای Rust در دست توسعه است.
https://rust-lang.org/tools/install/
👍1
"فراموشی"
چالش انجام دادن روزی یک سوال از سوال ها یه Euler با پایتون😁 @faramoshi_pc
روز بیستوهفتم، سؤال بیستوهفتم:
Quadratic Primes
سؤال از ما میخواد:
مقدار نهایی: 59231-
(به ازای a = -61 و b = 971 که ۷۱ عدد اول متوالی تولید میکنه)
نکته: با استفاده از ویژگیهای ریاضی محدودیتهای قوی روی حلقهها گذاشتیم:
@faramoshi_pc
Quadratic Primes
Euler discovered the remarkable quadratic formula:
n² + n + 41
It turns out that the formula will produce 40 primes for the consecutive integer values 0 <= n <= 39. However, when n = 40, 40² + 40 + 41 = 40(40+1) + 41 is divisible by 41, and certainly when n = 40, 40² + 40 + 41 is clearly divisible by 41.
The incredible formula n² - 79n + 1601 was discovered, which produces 80 primes for the consecutive values 0 <= n <= 79. The product of the coefficients, -79 and 1601, is - 126479.
Considering quadratics of the form:
n² + an + b, where |a| <= 1000 and |b| <= 1000
where |n| is the modulus/absolute value of n
e.g. |11| = 11 and |-4| = 4
Find the product of the coefficients, a and b, for the quadratic expression that produces the maximum number of primes for consecutive values of n, starting with n = 0.
سؤال از ما میخواد:
یک رابطه درجه دوم کلی به صورت n² + an + b داریم که در آن a بین ۹۹۹- تا ۹۹۹+ و b بین ۱۰۰۰- تا ۱۰۰۰+ است.
هدف اینه که مقادیری از a و b رو پیدا کنیم که این فرمول به ازای اونا، بیشترین تعداد اعداد اول متوالی رو از 0 = n به بالا تولید کنه.
در نهایت هم حاصلضرب a * b رو میخواد.
مقدار نهایی: 59231-
(به ازای a = -61 و b = 971 که ۷۱ عدد اول متوالی تولید میکنه)
import math
def is_prime(num):
if num < 2:
return False
for i in range(2, int(math.sqrt(num)) + 1):
if num % i == 0:
return False
return True
def solve_euler_27():
max_primes = 0
best_a = 0
best_b = 0
b_primes = [b for b in range(2, 1001) if is_prime(b)]
for b in b_primes:
for a in range(-999, 1000, 2):
n = 0
while True:
value = n**2 + a*n + b
if is_prime(value):
n += 1
else:
break
if n > max_primes:
max_primes = n
best_a = a
best_b = b
print(f"Best a: {best_a}")
print(f"Best b: {best_b}")
print(f"Max consecutive primes: {max_primes}")
print(f"Product (a * b): {best_a * best_b}")
if __name__ == "__main__":
solve_euler_27()
نکته: با استفاده از ویژگیهای ریاضی محدودیتهای قوی روی حلقهها گذاشتیم:
۱. مقدار b در حالت 0 =n دقیقاً خروجی فرمول است، پس b خودش باید عدد اول مثبت باشد.
۲. مقدار a باید عدد فرد باشد تا به ازای 1 = n خروجی فرمول یک عدد فرد (شاید اول) شود. این کار تعداد بررسیهای حلقه را نصف و سرعت را فوقالعاده بالا میبرد.
@faramoshi_pc
❤1
This media is not supported in your browser
VIEW IN TELEGRAM
💔
رونالدو امشب واسه آخرینبار تو جام جهانی بازی کرد...
رونالدو امشب واسه آخرینبار تو جام جهانی بازی کرد...
💔2
Forwarded from Mr. T (hosein TooVinS)
حاضرم بهم بگن که Ai جای برنامه نویسا رو میگیره، ولی در عوض رونالدو جام جهانی 2026 بلند کنه
آدمِ مورد علاقهی بچگیای من، گریه نکن مَرد💔
@ToovinsJs
آدمِ مورد علاقهی بچگیای من، گریه نکن مَرد💔
@ToovinsJs
💔2🕊1