برنامه‌های ریاضیاتی

  • شروع کننده موضوع
  • #1

Taha_IDLE

کاربر فعال
ارسال‌ها
22
امتیاز
8
نام مرکز سمپاد
دبیرستان دوره اول علامه حلی 1 تهران
شهر
تهران
سال فارغ التحصیلی
1405
سلام دوستان
اینجا رو زدم تا یسری برنامه هایی بنویسیم که بتونیم باهاش مسائل ریاضی رو انجام بدیم(مثل فاکتوریل و الگوی فیبوناچی و...) من خودم چند تا از این ها رو اینجا می زارم.
 

MRΣZA

کاربر حرفه‌ای
ارسال‌ها
378
امتیاز
4,372
نام مرکز سمپاد
شهید بهشتی
شهر
ابهر
سال فارغ التحصیلی
1403
دانشگاه
شریف
رشته دانشگاه
مهندسی برق
سلام، چجوری کد رو اینجا بنویسم ؟ < و > و ؛ جا به جا میشن :/
 

ememlia

⁦(⊙_◎)⁩
عضو مدیران انجمن
ارسال‌ها
856
امتیاز
19,972
نام مرکز سمپاد
شهید بهشتی
شهر
.
سال فارغ التحصیلی
1397

MRΣZA

کاربر حرفه‌ای
ارسال‌ها
378
امتیاز
4,372
نام مرکز سمپاد
شهید بهشتی
شهر
ابهر
سال فارغ التحصیلی
1403
دانشگاه
شریف
رشته دانشگاه
مهندسی برق
C++:
#include <iostream>
#include <conio.h>

using namespace std;

int main()
{
    int p;
    int i;
    int flag;
    cout << "Enter p :";
    cin >> p;
    cout << "Is " << p << " a prime number ?"<<endl;
    flag = 0;
    for (i =2 ; i < p; i++)
    {
        if (p % i == 0)
            flag = 1;
    }
    if (flag == 0)
        cout << "Yes";
    else
        cout << "No";
    int getch();
}


خب این یه کد ساده هستش و یه عدد ورودی می گیره و میگه که اول هستش یا نه (کد فیبوناچی هم داشتم، پیداش می کنم)
 
  • شروع کننده موضوع
  • #5

Taha_IDLE

کاربر فعال
ارسال‌ها
22
امتیاز
8
نام مرکز سمپاد
دبیرستان دوره اول علامه حلی 1 تهران
شهر
تهران
سال فارغ التحصیلی
1405
C++:
#include <iostream>
#include <conio.h>

using namespace std;

int main()
{
    int p;
    int i;
    int flag;
    cout << "Enter p :";
    cin >> p;
    cout << "Is " << p << " a prime number ?"<<endl;
    flag = 0;
    for (i =2 ; i < p; i++)
    {
        if (p % i == 0)
            flag = 1;
    }
    if (flag == 0)
        cout << "Yes";
    else
        cout << "No";
    int getch();
}


خب این یه کد ساده هستش و یه عدد ورودی می گیره و میگه که اول هستش یا نه (کد فیبوناچی هم داشتم، پیداش می کنم)
سید این ساده شما چه زبونیه؟ تو 5 یا 6 خط با پایتون نوشتمش :|
 

ememlia

⁦(⊙_◎)⁩
عضو مدیران انجمن
ارسال‌ها
856
امتیاز
19,972
نام مرکز سمپاد
شهید بهشتی
شهر
.
سال فارغ التحصیلی
1397
  • شروع کننده موضوع
  • #7

Taha_IDLE

کاربر فعال
ارسال‌ها
22
امتیاز
8
نام مرکز سمپاد
دبیرستان دوره اول علامه حلی 1 تهران
شهر
تهران
سال فارغ التحصیلی
1405

dorincii

ز همه خلق رمیده
کنکوری 1404
ارسال‌ها
349
امتیاز
14,799
نام مرکز سمپاد
فرزانگان 1
شهر
بَلْدَةً مَیْتاً
سال فارغ التحصیلی
1404
Python:
def fibonacci (n):
    if n == 0:
        return 0
    elif n == 1:
        return 1
    else:
        return fibonacci (n-1)+ fibonacci (n-2)
بدون تابع بازگشتی هم میشه نوشت، ولی با تابع بازگشتی ساده تر و کوتاه تره.
 

MRΣZA

کاربر حرفه‌ای
ارسال‌ها
378
امتیاز
4,372
نام مرکز سمپاد
شهید بهشتی
شهر
ابهر
سال فارغ التحصیلی
1403
دانشگاه
شریف
رشته دانشگاه
مهندسی برق
سلام خدمت همگی، اینم یه کد ++C هستش که بعنوان ورودی هر چند تا عدد که خواستید با هر مقداری بهش می دید و میانگین اونا بعنوان خروجی داده میشه (لازمه که بعد از آخرین عدد، یه عدد کمتر مساوی صفر وارد کنید)
C++:
#include <iostream>
#include <conio.h>
#include <math.h>
using namespace std;
int main()
{
    int i = 0;
    int n;
    int sum = 0;
    cout << "Enter 0 or a negative number at the end ." << endl;
    cout << "Enter n(s): " << endl;

    for (; ; )
    {
        cin >> n;
        if (n <= 0)
            break;
        i++;
        sum += n;
    }
    cout << "Average :" << (float)sum / i;
}
int getch();
 

MRΣZA

کاربر حرفه‌ای
ارسال‌ها
378
امتیاز
4,372
نام مرکز سمپاد
شهید بهشتی
شهر
ابهر
سال فارغ التحصیلی
1403
دانشگاه
شریف
رشته دانشگاه
مهندسی برق
این کد سی پلاس پلاس هم فاکتوریل عدد ورودی رو در خروجی میده.

