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

حساب بدون تكرار

بدأه caballero في 5 مايو 2010 · 10 رد · 1,238 مشاهدة · في الرياضيات والخوارزميات
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

سأخرج اليوم عن النمط المتبع في المسائل السابقة.

السؤال: كم يوجد من عدد صحيح موجب يكتب بأرقام كلها مختلفة؟

مثلا، الأعداد 0، 8، 19، 542، ... مقبولة.

على عكس 33، 1821، 96373، ...

أرجو منك إرسال إجابتك على الخاص وإضافة رد هنا تذكر فيه إرسالك للإجابة.

سأعلن الحل بعد أيام.

بالتوفيق،، : )

1

MPSI/MP* - CPR Tanger

#3

أخي الكريم Speed_Of_Light

أشكرك على المشاركة.

رجاء تفقد رسائلك الخاصة.

MPSI/MP* - CPR Tanger

#4

السلام عليكم

مشكور أخي العزيز caballero على هذه المسألة

سوف أضع مشاركتي بعد أن يتاح للجميع أخذ الوقت للتفكير في هذه المسألة ...أو بعد أن تعلن انتهاء الزمن اللازم لحلها ..

مشكور مرة أخرى ..تقّبل مروري :)

تم تعديل هذه المشاركة بواسطة Devd في 6 مايو 2010 في 15:18

1
#5

تم ارسال حـــل :)

1

أشهد أن لا إله إلا الله وأشهد أن محمدا رسول الله

bnr025.gif

مـــوقـــعـــى

#6

السلام عليكم

الحل:

8877691

جميع المشاركين توصلوا للإجابة الصحيحة:

Speed_Of_Light

Devd

عماد حمدي احمد

لكم جزيل الشكر على المشاركة.

على خلاف العادة، لن أقترح حلا هذه المرة، بل سأترك للمشاركين وضع حلولهم وشرحها.

خالص التقدير،، : )

MPSI/MP* - CPR Tanger

#7

السلام عليكم:

هذا الطريقة الرياضية

mimetex.cgi?A=10+9*\sum\limits_{i=2}^{10

وهذا الكود بالسي :

#include <iostream>
using namespace std;


long Pn(int x,int y)
{
long t=1;
while(y--)
t*=x--;
return t;	
}

int main ()
{
long sum=0;	
for(int i=1;i<10;i++)	
sum+=9*Pn(9,i);
sum+=10;
cout<<sum<<endl;

}
tvquran_6.gif

#8
فهدالشلوي كتب:

السلام عليكم:

هذا الطريقة الرياضية

mimetex.cgi?A=10+9*\sum\limits_{i=2}^{10

بارك الله فيك أخى فهد ونفع بك.

لا تعطنى سمكة ولكن علمنى كيف اصطاد السمك :)

أشهد أن لا إله إلا الله وأشهد أن محمدا رسول الله

bnr025.gif

مـــوقـــعـــى

#9

لا يمكن للصفر أن يكون الرقم الأول

فعدد الطرق لكتابة عدد مؤلف من 10 خانات هو:

9*9*8*7*6*5*4*3*2*1 = 3265920

بنفس الطريقة من أجل عدد مؤلف من 9 أرقام، لكن لا يوجد سوى 9 خانات بالتالي عدد الطرق يكون :

9*9*8*7*6*5*4*3*2 = 3265920

بنفس الطريقة من أجل عدد مؤلف من 8 أرقام، لكن لا يوجد سوى 8 خانات بالتالي عدد الطرق يكون :

9*9*8*7*6*5*4*3= 1632960 (أي كأننا قسمنا عدد الطرق الممكنة لتشكيل عدد من 10 أرقام على 2)

بنفس الطريقة من أجل عدد مؤلف من 8 أرقام، لكن لا يوجد سوى 8 خانات بالتالي عدد الطرق يكون :

9*9*8*7*6*5*4= 544320 (أي كأننا قسمنا عدد الطرق الممكنة لتشكيل عدد من 8 أرقام على 3)

أو كأننا قسمنا عدد الطرق الممكنة لتشكيل عدد من 10 أرقام على 2*3 = 3!

ونستمر على هذا المنوال حتى نستنتج القانون العام من أجل عدد خانات p وعدد أرقام n:

p><p>

الواحد الأخيرة التي تم إضافتها هي العدد 0 -وهي الحالة الوحيدة التي يمكن أن يكون فيها الرقم الأول بالعدد-

أخيراً -وقبل أن أنسى !- جواب السؤال سيصبح:

3265920 + 3265920 + 1632960 + 544320 + 136080 + 27216 + 4536 + 648 + 81 + 10 = 8877691

تم تعديل هذه المشاركة بواسطة Speed_Of_Light في 9 مايو 2010 في 21:31

#10

السلام عليكم

ما بـــ بعقلي قد عبّر عنه الاخوين فهد و Speed_Of_Light ..لذا لا اضافة على كلامهما ..شكرا" لكما :)

#11

حل برمجى باستخدام ال C# لأنى ماليش فى الرياضيات قوى

ممكن يكون غبى شويه أو ليس صحيح ولكن حبيت أضع محاولاتى

ملحوظه لاتحاولوا تنفيذ الكود لأنه يأخذ وقت كبير جدا فى التنفيذ

    static void Main(string[] args)
        {
            long c = 9876543210;
            long count = 0;

            for (long i = 10 ; i <= c; i++)
            {
                string s = Convert.ToString(i);
                char[] arr = s.ToCharArray();
                bool tf = IsRepeated(arr);
                if ( tf == false)
                {
                    count++;
                }
            }

            Console.WriteLine(count + 9);
            Console.ReadKey();
        }



        private static bool IsRepeated(char[] sArray)
        {
            var sList = new ArrayList();

            foreach (char c in sArray)
            {
                if (sList.Contains(c) == false)
                {
                    sList.Add(c);
                }
            }

            if (sList.Count <= 2)
                return true;
            else
                return false;

        }

 وممّا زادنـــي شرفــاً وتيهــاً   **  وكدت بأخمصي أطأ الثريّا

دخولي تحت قولك يا عبادي  **   وأن صيّرت أحمد لي نبيّـاً

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