"فراموشی"
33 subscribers
18 photos
31 videos
6 files
20 links
اینجا هر چی که من بلدم از کامپیوتر رو می زارم که اگه یادم رفت دوباره نخواهم برم یاد بگیرم و با خوندن اون یادم بیاد

لینک حمایت :)‌
https://daramet.com/PouriaAalamifar
Download Telegram
«تنها شکست در سن ۲۰ تا ۳۰ سالگی شما «بی فعالیتی» است .جز این هر چه کنید آزمون و خطاست.»
_
به نظرم جمله خیلی قشنگیه پس هیچوقت دیر نیست.
5
Forwarded from linuxtnt(linux tips and tricks) (hosein seilany https://seilany.ir/)
پیرو این پست که گذاشتم، پست ها ونظرات زیادی در لینکدین دارم میبینم راجع به این مسئله اماچیزی که باید بپذیریم:
https://t.me/linuxtnt/4739

در حال حاضر یک تحول پارادایمی در حال وقوع هست:
🔹لینوکس شروع به استفاده از Rust کرده است.
https://t.me/linuxtnt/4668

🔹مایکروسافت در حال تغییر به سمت Rust است.
🔹برخی موتورهای بازی‌سازی مانند Unreal Engine و Unity هم در مسیر مشابه هستند — شاید نه بازنویسی کامل، اما افزودن کدهای Rust به کدبیس موجود.
🔹تیم اندروید در گوگل نیز در حال آزمایش Rust است.

این نشان‌دهنده یک گرایش گسترده به سمت Rust در صنعت نرم‌افزار است، به‌خصوص در پروژه‌های بزرگ و حیاتی.
👍2
"فراموشی"
چالش روزی یک قدم برای تبدیل شدن به یک Rustacean 🦀😍 روز اول درس اول: مقدمه ای از Rustacean و زبان Rust روز دوم درس دوم: نصب Rust در ویندوز و لینوکس روز سوم درس سوم: آشنایی با Cargo، ساخت و اجرای پروژه روز چهارم درس چهارم:…
روز نهم از چالش تبدیل شدن به یک Rustacean 🦀

خب ما در جلسه پیش با شرط ها(if و else ها) Boolean Logicها و let ifها آشنا شدیم، تو این جلسه قرار با حلقه ها در Rust و دستورات break و continue آشنا بشیم.

در Rust ما دو نوع حلقه داریم loop و while.


حلقه loop:

در حلقه loop ما می تونیم دستورات رو تا بینهایت اجرا کنیم، مثال:
fn main(){
loop {
println!("Hi");
}
}

حالا چه جوری می تونیم از loop بیایم بیرون🤔

با استفاده از کلمه کلیدی break، مثلا می خواهید حلقه 3 بار تکرار بشه:
fn main(){
let mut i = 1;
loop {
if i > 3 {
break;
}
println!("Hi👋");
i += 1;
}
}


حتی شما اگه از چند حلقه تو در تو استفاده می کنید و می خواهید با یک دستور از حلقه اول خارج شوید می توانید به حلقه ها اسم بدهید و از اون برای خارج شدن استفاده کنید، مثال:
fn main(){
let mut i = 1;
'loop_first: loop {
println!("first loop🥇");
loop {
println!("loop in loop ♾️");
i += 1;
if i > 3 {
break 'loop_first;
}
}
}
}


یا حتی برای loopتون می تونید داده برگردانید، مثال:
fn main(){
let mut i = 1;
let mut even = 0;
let result = loop {
if i > 3 {
break even;
}
even += 2;
i += 1;
};
println!("{}",result);
}


حلقه while
هم به همین صورت هست فقط درون خودش شرط داره دقیقا مثل بقیه زبان های برنامه نویسی، مثال:
fn main(){
let mut i = 1;
while i <= 3 {
println!("Hi😕");
i += 1;
}
}


کلمه کلیدی continue هم مثل break عمل می کند فقط فرقش این هست که کلا از حلقه بیرون نمیاد بلکه بقیه حلقه رو ول می کنه و از اول حلقه شروع میکنه، مثال:
fn main(){
let mut i = 0;
loop {
i += 1;
if i % 2 == 0 {
continue;
}
println!("{i}");
}
}

الان کد بالا تمام اعداد فرد رو تا بینهایت چاپ می کنه.

خب درس امروز هم همینجا تموم شد اگه دوست داشتید ریکشن بزارید اگه هم نقدی یا مشکلی در اون بود میتونید بهم پیام بدید😉