C++:
#include <iostream>
#include <conio.h>
#include <math.h>
using namespace std;
int main()
{

    int i, n, fact = 1;
    cout << "enter n:";
    cin >> n;

    for (i = 1; i <= n; i++)
        fact *= i;
    cout <<n<< " factorial:" << fact;
}
int getch();
 

Bay Harbor butcher

کاربر فوق‌حرفه‌ای
ارسال‌ها
907
امتیاز
10,132
نام مرکز سمپاد
'
شهر
-
سال فارغ التحصیلی
0
سلام
کسی میتونه برنامه ای بنویسه که توزیع اعداد اول رو نشون بده؟
مثلا تو هر رنجی چند درصد اعداد اول هستن
بعد نمودار "درصد اعداد اول" بر حسب اون رنج (مثلا 0 تا x) رو رسم کنه
 

ememlia

⁦(⊙_◎)⁩
عضو مدیران انجمن
ارسال‌ها
856
امتیاز
19,972
نام مرکز سمپاد
شهید بهشتی
شهر
.
سال فارغ التحصیلی
1397
سلام
کسی میتونه برنامه ای بنویسه که توزیع اعداد اول رو نشون بده؟
مثلا تو هر رنجی چند درصد اعداد اول هستن
بعد نمودار "درصد اعداد اول" بر حسب اون رنج (مثلا 0 تا x) رو رسم کنه
سلام:)
من دوتا نمودار کشیدم حالا خودت میتونی مادیفایش کنی
Python:
import matplotlib.pyplot as plt


def isPrime(n):
    if (n <= 1):
        return False
    if (n <= 3):
        return True
    if (n % 2 == 0 or n % 3 == 0):
        return False
    i = 5
    while (i * i <= n):
        if (n % i == 0 or n % (i + 2) == 0) :
            return False
        i = i + 6
    return True

def showPiePlot(prime, all):
    labels = 'Prime', 'Composite'
    sizes = [float(prime)/all*100, float(all-prime)/all*100]
    explode = (0, 0.1)

    fig1, ax1 = plt.subplots()
    ax1.pie(sizes, explode=explode, labels=labels, autopct='%1.1f%%',
            shadow=True, startangle=90)
    ax1.axis('equal')

    plt.show()

def showBarPlot(prime_count, inp):
    data = {'Prime':prime_count, 'Composite':inp-prime_count}
    x = list(data.keys())
    y = list(data.values())
    
    fig = plt.figure(figsize = (10, 5))
    
    # creating the bar plot
    plt.bar(x, y, color ='maroon',
            width = 0.4)
    
    plt.xlabel("Type")
    plt.ylabel("Count")
    plt.show()

inp = int(input("max num: "))
prime_list = []

for i in range(0, inp):
    if isPrime(i+1):
        prime_list.append(i+1)

prime_count = len(prime_list)
showPiePlot(prime_count, inp)
showBarPlot(prime_count, inp)



فقط اینکه عدد ۱ رو هم جز اعداد composite! حساب کردم که اشتباهه:)‌‌)‌
 

Amirhsz

کاربر فوق‌فعال
کنکوری 1404
ارسال‌ها
88
امتیاز
133
نام مرکز سمپاد
علامه حلی 1
شهر
تهران
سال فارغ التحصیلی
1404
سلام
برنامه ای که نوشتم چند تا عدد رو از ورودی میگیره بعد میپرسه چندمین عدد الگو رو میخای و بدستش میاره. این روشا رو شنیده بودم اسمش روش اویلره. خودم زیاد اینکه چجور اثبات میشه رو نمیدونم ولی طرز کارش سادس: (فکر کنم طرز کارش اینه که اگه دقت کنین میبین واسه جملاتی که خودتون دادین جواب درست رو برمیگردونه ولی حالا نمیدونم چجو اثبات میشه برای اعداد بعد هم درسته. البته تقریبی هست مثلا اگه درجه چند جمله ای عمومیش ۷ باشه و شما ۵ بدید ۵ تا از نقاط بر هم منطبقن حالا ممکنه اون ۲ تای دیگه منطبق بشن یا نشن.)
(n-2)×(n-3)×(n-4)×(n-5)×(عدد اول الگو÷جاگذاری برای n=1 در جملات بالا)+(n-1)×(n-3)×(n-4)×(n-5)×(عدد دوم الگو÷ جایگذاری با جمله بالاn=2)+(n-1)×(n-2)×(n-4)×(n-5)×(عدد سوم الگو÷جایگذاری جمله بالا به ازای n=3) + ...
اگه کسی میتونه کمک کنه جمله n ام رو بزاریم توو الگوریتم زیر(الگوریتم من جای n چندمین عددی رو که میخواید رو میزاره).
یا اینکه بگه چرا جملات بالا درست درمیان تقریبا(اثبات ریاضیش):
Python:
#####################################################
#                   Inputs                          #
#####################################################
n=[]
while True:
    i = int(input("Adad olgo ro vared konin: "))
    if i!=0 :
        n.append(i)
    else :
        break
i = len(n)
k = int(input("Chandomin addad olgo ro mikhain??: "))
#####################################################
#                   Main thread                     #
#####################################################

# p = addady ke ja gozari mishe , r = addadi ke az kam kardnsh dori miknim , i = tedad jomalt
def mksent(p,r,i=i):
    res = 1
    for x in range (1,i+1):
        if x==r :
            continue
        res *= (p-x)
    return res

res = 0
for x in range (1,i+1):
    res += (mksent(k,x)*n[x-1]/mksent(x,x))
#####################################################
#                   End of Programm                 #
#####################################################
print(res)
 
بالا