الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

تحدي:لغز برمجي بالبايثون

بدأه kenham في 3 يناير 2014 · 42 رد · 3,764 مشاهدة · في لغة Python
مشاركة: واتساب X فيسبوك تيليجرام
#26

سأزودك بأفكاري لدالة اختبار اولية العدد (تعتمد على تكرار القسمة) ولكن بشكل محسن

الفحص راح يكون لعند جذر العدد المطلوب فحصه، وحتى ما يدخل في حلقة الفحص تأكد من قابلية القسمة على 2 و 3 و 5 و 7 

وخلي العداد يبدأ من 3 والزيادة ب 2

#27

أخي أكتب خوارزميتك او معادلتك و أعطي مثال لكي تصل فكرة

Untitled-18.jpg

#28

اخي انا لا اعرف شيئا عن الباثيون ولكن كتبت الكود الخاص بالتحقق من اولية العدد بلغة السي ++ (ارجو ان تتقبل مني)
فساضعه لك بالسي++

#include <iostream>
#include <conio.h>

using namespace std;

int main()
{
	int num;
	int  sq;
	bool isPrime = false;

	cout << "Enter positve integer number: ";
	cin >> num;

	sq = sqrt(static_cast<float>(num));

	if (num == 2 || num == 3 || num == 5 || num == 7)
		isPrime = true;
	else if (num % 2 == 0)
		isPrime = false;
	else
	{
		for (int i = 3; i <= sq; i += 2)
		{
			if(num % i == 0)
			{
				isPrime = false;
				break;
			}
			else
				isPrime = true;
		}
	}
	
		if(isPrime)
			cout << num << " is prime number.";
		else
			cout << num << " is not prime number.";
	getch();
    return 0;
}
#29

لم أقصد الكود البرمجي

قصدي العلاقة مثلما وضعت انا علاقتي

Untitled-18.jpg

#30

ادخل على هذا الموضوع ، يوجد فيه ثلاث طرق للتأكد من اولية العدد (على ما اظن الطريقة الاولى تشبه طريقتي)

http://www.wikihow.com/Check-if-a-Number-Is-Prime

بالتوفيق

1
#31

شيئ جميل يا شباب  هناك عدة طرائق لمعرفة إن كان العدد أوليا أم لا لكن هذا ليس موضوعنا

 

يكفي التحقق من ذلك بالقسمة  لأن هذه الطريقة معروفة عند الجميع.

 

 

 

#32

ماهي ثاني دالة واجب برمجتها؟

Untitled-18.jpg

#33
اقتباس
def TestPrimality(m):
    Newm = m - 1
    a = 2
    calcuD = a ** Newm
    Result = calcuD % m
    if Result == 1:
        return "Your number is Primary"
    else:
        return "your number is not Primary"

 

يبدو أن برنامج الأخ عامر الشابي يأدي المطلوب كما أنه بسيط ،لكن أجريت تعديل بسيط عليه ليوافق المعطيات

 

كما قلت الدوال بها مدخلين المدخل الأول هو العدد و المدخل الثاني هو عدد الخانات

لكن دالة الأعداد الأولية تقبل مدخل واحد و هو عدد الخانات لذا عدلت الدالة علي النحو التالي.

 

لقد وضعت النتئج في القائمة prim

 

eng.ahmadshalabi           يمكنك مشاركتنا و ذلك بتحويل هذا الكود للغة السي و إن لم تفهم شيئا بخصوص هذا الكود،نحن في الخدمة
prim=[]
def TestPrimality(n):
    m=2
    while m<=(10**n-1):
        Newm = m - 1
        a = 2
        calcuD = a ** Newm
        Result = calcuD % m
        if Result == 1:
            prim.append(m)
        m+=1

تم تعديل هذه المشاركة بواسطة kenham في 14 يناير 2014 في 00:53

#34

المطلوب الآن هو:

 

صنع دالة للمربعات التامة و دالة للمكعبات التابة و وضع نتائج كل دالة في قائمة

 

حيث :   لدينا مدخل واحد و هو عدد الخانات.

 

