اعداد کامل
در نظریه اعداد، عدد کامل، یک عدد صحیح مثبت است که برابر با مجموع مقسومعلیههای سرهٔ مثبت خود (همهٔ مقسومعلیههای مثبتش غیر از خود عدد) باشد. همچنین به طور هم ارز، یک عدد کامل، عددی است که نصف مجموع همهٔ مقسومعلیههای مثبت خود باشد. (ویکی پدیا)
نخستین عدد کامل ۶ است. زیرا ۱+۲+۳=۶ یا به طور هم ارز، ۶=۲ / (۱+۲+۳+۶). بعد از آن ۲۸ و بعد از آن به ترتیب ۴۹۶ و ۸۱۲۸ قرار دارند.
الگوریتم کلی اعداد اول:
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
حل مسأله کوله پشتی کسری:
فرض کنید شما یک کوله پشتی در اختیار دارید که مانند هر کوله پشتی دیگری می تواند وزن معینی از بار را تحمل کند که در این مسأله maxweight مشخص شده است. مجموعه ای از اشیا دارید که هر کدام دارای وزن و ارزش مشخصی هستند و تمام اشیاء موجود در این مجموعه به گونه ای هستند که می توان نه تنها تمام آن شئ را برداشت بلکه می توان شئ را خرد کرده و بخش کمتری از شئ را برداشت که میزان نسبت ارزش به وزن آن شئ حفظ شود و آن بخش کمتر نیز به همان میزان ارزش داشته باشد.
ورودی های این مسأله عبارتند از :
متغیرهای الگوریتم عبارتند از:
توابع محاسبه ب.م.م (GCD) و ک.م.م (LCM) دو عدد به زبان های مختلف :
F#:
ادامه مطلب ...let GCD(a : int, b : int) : int =let mutable rv : int = 0let mutable ia : int = alet mutable ib : int = bwhile rv = 0 doif ia = 0 thenrv <- ibelseib <- ib % iaif ib = 0 thenrv <- iaelseia <- ia % ibrv
به منظور محاسبه کوچکترین مضرب مشترک و بزرگترین مقسوم علیه مشترک دو عدد می بایست اعمال زیر را انحام دهیم :
1 - برای ب.م.م (GCD) دو عدد مانند a و b: