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

عدد غامض

بدأه caballero في 25 أكتوبر 2009 · 16 رد · 2,168 مشاهدة · في الرياضيات والخوارزميات
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

الهدف هو إيجاد عدد من 9 أرقام، يضم جميع الأرقام من 1 إلى 9 مرة واحدة. أي أنه يكتب على الشكل abcdefghi

خصائص هذ العدد:

العدد "ab" المتكون من 2 أرقام الأولى، يقبل القسمة على 2.

العدد "abc" المتكون من 3 أرقام الأولى، يقبل القسمة على 3.

العدد "abcd" المتكون من 4 أرقام الأولى، يقبل القسمة على 4.

العدد "abcde" المتكون من 5 أرقام الأولى، يقبل القسمة على 5.

العدد "abcdef" المتكون من 6 أرقام الأولى، يقبل القسمة على 6.

العدد "abcdefg" المتكون من 7 أرقام الأولى، يقبل القسمة على 7.

العدد "abcdefgh" المتكون من 8 أرقام الأولى، يقبل القسمة على 8.

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

إذا كنت تظن بأن هذا العدد غير موجود، أجب بـ "المسألة مستحيلة" مع توضيح السبب. إذا كان هناك أكثر من حل، فيكفي أن ترسل لي واحدا على الخاص، وإضافة رد هنا تذكر فيه إرسالك للإجابة.

سأعلن النتائج بعد 3 أو 4 أيام.

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

تم تعديل هذه المشاركة بواسطة caballero في 25 أكتوبر 2009 في 04:59

MPSI/MP* - CPR Tanger

#2
caballero كتب:
السلام عليكم

الهدف هو إيجاد عدد من 9 أرقام، يضم جميع الأرقام من 1 إلى 9 مرة واحدة. أي أنه يكتب على الشكل abcdefghi

خصائص هذ العدد:

العدد "ab" المتكون من 2 أرقام الأولى، يقبل القسمة على 2.

العدد "abc" المتكون من 3 أرقام الأولى، يقبل القسمة على 3.

العدد "abcd" المتكون من 4 أرقام الأولى، يقبل القسمة على 4.

العدد "abcde" المتكون من 5 أرقام الأولى، يقبل القسمة على 5.

العدد "abcdef" المتكون من 6 أرقام الأولى، يقبل القسمة على 6.

العدد "abcdefg" المتكون من 7 أرقام الأولى، يقبل القسمة على 7.

العدد "abcdefgh" المتكون من 8 أرقام الأولى، يقبل القسمة على 8.

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

ما هو ترتيب a,b,c,...,i. اقصد هل الحرف a يقع فى خانة الاحاد ام الحرف i؟

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

bnr025.gif

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

#3

الحرف i يقع في خانة الآحاد.

أعتذر عن الإلتباس.

MPSI/MP* - CPR Tanger

#4

السلام عليكــم ورحمـة الله وبركاتــه ،،

لقد تمكنت بحمد لله من ايجاد حل واحد وأنا على يقين من عدم وجود غيره وقد بعثت لك الاجابة على الخاص..تحياتي

تم تعديل هذه المشاركة بواسطة akramKamal في 25 أكتوبر 2009 في 17:00

قولوا لا اله الا الله تفلحوا

ومن يبتغي غير الاسلام دينا فلن يقبل منه وهو في الاخرة من الخاسرين- صدق الله العظيم

#5
اقتباس
السلام عليكــم ورحمـة الله وبركاتــه ،،

لقد تمكنت بحمد لله من ايجاد حل واحد وأنا على يقين من عدم وجود غيره وقد بعثت لك الاجابة على الخاص..تحياتي

#6
caballero كتب:
الحرف i يقع في خانة الآحاد.

أعتذر عن الإلتباس.

بارك الله فيك اخى الفاضل. بس ما قلتش عاوز حل رياضى ولا برمجى؟ :)

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

bnr025.gif

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

#7

أنا مهتم بمعرفة جميع الطرق الممكنة.

MPSI/MP* - CPR Tanger

#8
caballero كتب:
أنا مهتم بمعرفة جميع الطرق الممكنة.

حصلت على الرقم برمجيا , ولكنى اعلم ان هذا ليس ما تريده :P

وحاولت رياضيا لكن فشلت :)

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

bnr025.gif

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

#9

السلام عليكم

الحل الوحيد:

381654729

من توصل للحل حسب الترتيب الزمني:

akramKamal

Devd

أشكركما على المشاركة.. كما أرجو منكما أن تشرحا كيف توصلتما للإجابة حتى تعم الفائدة.

عماد حمدي احمد كتب:
حصلت على الرقم برمجيا , ولكنى اعلم ان هذا ليس ما تريده

كنت أرجو أن تبعث به، فجميع الطرق مقبولة.

ربما تستطيع مشاركتنا بالكود.

من الطرق الممكنة:

لدينا mimetex.cgi?9!=362880 عدد نفحصه. وبما أن نص المسألة يشير إلى إحتمال إستحالتها، يتوجب علينا في البداية التحقق من إمكانية وجود العدد المطلوب.

mimetex.cgi?1+2+...+9=45 يقبل القسمة على 9. هذا شرط لازم، ولكنه غير كاف.

(لو وجدنا العكس، لتوقفنا فورا)

هذا العدد يكتب على الشكل abcdefghi

العدد abcde يقبل القسمة على 5. إذن هذا العدد ينتهي بـ 0 أو 5. وبما أن تلك الأرقام كلها تخالف 0، فإن mimetex.cgi?e=5

الأرقام a و c و g و i ترتيبها فردي. لذلك ستأخذ القيم التالية فقط: 1 أو 3 أو 7 أو 9.

والأرقام التي ترتيبها زوجي، ستأخذ باقي القيم الزوجية.

يجب أن تشكل الأرقام c و d مضاعفا لـ 4. وبما أن c فردي، فإن القيم الممكنة لـ d هي 2 و 6.

الرقم h سيأخذ إحدى القيمتين السابقتين لنفس السبب.

فتبقى القيمتان 4 و 8 للرقمين b و f.

بما أن f زوجي، فإن على gh أن يكون مضاعفا لـ 8. وهذا يعطينا ثلاثة إمكانيات: 32 أو 72 أو 96.

لن نناقش على الرقم i لأن العدد يقبل القسمة بالضرورة على 9.

يبقى أمامنا البحث عن مضاعفات 3 و 7.

مجموع 5 والرقمين المحيطين به يقبل القسمة على 3.

تبقى لنا إمكانيتان:

mimetex.cgi?a4c258g6i

mimetex.cgi?a8c654g2i

في الحالة الأولى، الرقم g سيأخذ القيمة 9 كما قلنا أعلاه. ولكن هذا لن يحقق الخاصية السابعة للعدد.

في الحالة الثانية، سنجد 8 أعداد ممكنة:

789654321

987654321

189654327

981654327

189654723

981654723

183654729

381654729

ووحده فقط mimetex.cgi?%5Cred%20381654729 يحقق جميع الشروط.

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

MPSI/MP* - CPR Tanger

#10

السلام عليكــم ورحمـة الله وبركاتــه ،،

اقتباس
مجموع 5 والرقمين المحيطين به يقبل القسمة على 3.

أعتقد ان كل المسألة تقوم على هذه الفكرة .... :thumb_down:

يمكن ان اضيف بالنهاية خوارزمية برمجية بسيطة لحل المطلوب كتبتها بالماتلاب... الكود مع التعليقات في الملف المرفق:

post-76890-1256726078_thumb.jpg

مشكور أخ caballero على هذه اللعبة :mellow:

puzzle.rar

#11

هذا الكود للحصول على الرقم المطلوب فى اقل من ثانية واحدة بـ 6.0 ++VC

post-168958-1256729889_thumb.jpg

381654729

  1. #include "stdafx.h"
  2.  
  3. int main(int argc, char* argv[])
  4. {
  5. long x;
  6. CArray<long, long&> init, numbers;
  7.  
  8. for(x=1; x<=9; x++)
  9. init.Add(x);
  10.  
  11. for(x=2; x<=9; x++)
  12. {
  13. for(int n=0; n<init.GetSize(); n++)
  14. for(int l=1; l<=9; l++)
  15. {
  16. long num = init[n];
  17. int g = (int)log10(num) + 1;
  18. long t = num;
  19. bool bexist=false;
  20. for(int i=1; i<=g; i++)
  21. {
  22. long m;
  23. m = t % 10;
  24. if (m == l)
  25. {
  26. bexist=true;
  27. break;
  28. }
  29. t = (long)(t / 10);
  30. }
  31. if (bexist==false)
  32. {
  33. t = num*10 + l;
  34. if (!(t%x))
  35. {
  36. numbers.Add(t);
  37. printf("Checking ... %drn", t);
  38. }
  39. }
  40. }
  41. init.RemoveAll();
  42. for(int ok=0; ok<numbers.GetSize(); ok++)
  43. init.Add(numbers[ok]);
  44. numbers.RemoveAll();
  45. }
  46. printf("rnNumber is: %drn", init[0]);
  47. getchar();
  48.  
  49. return 0;
  50. }
  51.  

Obscure.zip

#12

الفكرة هي بإيجاد جميع التباديل ومن ثم فحص كل رقم على حده داخل جملة for

الخوارزمية كتبتها على لغة السي شارب وهي :

List<int[]> AllPermutations = new List<int[]>();
		int[] nums = new int[9];
		//nums is the input numbers 
		//m is the numbers will be Permutations
		void GetPermutations(int[] nums, int m)
		{
			if (m == 0)
			{
				AllPermutations.Add((int[])nums.Clone());
				return;
			}
			else
			{
				for (int i = 0; i < nums.Length; i++)
				{
					if (nums == 0)
					{
						nums = m;
						GetPermutations(nums, m - 1);
						nums = 0;
					}
				}
			}
		}

		private void button1_Click(object sender, EventArgs e)
		{
			listBox1.Items.Clear();
			foreach (int[] num in AllPermutations)
				if (IsAcceptedNumber(num))
					listBox1.Items.Add(ToNumber(num, 9) + "");
		}

		bool IsAcceptedNumber(int[] num)
		{
			for (int i = 2; i < 9; i++)
			{
				long cc = ToNumber(num, i);
				if (cc % i != 0) return false;
			}
			return true;
		}

		long ToNumber(int[] num,int length)
		{
			long result = 0;
			for (int i = length-1; i > -1; i--)
			{
				result += num * (long)Math.Pow(10, length - i-1);
			}
			return result;
		}

وشكرا ..

قولوا لا اله الا الله تفلحوا

ومن يبتغي غير الاسلام دينا فلن يقبل منه وهو في الاخرة من الخاسرين- صدق الله العظيم

#13

شكرا على إستجابتكم السريعة.

ولو أني كنت أرجو أن أرى حلا رياضيا خالصا.

Devd كتب:
أعتقد ان كل المسألة تقوم على هذه الفكرة .... :thumb_down:

عذرا، لم أفهم ما الذي تقصده بهذه الإبتسامة.

MPSI/MP* - CPR Tanger

#14

اخ akramKamal

كود سى شارب الذى طرحته لا يعطى نتائج

راقب أفكارك ... لأنها تصبح كلمات

راقب كلماتك ... لأنها تصبح أفعالاً

راقب أفعالك ... لأنها تصبح عادات

راقب عاداتك ... لأنها تصبح شخصيتك

راقب شخصيتك ... لأنها تصبح مصيرك

#15

عفوا أنا وضعت الكود المستخدم في طريقة الحل ...

المهم .. اذا كنت مهتم بالسي شارب هذا هو المشروع بالكامل في المرفقات

StrangeNumber.rar

قولوا لا اله الا الله تفلحوا

ومن يبتغي غير الاسلام دينا فلن يقبل منه وهو في الاخرة من الخاسرين- صدق الله العظيم

#16

بدأت البرمجة لتوي وهذه طريقة للحل حسب القواعد الأساسية التي تعلمتها : :blush: :unsure: :blink: [Python]

sanstitreozl.png

الكود غير منسق :wub:

تم تعديل هذه المشاركة بواسطة The_IfL في 5 فبراير 2010 في 00:12

I'm Away For Sometimes

I'll Finish My Works

Come Back Soon

More Study > More Search > More Try > More Learning > Great Success

#17

عدرا الكود لا يحتوي على فكرة مبدعة .......

لقد بدأت البرمجة توا ......... :blush:

I'm Away For Sometimes

I'll Finish My Works

Come Back Soon

More Study > More Search > More Try > More Learning > Great Success

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