وصنع  دالة لجمع أرقام عدد و دالة لضرب أرقام عدد

 

هنا لا نحتاج لقائمة و إنما نستعمل return

تم تعديل هذه المشاركة بواسطة kenham في 14 يناير 2014 في 00:52

#35

هيا يا شباب أين مشاركاتكم

 

هذا ليس صعبا أما أن حل اللغز مازال بعيدا إن واصلنا علي هذا المنوال فمتي نحل اللغز

#36

هذه دالة لإختبار أولية عدد رغم طول السورس كود إلى أنها تعطي نتيجة بطريقة جيدة

وبنسبة للدالة ثانية سأحاول ان أبرمجها رغم قصر الوقت لدي

Untitled-18.jpg

#37

لكن هنا الأعداد الأولية التي نحتاجها مكونة من رقمين فقط. لذا لسنا في حاجة لها يكفينا دالتك التي عدلتها أنا

 

و ما يهمنا الآن هو الدوال التي ذكترها فوق و التي لا تزال دون حل.

#38
اقتباس

 

وصنع  دالة لجمع أرقام عدد و دالة لضرب أرقام عدد

 

هنا لا نحتاج لقائمة و إنما نستعمل return

 

قرأت أن أتقدم قليلا في المشروع و أرجو من الأعضاء المشاركة فإمكاني وضع الكود الكامل للبرنامج.

 

دالة لجمع أرقام عدد:

def sum(c):
     r=0
     while c>0:
         r=r+(c%10)
         c=c//10
     return r

و هذه دالة للمربعات التامة

Z2=[]
def Z3(case):
    a=0
    z=a**2
    while z<10**case:
        Z2.append(z)
        a+=1
        z=a**3

المطلوب الآن هو التعديل علي الداليتن الأخيرتين لصنع دالة لضرب أرقام عدد و دالة للمكعبات التامة

 

في انتضار مشاركاتكم.

#39

علي ما يبدو لا أحد مهتم بهذا الموضوع.

 

 

لذا سأتوقف هنا   و إن كان أحد مهتم بهذا الصنف من البرمجيات  أرجو أن يراسلني.

 

المشروع متوقف هنا

#40

آسف لعدم المتابعة لأني مشغول بمشروعي على django

Untitled-18.jpg

#41

حسنا أظن أنه من الأفضل أن أضع الحل لتعم الفائدة علي الجميع.

