گروه مهندسی نرم افزار مازند پرداز

وبلاگ مازند پرداز به منظور آشنایی بیشتر کاربران با مهندسی نرم افزار و نیز انواع زبان های مختلف برنامه نویسی ایجاد شده است.

گروه مهندسی نرم افزار مازند پرداز

وبلاگ مازند پرداز به منظور آشنایی بیشتر کاربران با مهندسی نرم افزار و نیز انواع زبان های مختلف برنامه نویسی ایجاد شده است.

اعداد کامل

اعداد کامل


در نظریه اعداد، عدد کامل، یک عدد صحیح مثبت است که برابر با مجموع مقسوم‌علیه‌های سرهٔ مثبت خود (همهٔ مقسوم‌علیه‌های مثبتش غیر از خود عدد) باشد. همچنین به طور هم ارز، یک عدد کامل، عددی است که نصف مجموع همهٔ مقسوم‌علیه‌های مثبت خود باشد. (ویکی پدیا)


نخستین عدد کامل ۶ است. زیرا ۱+۲+۳=۶ یا به طور هم ارز، ۶=۲ / (۱+۲+۳+۶). بعد از آن ۲۸ و بعد از آن به ترتیب ۴۹۶ و ۸۱۲۸ قرار دارند.


الگوریتم کلی اعداد اول: 

Function IsPerfectNumber (Num) As Boolean

SumOfDivisors <-- 1

Counter <-- 2

MaxCounter <-- Num / 2

while Counter <= MaxCounter do

if Num mod Counter = 0 then

SumOfDivisors <-- SumOfDivisors + Counter

if SumOfDivisors > Num then

return false

Counter <-- Counter + 1

if SumOfDivisors = Num then

return true

return false

  

ادامه مطلب ...

پیاده سازی الگوریتم حدس کولاتز

حدس کولاتز (Collatz conjecture) 


حدس کولاتز یکی از حدس‌های حل نشده در ریاضیات است. این حدس به افتخار لوتار کولاتز، که این موضوع را در سال۱۹۳۷ مطرح کرد، حدس کولاتز نام گرفت. این حدس همچنین به عنوان حدس 3n+1 نیز شناخته می‌شود. این گونه حدس‌ها می‌پرسد که آیا یک رشتهٔ خاص از اعداد، صرف نظر از این که چه عددی را به عنوان عدد اولیه انتخاب می‌کنیم، همیشه به یک صورت تمام می‌شود. (منبع : ویکی پدیا)


حالت کلی الگوریتم به صورت زیر است: 

void Collatz(int Num):

while Num > 1 do:

show Num

if Num mod 2 == 1 then

Num <- 3 * Num + 1

Else

Num <- Num / 2

show Num


   ادامه مطلب ...

توابع محاسبه ب.م.م (GCD) و ک.م.م (LCM) دو عدد به زبان های مختلف

توابع محاسبه ب.م.م (GCD) و ک.م.م (LCM) دو عدد به زبان های مختلف : 

F#: 

let GCD(a : int, b : int) : int = 
    let mutable rv : int = 0
    let mutable ia : int = a
    let mutable ib : int = b
    while rv = 0 do
        if ia = 0 then
            rv <- ib
        else
            ib <- ib % ia
        if ib = 0 then
            rv <- ia
        else
            ia <- ia % ib
    rv 
   
ادامه مطلب ...