@faramoshi_pc
🔥1
"فراموشی"
چالش انجام دادن روزی یک سوال از سوال ها یه Euler با پایتون😁 @faramoshi_pc
روز بیست‌وپنجم، سؤال بیست‌وپنجم:

1000-digit Fibonacci Number

The Fibonacci sequence is defined by the recurrence relation:

F ⁿ = F ⁿ ‐ ¹ + F ⁿ ‐ ², where F¹ = 1 and F² = 1.

Hence the first 12 terms will be:

F¹ = 1
F² = 1
F³ = 2
F⁴ = 3
F⁵ = 5
F⁶ = 8
F⁷ = 13
F⁸ = 21
F⁹ = 34
F¹⁰ = 55
F¹¹ = 89
F¹² = 144

The 12th term, F¹², is the first term to contain three digits.

What is the index of the first term in the Fibonacci sequence to contain 1000 digits?

سؤال از ما می‌خواد اندیس اولین جمله‌ای از دنبالهٔ فیبوناچی رو پیدا کنیم که دقیقاً ۱۰۰۰ رقم داشته باشه.

مقدار نهایی هم میشه: 4782

a = 1
b = 1
index = 2

while len(str(b)) < 1000:
a, b = b, a + b
index += 1

print(index)


@faramoshi_pc
🔥3
اینا آدمن فقط خودشونو زدن به گربه بودن مالیات ندن
@faramoshi_pc
😁3
Forwarded from sohrab::stdout (Sohrab)
خب امروز انگار تولد لینوس بندیکت تروالدز هستش :)


تولدش رو به دوست‌داران هستهٔ لینوکس ،گیت و کسایی که با سی پلاس پلاس مشکل دارن تبریک عرض می‌کنم.


@SohrabContents
🥰2🎉1
Forwarded from linuxtnt(linux tips and tricks) (hosein seilany https://seilany.ir/)
🔰به مناسبت روز پدر و این روز فرخنده

🔹تصمیم دارم کتاب11 ام-راهنمای جامع linux Essentials را در روز پدر رایگان قرار بدهم و همچنین بخاطر شرایط کنونی هم یک تخفیف روی محصولات lpic قرار دادم.


🔻کتاب 11 - inux Essentials
🔻کتاب10-راهنمای جامع LPIC1 با 20 % تخفیف
🔻کتاب14- LPIC2 201,202 با 25 % تخفیف
🔻کتاب13- LPIC3 303 Security با 25 % تخفیف

⭐️این تخفیف فقط 24 ساعت است برای روز شنبه
پس شنبه رو از دست ندید.


📌دریافت کتاب ها از آکادمی کندوی دانش

https://learninghive.ir/linux-books/
🔥2
خب متاسفانه از صبح دی‌ان‌اس ها به مشکل خوردن و اختلال بی سابقه در اینترنت رو شاهد هستیم و احتمال این بالاست که اینترنت یا قطع بشه یا پر از اختلال باشه.

درحال نوشتن یه مقاله درباره اینترنت ایران و اینترنت ملی (NIN) و راهکار های دور زدن اون هستم اگه درآینده هنوز امکان آنلاین شدن باشه🤗

#موقت
💔3
برداشتی که خیلی‌هامون از وضعیت فعلی #اینترنت داریم؛
نفس‌های آخرشه.

برداشتی که خیلی‌هامون از حال و وضعیت فعلی ظالم داریم، بازم همینه.
نفس‌های آخرشه .
🔥2
"فراموشی"
سرود – به لاله در خون خفته
هم شهدا ۸ سال دفاع مقدس و هم شهدا راه آزادی در دل ما جا دارند و آنهارا فراموش نمی کنیم

#جاویدان_ایرانه_عزیز_ما
👍2
This media is not supported in your browser
VIEW IN TELEGRAM
و این بود داستان پایان یک پسر💔😭
💔4
داشتم جنایات و مکافات می‌خوندم، این جمله از داستایفسکی دقیقا همون حسی رو میگه که این روزا دارم:)

"هر وقت سعی میکنم لبخند بزنم،
احساس میکنم به آنچه رخ داده است، خیانت میکنم."
💔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) رو داشته باشه.
یعنی طولانی‌ترین دنباله‌ای که تو اعشار تکرار می‌شه.

مقدار نهایی: ۹۸۳
(یعنی ۱/۹۸۳ طولانی‌ترین چرخه رو داره که ۹۸۲ رقم طولشه)

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 ها آشنا بشیم.

در ساختمان داده ما به جز 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
باشد که روزگار،
بچرخد به کام دل،
باشد که غم،
خجل شود از صبر قلب ما...
5