def _Main_():
    global Z2,T25,D11,D87,D887,D30,NINI1,NINI2,NINI3,M3024,D7,T19,D187,D7625,Z3,D10,l
    global A,B,C,D,E
    global r0,r1,r2,r3,r4
    Z2=[]
    T25=[]
    D11=[]
    D87=[]
    D887=[]
    D30=[]
    NINI1=[]
    NINI2=[]
    NINI3=[]
    M3024=[]
    T19=[]
    D187=[]
    D7625=[]
    Z3=[]
    D10=[]
    A=[[],[],[],[],[]]
    B=[[],[],[],[],['*']]
    C=[[],[],[],['*'],[]]
    D=[[],[],['*'],[],[]]
    E=[[],[],[],[],[]]
    v()
    h()
    F=0
    T=1
    while F!=T:
        T=0
        L=[A,B,C,D,E]
        m=0;n=0
        while m<5:
            while n<5:
                T=T+len((L[m])[n])
                n+=1
            m+=1
        dell(M3024,A,0,0)
        dell(T19,B,1,0)
        dell(D7625,C,0,4)
        dell(D187,C,2,0)
        dell(Z3,D,0,3)
        dell(NINI3,D,3,0)
        dell(D10,E,0,0)
        A=[[],[],[],[],[]]
        B=[[],[],[],[],['*']]
        C=[[],[],[],['*'],[]]
        D=[[],[],['*'],[],[]]
        E=[[],[],[],[],[]]
        add(M3024,A,0,0)
        add(T19,B,1,0)
        add(D7625,C,0,4)
        add(D187,C,2,0)
        add(Z3,D,0,3)
        add(NINI3,D,3,0)
        add(D10,E,0,0)
        r0=[A[0],B[0],C[0],D[0],E[0]]
        r1=[A[1],B[1],C[1],D[1],E[1]]
        r2=[A[2],B[2],C[2],D[2],E[2]]
        r3=[A[3],B[3],C[3],D[3],E[3]]
        r4=[A[4],B[4],C[4],D[4],E[4]]
        dell(T25,r0,0,0)
        dell(D11,r1,0,0)
        dell(D887,r2,0,4)
        dell(D87,r2,2,0)
        dell(NINI2,r3,0,3)
        dell(NINI1,r3,3,0)
        dell(D30,r4,0,2)
        dell(D887,r4,4,0)
        A=[[],[],[],[],[]]
        B=[[],[],[],[],['*']]
        C=[[],[],[],['*'],[]]
        D=[[],[],['*'],[],[]]
        E=[[],[],[],[],[]]
        r0=[A[0],B[0],C[0],D[0],E[0]]
        r1=[A[1],B[1],C[1],D[1],E[1]]
        r2=[A[2],B[2],C[2],D[2],E[2]]
        r3=[A[3],B[3],C[3],D[3],E[3]]
        r4=[A[4],B[4],C[4],D[4],E[4]]
        add(T25,r0,0,0)
        add(D11,r1,0,0)
        add(D887,r2,0,4)
        add(D87,r2,2,0)
        add(NINI2,r3,0,3)
        add(NINI1,r3,3,0)
        add(D30,r4,0,2)
        add(D887,r4,4,0)
        A=[r0[0],r1[0],r2[0],r3[0],r4[0]]
        B=[r0[1],r1[1],r2[1],r3[1],r4[1]]
        C=[r0[2],r1[2],r2[2],r3[2],r4[2]]
        D=[r0[3],r1[3],r2[3],r3[3],r4[3]]
        E=[r0[4],r1[4],r2[4],r3[4],r4[4]]
        F=0
        L=[A,B,C,D,E]
        m=0;n=0
        while m<5:
            while n<5:
                F=F+len((L[m])[n])
                n+=1
            m+=1
        l=len(T25)+len(D11)+len(D887)+len(D87)+len(NINI2)+len(NINI1)+len(D30)
    graph()
def v():
 def VZ2T25():
    a=0
    z=a**2
    while z<100000:
        Z2.append(z)
        r=0
        c=z
        while c>0:
            r=r+c%10
            c=c//10
        if r==25:
            c=z
            r=c%10
            if r not in E[0]:
                E[0].append(r)
            c=c//10
            r=c%10
            if r not in D[0]:
                D[0].append(r)
            c=c//10
            r=c%10
            if r not in C[0]:
                C[0].append(r)
            c=c//10
            r=c%10
            if r not in B[0]:
                B[0].append(r)
            c=c//10
            r=c%10
            if r not in A[0]:
                A[0].append(r)
            T25.append(z)
        a+=1
        z=a**2
 def VD11():
    z=11
    while z<100000:
            c=z
            r=c%10
            if r not in E[1]:
                E[1].append(r)
            c=c//10
            r=c%10
            if r not in D[1]:
                D[1].append(r)
            c=c//10
            r=c%10
            if r not in C[1]:
                C[1].append(r)
            c=c//10
            r=c%10
            if r not in B[1]:
                B[1].append(r)
            c=c//10
            r=c%10
            if r not in A[1]:
                A[1].append(r)
            D11.append(z)
            z=z+11
 def VD87():
    z=87
    while z<1000:
            c=z
            r=c%10
            if r not in C[2]:
                C[2].append(r)
            c=c//10
            r=c%10
            if r not in B[2]:
                B[2].append(r)
            c=c//10
            r=c%10
            if r not in A[2]:
                A[2].append(r)
            D87.append(z)
            z=z+87
 def VD887():
    z=88%7
    D887.append(z)
    E[2].append(z)
    A[4].append(z)
 def VNINI():
    z=2
    while z<100:
        r=z**0.5
        a=2
        d=0
        while a<=r:
            if z%a==0:
                d=d+1
            a+=1
        if d==0 :
            c=z
            r=c%10
            if r not in B[3]:
             B[3].append(r)
            if r not in E[3]:
             E[3].append(r)
            c=c//10
            r=c%10
            if r not in A[3]:
             A[3].append(r)
            if r not in D[3]:
             D[3].append(r)
            NINI1.append(z)
            NINI2.append(z)
            NINI3.append(z)
        z+=1
 def VD30():
    z=30
    while z<1000:
            c=z
            r=c%10
            if r not in E[4]:
                E[4].append(r)
            c=c//10
            r=c%10
            if r not in D[4]:
                D[4].append(r)
            c=c//10
            r=c%10
            if r not in C[4]:
                C[4].append(r)
            D30.append(z)
            z=z+30
 VZ2T25()
 VD11()
 VD87()
 VD887()
 VNINI()
 VD30()
def h():
 def HZ2T3024():
    l=len(Z2)
    n=0
    while n<l:
     z=Z2[n]
     c=z
     r=1
     while c>0:
         r=r*(c%10)
         c=c//10
     if r==3024:
      M3024.append(z)
     n+=1
 def HD7T19():
    z=7
    while z<10000:
        c=z
        r=0
        while c>0:
            r=r+c%10
            c=c//10
            if r==19:
                T19.append(z)
        z=z+7
 def HD187():
    z=187
    while z<1000:
        D187.append(z)
        z=z+187
 def HD7625():
    z=762%5
    D7625.append(z)
 def HZ3():
    a=0
    z=a**3
    while z<100:
        Z3.append(z)
        a+=1
        z=a**3
 def HD10():
    z=10
    while z<100000:
        D10.append(z)
        z+=10
 HZ2T3024()
 HD7T19()
 HD187()
 HD7625()
 HZ3()
 HD10()
def dell(x,y,j,p):
 c=len(x)
 n=0
 while n<c:
     z=x[n]
     l=z
     s=4
     g=j+p
     while g<5:
         r=l%10
         if r not in y[s-j]:
          x.remove(z)
          c-=1
          n-=1
          break
         l=l//10
         g+=1
         s-=1
     n+=1
def add(x,y,j,p):
 c=len(x)
 n=0
 while n<c:
     z=x[n]
     l=z
     s=4
     g=j+p
     while g<5:
          r=l%10
          if r not in y[s-j]:
           y[s-j].append(r)
          l=l//10
          g+=1
          s-=1
     n+=1
def graph():
    print'+-----+-----+-----+-----+-----+'
    print '|',A[0],'|',B[0],'|',C[0],'|',D[0],'|',E[0],'|'
    print'+-----+-----+-----+--------+--------+'
    print '|',A[1],'|',B[1],'|',C[1],'|',D[1],'|',E[1],'|'
    print'+-----+-----+-----+--------+--------+'
    print '|',A[2],'|',B[2],'|',C[2],'|',D[2],'','|',E[2],'  ','|'
    print'+-----+-----+-------+-----------+--------------------+'
    print '|',A[3],'|',B[3],'|',C[3],'|',D[3],'|',E[3],'|'
    print'+-----+-------+-----+-----------+------+-------------+'
    print '|',A[4],'|',B[4],'|',C[4],'|',D[4],'|',E[4],'','|'
    print'+-----+-------+-----+-----------+------+'

_Main_()
print l

كما هو ملاحظ لقد قمت بتصميم دوال لتوليد إحتمالات كل سؤال و وضعت الناتج بقوائم

ثم حذفت النتائج الغير مشتركة بين كل قائمتين متقاطعتين

 

أرجو من الأعضاء التعليق علي الكود

 

ملاحظة عدد الإحتمالات التي وجدتها هي 17 إحتمال.

1
#42

ارجو وضع الخطوة الاولى لان الموضوع يهمني ادرس حاليا python ومطلوب مني Project نهاية السمستر الى الان تعلمنا ال fanctions 

 

 

شكرا لك 

−1
#43

لم أفهم ما تريده بالضبط

 

إن لم تفهم شيئا معينا بالكود  او كنت تريد توضيح علي جزء معين فحدده  و سأوضحه لك

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…