3 দ্বারা 3 টি শক্তিশালী স্কোয়ার মুদ্রণ করুন


24

একটি শক্তিশালী স্কোয়ার ( যাদুর স্কোয়ারের সমতুল্য ) একটি এন এন গ্রিডে 1 থেকে 2 2 এর পূর্ণসংখ্যার একটি বিন্যাস যা প্রতিটি 2 বাই 2 সাবগ্রিডের সমান হয়।

উদাহরণস্বরূপ, এন = 3 এর জন্য একটি শক্ত বর্গক্ষেত্র

1 5 3
9 8 7
4 2 6

কারণ 4 2 বাই 2 সাবগ্রিডগুলি

1 5
9 8
5 3
8 7
9 8
4 2
8 7
2 6

সমস্ত পরিমাণ একই পরিমাণে, 23:

23 = 1 + 5 + 9 + 8 = 5 + 3 + 8 + 7 = 9 + 8 + 4 + 2 = 8 + 7 + 2 + 6

এখন এন এর উচ্চতর মানের এবং এমনকি আয়তক্ষেত্রাকার সংস্করণের জন্য শক্তিশালী স্কোয়ার রয়েছে তবে এই চ্যালেঞ্জটিতে আপনার একমাত্র কাজ হ'ল সম্ভাব্য 3 বাই 3 শক্তিশালী স্কোয়ার আউটপুট। অন্যের প্রতিচ্ছবি বা ঘূর্ণনগুলি সহ মোট 3 টি 3 টি শক্ত বর্গক্ষেত্রের ঠিক 376 স্বতন্ত্র স্কোয়ার রয়েছে এবং তাদের সকলের 23 টির সমান পরিমাণ নেই।

এমন একটি প্রোগ্রাম বা ফাংশন লিখুন যা কোনও ইনপুট নেয় না তবে খালি রেখাগুলি দ্বারা পৃথক করে দুটি alচ্ছিক ট্রেলিং নিউলাইনগুলি সহ, কোনও ক্রমে সমস্ত 376 বলিষ্ঠ স্কোয়ারের স্ট্রিং প্রিন্ট করে বা ফেরত দেয়। প্রতিটি বর্গক্ষেত্রে তিনটি স্থান পৃথক পৃথক ননজারো দশমিক অঙ্কের তিনটি লাইন সমন্বিত হওয়া উচিত।

এখানে একটি বৈধ আউটপুট উদাহরণ:

1 5 3
9 8 7
4 2 6

1 5 6
8 7 3
4 2 9

1 5 6
8 9 3
2 4 7

1 5 7
9 6 3
2 4 8

1 6 2
8 9 7
4 3 5

1 6 2
9 7 8
4 3 5

1 6 3
9 8 7
2 5 4

1 6 7
8 5 2
3 4 9

1 6 7
9 4 3
2 5 8

1 7 2
9 4 8
5 3 6

1 7 2
9 6 8
3 5 4

1 7 4
8 3 5
6 2 9

1 7 4
9 2 6
5 3 8

1 7 6
9 2 4
3 5 8

1 8 2
5 9 4
6 3 7

1 8 3
6 5 4
7 2 9

1 8 3
9 2 7
4 5 6

1 8 4
5 7 2
6 3 9

1 8 4
6 9 3
2 7 5

1 8 4
9 3 6
2 7 5

1 8 6
7 3 2
4 5 9

1 9 2
5 6 4
7 3 8

1 9 2
6 4 5
7 3 8

1 9 2
6 8 5
3 7 4

1 9 2
8 3 7
4 6 5

1 9 3
7 2 5
6 4 8

1 9 3
7 6 5
2 8 4

1 9 4
5 8 2
3 7 6

1 9 4
6 7 3
2 8 5

1 9 4
8 2 5
3 7 6

1 9 5
7 2 3
4 6 8

1 9 5
7 4 3
2 8 6

2 3 5
9 8 6
4 1 7

2 3 6
9 7 5
4 1 8

2 4 3
8 9 7
5 1 6

2 4 3
9 7 8
5 1 6

2 4 6
7 8 3
5 1 9

2 4 7
8 9 3
1 5 6

2 4 8
9 6 3
1 5 7

2 5 3
9 4 8
6 1 7

2 5 4
9 3 7
6 1 8

2 5 4
9 8 7
1 6 3

2 5 7
6 8 1
4 3 9

2 5 7
6 9 1
3 4 8

2 5 8
7 6 1
3 4 9

2 5 8
9 4 3
1 6 7

2 6 1
7 9 8
5 3 4

2 6 1
8 7 9
5 3 4

2 6 3
5 9 4
7 1 8

2 6 4
5 8 3
7 1 9

2 6 7
9 1 4
3 5 8

2 6 8
7 4 1
3 5 9

2 7 1
8 4 9
6 3 5

2 7 1
8 6 9
4 5 3

2 7 3
5 6 4
8 1 9

2 7 3
6 4 5
8 1 9

2 7 3
9 1 8
5 4 6

2 7 5
4 8 1
6 3 9

2 7 5
6 9 3
1 8 4

2 7 5
9 3 6
1 8 4

2 8 1
4 9 5
7 3 6

2 8 4
7 6 5
1 9 3

2 8 5
4 9 1
3 7 6

2 8 5
6 7 3
1 9 4

2 8 6
7 4 3
1 9 5

2 9 1
4 6 5
8 3 7

2 9 1
5 4 6
8 3 7

2 9 1
5 8 6
4 7 3

2 9 1
7 3 8
5 6 4

2 9 3
6 1 5
7 4 8

2 9 4
3 7 1
6 5 8

2 9 4
3 8 1
5 6 7

2 9 5
4 7 1
3 8 6

2 9 5
7 1 4
3 8 6

2 9 6
5 3 1
4 7 8

2 9 6
5 4 1
3 8 7

3 2 5
9 8 7
4 1 6

3 2 6
8 9 5
4 1 7

3 2 7
9 6 5
4 1 8

3 4 2
7 9 8
6 1 5

3 4 2
8 7 9
6 1 5

3 4 5
9 2 7
6 1 8

3 4 8
6 9 1
2 5 7

3 4 9
7 6 1
2 5 8

3 4 9
8 5 2
1 6 7

3 5 1
7 8 9
6 2 4

3 5 2
8 4 9
7 1 6

3 5 4
9 1 8
6 2 7

3 5 4
9 6 8
1 7 2

3 5 8
9 1 4
2 6 7

3 5 8
9 2 4
1 7 6

3 5 9
7 4 1
2 6 8

3 6 1
7 8 9
4 5 2

3 6 2
4 9 5
8 1 7

3 6 8
7 1 2
4 5 9

3 7 2
4 6 5
9 1 8

3 7 2
5 4 6
9 1 8

3 7 2
8 1 9
6 4 5

3 7 4
6 1 5
8 2 9

3 7 4
6 8 5
1 9 2

3 7 6
4 9 1
2 8 5

3 7 6
5 8 2
1 9 4

3 7 6
8 2 5
1 9 4

3 8 1
4 5 6
9 2 7

3 8 1
7 2 9
6 5 4

3 8 4
2 9 1
6 5 7

3 8 6
4 7 1
2 9 5

3 8 6
7 1 4
2 9 5

3 8 7
5 4 1
2 9 6

3 9 1
5 2 7
8 4 6

3 9 1
5 6 7
4 8 2

3 9 2
5 1 6
8 4 7

3 9 4
2 6 1
7 5 8

3 9 4
2 8 1
5 7 6

3 9 6
4 2 1
5 7 8

3 9 6
5 1 2
4 8 7

4 1 6
9 8 7
3 2 5

4 1 7
8 9 5
3 2 6

4 1 7
9 8 6
2 3 5

4 1 8
9 6 5
3 2 7

4 1 8
9 7 5
2 3 6

4 2 6
9 8 7
1 5 3

4 2 7
6 9 3
5 1 8

4 2 7
9 3 6
5 1 8

4 2 8
7 6 3
5 1 9

4 2 9
8 7 3
1 5 6

4 3 5
8 9 7
1 6 2

4 3 5
9 2 8
6 1 7

4 3 5
9 7 8
1 6 2

4 3 7
5 8 2
6 1 9

4 3 7
8 2 5
6 1 9

4 3 7
9 1 6
5 2 8

4 3 9
6 8 1
2 5 7

4 5 2
7 3 9
8 1 6

4 5 2
7 8 9
3 6 1

4 5 3
8 1 9
7 2 6

4 5 3
8 6 9
2 7 1

4 5 6
3 8 1
7 2 9

4 5 6
9 2 7
1 8 3

4 5 9
7 1 2
3 6 8

4 5 9
7 3 2
1 8 6

4 6 2
3 8 5
9 1 7

4 6 5
2 9 1
7 3 8

4 6 5
8 3 7
1 9 2

4 6 8
7 2 3
1 9 5

4 7 1
5 3 8
9 2 6

4 7 1
6 2 9
8 3 5

4 7 3
5 1 6
9 2 8

4 7 3
5 8 6
2 9 1

4 7 5
2 6 1
8 3 9

4 7 8
5 3 1
2 9 6

4 8 1
2 7 5
9 3 6

4 8 1
3 9 6
5 7 2

4 8 1
6 3 9
5 7 2

4 8 2
5 6 7
3 9 1

4 8 3
1 9 2
7 5 6

4 8 6
3 2 1
7 5 9

4 8 7
5 1 2
3 9 6

4 9 1
2 8 5
6 7 3

4 9 1
3 7 6
5 8 2

4 9 1
5 2 8
6 7 3

4 9 2
1 7 3
8 5 6

4 9 2
1 8 3
7 6 5

4 9 3
1 6 2
8 5 7

4 9 3
1 8 2
6 7 5

4 9 5
2 3 1
7 6 8

4 9 5
3 1 2
7 6 8

4 9 6
3 2 1
5 8 7

5 1 6
8 9 7
2 4 3

5 1 6
9 7 8
2 4 3

5 1 8
6 9 3
4 2 7

5 1 8
9 3 6
4 2 7

5 1 9
7 6 3
4 2 8

5 1 9
7 8 3
2 4 6

5 2 3
7 8 9
6 1 4

5 2 8
7 3 4
6 1 9

5 2 8
9 1 6
4 3 7

5 3 2
6 8 9
7 1 4

5 3 4
7 9 8
2 6 1

5 3 4
8 2 9
7 1 6

5 3 4
8 7 9
2 6 1

5 3 6
9 4 8
1 7 2

5 3 8
4 7 1
6 2 9

5 3 8
7 1 4
6 2 9

5 3 8
9 2 6
1 7 4

5 4 3
7 2 9
8 1 6

5 4 6
3 7 2
8 1 9

5 4 6
9 1 8
2 7 3

5 6 4
1 9 2
8 3 7

5 6 4
7 3 8
2 9 1

5 6 7
3 8 1
2 9 4

5 7 2
1 8 4
9 3 6

5 7 2
3 9 6
4 8 1

5 7 2
6 3 9
4 8 1

5 7 4
1 6 2
9 3 8

5 7 6
2 3 1
8 4 9

5 7 6
2 8 1
3 9 4

5 7 6
3 1 2
8 4 9

5 7 8
4 2 1
3 9 6

5 8 2
1 9 4
6 7 3

5 8 2
3 7 6
4 9 1

5 8 7
3 2 1
4 9 6

5 9 1
3 2 7
8 6 4

5 9 1
3 4 7
6 8 2

5 9 2
1 7 4
6 8 3

5 9 2
4 1 7
6 8 3

5 9 4
1 3 2
8 6 7

5 9 4
2 1 3
8 6 7

6 1 4
7 8 9
5 2 3

6 1 5
7 9 8
3 4 2

6 1 5
8 7 9
3 4 2

6 1 7
9 2 8
4 3 5

6 1 7
9 4 8
2 5 3

6 1 8
9 2 7
3 4 5

6 1 8
9 3 7
2 5 4

6 1 9
5 8 2
4 3 7

6 1 9
7 3 4
5 2 8

6 1 9
8 2 5
4 3 7

6 2 3
5 9 8
7 1 4

6 2 4
7 8 9
3 5 1

6 2 7
9 1 8
3 5 4

6 2 8
5 4 3
7 1 9

6 2 9
4 7 1
5 3 8

6 2 9
7 1 4
5 3 8

6 2 9
8 3 5
1 7 4

6 3 2
5 7 9
8 1 4

6 3 5
8 4 9
2 7 1

6 3 7
5 2 4
8 1 9

6 3 7
5 9 4
1 8 2

6 3 9
4 8 1
2 7 5

6 3 9
5 7 2
1 8 4

6 4 2
3 8 7
9 1 5

6 4 5
2 7 3
9 1 8

6 4 5
8 1 9
3 7 2

6 4 8
7 2 5
1 9 3

6 5 1
3 7 8
9 2 4

6 5 1
3 9 8
7 4 2

6 5 4
1 8 3
9 2 7

6 5 4
7 2 9
3 8 1

6 5 7
2 4 1
8 3 9

6 5 7
2 9 1
3 8 4

6 5 8
3 2 1
7 4 9

6 5 8
3 7 1
2 9 4

6 7 1
4 2 9
8 5 3

6 7 3
1 9 4
5 8 2

6 7 3
2 8 5
4 9 1

6 7 3
5 2 8
4 9 1

6 7 5
1 3 2
9 4 8

6 7 5
1 8 2
4 9 3

6 7 5
2 1 3
9 4 8

6 8 1
2 3 7
9 5 4

6 8 2
3 4 7
5 9 1

6 8 3
1 7 4
5 9 2

6 8 3
4 1 7
5 9 2

6 8 4
1 2 3
9 5 7

6 9 2
1 3 5
8 7 4

6 9 2
1 4 5
7 8 3

6 9 3
1 2 4
8 7 5

6 9 3
2 1 5
7 8 4

6 9 4
1 2 3
7 8 5

7 1 4
5 9 8
6 2 3

7 1 4
6 8 9
5 3 2

7 1 6
8 2 9
5 3 4

7 1 6
8 4 9
3 5 2

7 1 8
5 9 4
2 6 3

7 1 9
5 4 3
6 2 8

7 1 9
5 8 3
2 6 4

7 2 3
5 6 9
8 1 4

7 2 4
3 9 6
8 1 5

7 2 4
6 3 9
8 1 5

7 2 6
8 1 9
4 5 3

7 2 9
3 8 1
4 5 6

7 2 9
6 5 4
1 8 3

7 3 4
2 8 5
9 1 6

7 3 4
5 2 8
9 1 6

7 3 4
6 1 9
8 2 5

7 3 6
4 2 5
9 1 8

7 3 6
4 9 5
2 8 1

7 3 8
2 9 1
4 6 5

7 3 8
5 6 4
1 9 2

7 3 8
6 4 5
1 9 2

7 4 2
3 9 8
6 5 1

7 4 8
6 1 5
2 9 3

7 4 9
3 2 1
6 5 8

7 5 1
3 6 9
8 4 2

7 5 2
1 8 6
9 3 4

7 5 2
1 9 6
8 4 3

7 5 6
1 4 2
9 3 8

7 5 6
1 9 2
4 8 3

7 5 8
2 6 1
3 9 4

7 5 9
3 2 1
4 8 6

7 6 1
2 5 8
9 4 3

7 6 1
3 4 9
8 5 2

7 6 2
4 1 9
8 5 3

7 6 5
1 8 3
4 9 2

7 6 8
2 3 1
4 9 5

7 6 8
3 1 2
4 9 5

7 8 3
1 4 5
6 9 2

7 8 4
2 1 5
6 9 3

7 8 5
1 2 3
6 9 4

8 1 4
5 6 9
7 2 3

8 1 4
5 7 9
6 3 2

8 1 5
3 9 6
7 2 4

8 1 5
6 3 9
7 2 4

8 1 6
7 2 9
5 4 3

8 1 6
7 3 9
4 5 2

8 1 7
4 9 5
3 6 2

8 1 9
3 7 2
5 4 6

8 1 9
5 2 4
6 3 7

8 1 9
5 6 4
2 7 3

8 1 9
6 4 5
2 7 3

8 2 4
3 6 7
9 1 5

8 2 5
4 3 7
9 1 6

8 2 5
6 1 9
7 3 4

8 2 6
3 4 5
9 1 7

8 2 9
6 1 5
3 7 4

8 3 5
1 7 4
9 2 6

8 3 5
4 1 7
9 2 6

8 3 5
6 2 9
4 7 1

8 3 7
1 9 2
5 6 4

8 3 7
4 6 5
2 9 1

8 3 7
5 4 6
2 9 1

8 3 9
2 4 1
6 5 7

8 3 9
2 6 1
4 7 5

8 4 2
3 6 9
7 5 1

8 4 3
1 9 6
7 5 2

8 4 6
5 2 7
3 9 1

8 4 7
5 1 6
3 9 2

8 4 9
2 3 1
5 7 6

8 4 9
3 1 2
5 7 6

8 5 2
1 6 7
9 4 3

8 5 2
3 4 9
7 6 1

8 5 3
4 1 9
7 6 2

8 5 3
4 2 9
6 7 1

8 5 6
1 2 3
9 4 7

8 5 6
1 7 3
4 9 2

8 5 7
1 6 2
4 9 3

8 6 2
1 4 7
9 5 3

8 6 3
2 1 7
9 5 4

8 6 4
3 2 7
5 9 1

8 6 7
1 3 2
5 9 4

8 6 7
2 1 3
5 9 4

8 7 4
1 3 5
6 9 2

8 7 5
1 2 4
6 9 3

9 1 5
3 6 7
8 2 4

9 1 5
3 8 7
6 4 2

9 1 6
2 8 5
7 3 4

9 1 6
4 3 7
8 2 5

9 1 6
5 2 8
7 3 4

9 1 7
3 4 5
8 2 6

9 1 7
3 8 5
4 6 2

9 1 8
2 7 3
6 4 5

9 1 8
4 2 5
7 3 6

9 1 8
4 6 5
3 7 2

9 1 8
5 4 6
3 7 2

9 2 4
3 7 8
6 5 1

9 2 6
1 7 4
8 3 5

9 2 6
4 1 7
8 3 5

9 2 6
5 3 8
4 7 1

9 2 7
1 8 3
6 5 4

9 2 7
4 5 6
3 8 1

9 2 8
5 1 6
4 7 3

9 3 4
1 8 6
7 5 2

9 3 6
1 8 4
5 7 2

9 3 6
2 7 5
4 8 1

9 3 8
1 4 2
7 5 6

9 3 8
1 6 2
5 7 4

9 4 3
1 6 7
8 5 2

9 4 3
2 5 8
7 6 1

9 4 7
1 2 3
8 5 6

9 4 8
1 3 2
6 7 5

9 4 8
2 1 3
6 7 5

9 5 3
1 4 7
8 6 2

9 5 4
2 1 7
8 6 3

9 5 4
2 3 7
6 8 1

9 5 7
1 2 3
6 8 4

আপনার প্রোগ্রামটি অবশ্যই এই একই 376 বলিষ্ঠ স্কোয়ারগুলি তৈরি করতে হবে, কেবল এই ক্রমে প্রয়োজনীয় নয়। আউটপুটটি ডিটারমিনিস্টিক হওয়ার দরকার নেই, আপনি যতক্ষণ না সেগুলি রয়েছেন ততক্ষণ আপনি বিভিন্ন রানে বিভিন্ন ক্রমে এগুলি আউটপুট দিতে পারেন।

বাইটের মধ্যে সংক্ষিপ্ততম কোডটি জয়ী।

শক্তিশালী স্কোয়ারগুলির বিষয়টি আমার এই চ্যাট বার্তার মাধ্যমে উদ্ভূত হয়েছিল যা তাদের সম্পত্তি এবং কীভাবে সেগুলি তৈরি করতে পারে তা নিয়ে প্রচুর আলোচনার জন্ম দেয়। থেকে সাজসরঞ্জাম পিটার টেলর , feersum এবং Sp3000 আলোচনা অবিরত রাখার জন্য, বিশেষ করে করতে El'endia Starman জন্য খসড়া একটি সংশ্লিষ্ট OEIS ক্রম


আমি নিশ্চিত নই যে আমি অনুবর্তী নতুন লাইনের নিয়মটি সঠিকভাবে ব্যাখ্যা করেছি কিনা। আমার পূর্ববর্তী পুনর্বিবেচনার ফলাফলটি শেষ হয়েছে 5 7 3\n\n, সুতরাং শেষ বর্গাকার পরে একটি ফাঁকা রেখা আছে। এটা কি গ্রহণযোগ্য?
ডেনিস

2
ইয়ায়ে আমি অতিরিক্ত প্রপস পাই! : পি
এল'েন্দিয়া স্টারম্যান

সম্ভবত অন্য কোথাও আউটপুট হোস্ট করুন যাতে এটি এই পৃষ্ঠায় খুব বেশি দীর্ঘ না হয়।
রায়ান

উত্তর:


9

পাইথ, 38 34 33 32 বাইট

Vfq2l{sMX2.DR2.:T5b.pS9Vc3NjdH)k

জাকুবে ফর্ম্যাটে 5 বাইট সংরক্ষণ করেছেন

পিটার টেলরের সাবস্ট্রিংগুলিতে পাঁচটি দৈর্ঘ্যের স্যুইচিংয়ের মাধ্যমে 1 বাইট সংরক্ষণ করা হয়েছে, বিভ্রান্তির পদ্ধতির সরান

আমার মেশিনে চালাতে প্রায় দেড় মিনিট সময় নেয়।

এটি উচ্চ স্তরে কীভাবে কাজ করে:

  • সমস্ত ক্রম উত্পাদন ( .pS9)

  • ফর্ম দৈর্ঘ্য 5 সাবস্ট্রিং ( .:T5)

  • প্রতিটি ( .DR2) এর কেন্দ্র উপাদান সরিয়ে ফেলুন

  • অপরিহার্যভাবে আলাদা যোগফল ( X2 ... b) দিয়ে চিহ্নিত করে কেন্দ্রের উপাদানটিতে একটি নতুন লাইন যুক্ত করুন

  • স্কোয়ারগুলিতে ফিল্টার করুন যেখানে এই জাতীয় সমস্ত পরিমাণ সমান ( fq2l{)

  • ফর্ম্যাট এবং মুদ্রণ ( V ... Vc3NjdH)k)


Nলুপ ( V...Vc3N) এর পরিবর্তে লুপের ( ) এর অভ্যন্তরে কাটা VcL3...VN। একটি অতিরিক্ত বাইট সংরক্ষণ করে।
জাকুব

8

সিজেম, 40 38 বাইট

A,1>e!3f/{2{2few:::+z}*:|,1=},Ma*Sf*N*

2 বাইট বন্ধ করে গল্ফ করার জন্য @ পিটারটেলরকে ধন্যবাদ!

এটি জাভা ইন্টারপ্রেটার ব্যবহার করে তাত্ক্ষণিকভাবে শেষ হয়। এটি অনলাইন দোভাষীকেও ব্যবহার করে কাজ করে তবে এটির জন্য একটু ধৈর্য দরকার। এটি অনলাইনে চেষ্টা করুন।

টেস্ট রান

$ cjam sturdy-squares.cjam | head -n 8
1 5 3
9 8 7
4 2 6

1 5 6
8 7 3
4 2 9

$ cjam sturdy-squares.cjam | tail -n 8

9 5 4
2 3 7
6 8 1

9 5 7
1 2 3
6 8 4
$

কিভাবে এটা কাজ করে

A,1>     e# Push [1 ... 9].
e!       e# Push the array of all permutations of that array.
3f/      e# Split each into rows of length 3.
{        e# Filter; push the permutation, then:
  2{     e#   Do the following twice:
    2few e#     Split each row into overlapping splices of length 2.
         e#       [a b c] -> [[a b] [b c]]
    :::+ e#     Reduce each innermost vector to its sum.
         e#       [[a b] [b c]] -> [a+b b+c]
    z    e#     Transpose rows with columns.
  }*     e#   The result is [[s t] [u v]], the sums of all 2x2 squares.
  :|     e#   Perform set union of the pairs of sums.
  ,1=    e#   Check if the length of the result is 1 (unique sum).
},       e# Keep the array if the result was 1.
{        e# For each kept array:
  Sf*    e#   Join the elements of its rows, separating by spaces.
  ~M     e#   Dump the resulting strings and an empty string on the stack.
}%       e# Collect everything in an array.
N*       e# Join the strings, separating by linefeeds.

+1 এবং আমি আমার উত্তরের সংক্ষিপ্ততায় খুশি!
ডেভিডসি

এখন যেহেতু আমি আমার উত্তর এক গণ্ডগোলের মতো পর্যাপ্ত থাকতে পেরেছি: Ma*Sf*N*দু'বারের বেশি সাশ্রয় করেছে{Sf*~M}%N*
পিটার টেলর

@ পিটারটেলর এটি সত্যিই করে। ধন্যবাদ!
ডেনিস

8

পাইথন 3, 169 168 164 বাইট

আমি এই শক্তিশালী স্কোয়ারগুলি / আয়তক্ষেত্রগুলি তদন্ত করতে ব্যবহৃত প্রোগ্রামটি নিয়েছিলাম এবং এটিকে রাস্তায় নামিয়েছিলাম। ওটকাকোডকে ধন্যবাদ 4 বাইট বন্ধ।

from itertools import*
r=range(1,10)
for p in permutations(r,6):
 x,y=p[0],p[5];q=p[:5]+(x+p[3]-p[2],y,y+p[1]-x,p[2]+y-x)
 if set(q)==set(r):print('%s %s %s\n'*3%q)

ব্যাখ্যা

এর মতো একটি আংশিক-পূর্ণ দৃ square় স্কোয়ার দেওয়া,

a b c
d e ?
g ? ?

বাকি তিনটি এন্ট্রি স্বতন্ত্র নির্ধারিত হয়, এবং a+d-c, a+b-gএবং c+g-a। সুতরাং আমি ছয়টি উপাদান দিয়ে 0..8 এর সমস্ত ক্রিয়াকলাপ উত্পন্ন করি, বাকীগুলি গণনা করুন এবং তারপরে এটির সেটটি 0..8 এর সেট হিসাবে একই কিনা তা পরীক্ষা করে দেখুন। যদি তা হয় তবে আমি গ্রিডটি মুদ্রণ করি।


রেফারেন্সের জন্য, এখানে মূল (মন্তব্য এবং বহিরাগত কোড সরানো সহ) এখানে রয়েছে:

from itertools import permutations as P

n = 3
m = 3
permutes = P(range(m*n), m+n)

counter = 0
for p in permutes:
    grid = [p[:n]]
    for i in range(m-1):
        grid.append([p[n+i]]+[-1]*(n-1))
    grid[1][1] = p[-1]

    s = p[0]+p[1]+p[n]+p[-1]

    has = list(p)

    fail = 0
    for y in range(1,m):
        for x in range(1,n):
            if x == y == 1: continue

            r = s-(grid[y-1][x-1] + grid[y-1][x] + grid[y][x-1])

            if r not in has and 0 <= r < m*n:
                grid[y][x] = r
                has.append(r)
            else:
                fail = 1
                break

        if fail: break

    if not fail:
        counter += 1

print(counter)

এই কৌশলটি
ডোন করুন

1
খুব সুন্দর পদ্ধতির! আপনি এখনও কয়েকটি বাইট সংরক্ষণ করতে পারেন যদিও ... লুপে, x, y = পি [0], পি [5] তারপরে Q = p + (y + পি [3] -পি [2], y + পি [1] ] -x, পি [2] +
এক্সআই

@ টাকাকোড: টিপটির জন্য ধন্যবাদ!
এল'েন্দিয়া স্টারম্যান

5

গণিত 147 166 155 149 বাইট

এটি {1,2,3 ... 9 of এর ক্রিয়াকলাপ উত্পন্ন করে এবং এর জন্য কেস নির্বাচন করে

(পজিশনে অঙ্কের সংখ্যা sum 1,2,4,5 sum) = =

(at 2,3,5,6 positions পজিশনে অঙ্কের যোগফল) =

(positions 4,5,7,8 positions পজিশনে অঙ্কগুলির যোগফল) = =

(at 5,6,8,9 positions পজিশনে অঙ্কের যোগফল)

f@s_:=Length@Tally[Tr@Extract[s,#]&/@Table[{{0},{1},{3},{4}}+k,{k,{1,2,4,5}}]]>1;
Row[Grid/@(#~Partition~3&/@Select[Permutations@Range@9,f@#&]),"\n"]

আউটপুট (আংশিক চেহারা)

আউটপুট


Length[%]

376


5

সিজেএম ( 39 37 বাইট)

A,1>e!{5ew{2Mtz}2*::+)-!},3f/Ma*Sf*N*

অনলাইন ডেমো (সতর্কতা: "চালিয়ে যেতে এক মিনিট সময় নিতে পারে," এই স্ক্রিপ্টটি বাতিল করুন? "ব্রাউজার থেকে অনুরোধ জানানো হয়)।

5ewমানচিত্রের ব্যবহার করে সমস্ত সম্ভাব্য গ্রিডগুলি ফিল্টার করে কাজ করে

[a b c d e f g h i]

থেকে

[[a b c d e]
 [b c d e f]
 [c d e f g]
 [d e f g h]
 [e f g h i]]

এবং তারপরে একে অপরের উপাদানটির মধ্যবর্তী উপাদান এবং মাঝারি উপাদানটিকে ত্যাগ করে

[[a b d e]
 [b c e f]
 [d e g h]
 [e f h i]]

যা চারটি স্কোয়ার।



5

পাইথন 3.5, 135 বাইট

from itertools import*
for x in permutations(range(1,10)):eval((("=="+"+x[%s]"*3)*4)[2:]%(*"013125367578",))and print("%d %d %d\n"*3%x)

সরাসরি প্রতিটি বর্গের যোগফলটি মাঝখানে বিয়োগ করে। itertoolsথাম্ব-অফ-থাম্বটি সম্ভবত " অপ্রয়োজনীয়" দ্বারা গল্ফযোগ্য ।


2

Python2 327 271 270 263 260 বাইট

z,v,s={},3,range(1,10)
while len(z)<376:
 for i in range(8):v=hash(`v`);s[i],s[v%9]=s[v%9],s[i]
 m=map(lambda i:sum(s[i:i+5])-s[i+2],[0,1,3,4]);T=tuple(s)
 if all(x==m[0] for x in m) and not T in z:
  z[T]=1;print '%i %i %i\n'*3 % tuple(s[0:3]+s[3:6]+s[6:9])

------------

এটি ... এত ছোট নয় তবে এটি কোনও লাইব্রেরি ব্যবহার করে না। এটি এলোমেলোভাবে একটি স্কোয়ারকে অনুমতি দেয়, যাদুবিদ্যার জন্য এটি পরীক্ষা করে, এটি মুদ্রণ করে এবং নকলগুলি প্রতিরোধ করতে এটি রেকর্ড করে। এটি 376 অনন্য যাদু স্কোয়ার মুদ্রণের পরে, এটি বন্ধ হয়ে যায়।

আমি "সিডো র্যান্ডম নম্বর জেনারেটর কেইথ র্যান্ডাল এর গল্ফের জন্য এন্ট্রি থেকে " ণ নিয়েছি " " একটি ডেমহার্ড পরীক্ষায় উত্তীর্ণ এলোমেলো নম্বর জেনারেটর তৈরি করুন " নামে

z,v={},3
def R(x,y):global v;v=hash(`v`);return v
while len(z)<376:
 s=sorted(range(1,10),cmp=R)
 m=[sum(q) for q in map(lambda p:s[p[0]:p[1]+1]+s[p[2]:p[3]+1], [[i,i+1,i+3,i+4] for i in [0,1,3,4]] )]
 if all(x==m[0] for x in m) and not tuple(s) in z.keys():
  z[tuple(s)]=1;print '%i %i %i\n'*3 % tuple(s[0:3]+s[3:6]+s[6:9])

ডি-golfed

# each magic square is an array of 9 numbers
#
#for example [1 9 3 7 2 5 6 4 8] 
#
#represents the following square
#
#1 9 3
#7 2 5
#6 4 8
#
# to generate a random square with each number represented only once,
# start with [1 2 3 4 5 6 7 8 9] and sort, but use a random comparison
# function so the sorting process becomes instead a random permutation.
# 
# to check each 2x2 subsquare for sums, look at the indexes into the
# array: [[0,1,3,4] = upper left,[1,2,4,5] = upper right, etc.
#
# to keep track of already-printed magic squares, use a dictionary    
# (associative array) where the 9-element array data is the key. 

from random import *
def magic(s):
 quads=[]
 for a,b,c,d in [[0,1,3,4],[1,2,4,5],[3,4,6,7],[4,5,7,8]]:
  quads+=[s[a:b+1]+s[c:d+1]]
 summ=[sum(q) for q in quads]
 same= all(x==summ[0] for x in summ)
 #print quads
 #print 'sum',summ
 #print 'same',same
 return same

magicsquares={}
while len(magicsquares.keys())<376:
        sq = sorted(range(1,10),key=lambda x:random())
        if magic(sq) and not magicsquares.has_key(tuple(sq)):
                magicsquares[tuple(sq)]=1
                print sq[0:3],'\n',sq[3:6],'\n',sq[6:9],'\n'

এলোমেলোভাবে কিছুই হওয়ার দরকার নেই। হুবহু ৩66 টি পৃথক বর্গক্ষেত্র সমাধান রয়েছে এবং এগুলির প্রত্যেককে ঠিক একবার আউটপুট করতে হবে।
ক্যালভিনের

আমি ঠিক 376 স্বতন্ত্র বর্গক্ষেত্র সমাধান মুদ্রণ করেছি এবং আমি তাদের প্রতিটি একবার আউটপুট করেছি। বর্ণনায় এলোমেলোভাবে নিষিদ্ধ করা হয় না, এমনকি এটি 'স্ট্যান্ডার্ড লুফোলস ' মেটা কোডেগল্ফ.স্ট্যাকেক্সেঞ্জঞ্জ / প্রশ্নগুলি ১০০১১/১ / এ নিষিদ্ধও হয় না
উজ্জ্বল ডন

ঠিক আছে, যথেষ্ট ন্যায্য।
ক্যালভিনের শখ

যতক্ষণ না এটি আপনার প্রয়োজনীয় সমস্ত স্কোয়ার দেয় ততক্ষণ আপনি আরও খারাপ এলোমেলো নম্বর জেনারেটর ব্যবহার করতে পারেন।
lirtosiast


0

জে, 83 বাইট

([:;@,(<LF),.~[:(<@(LF,~":)"1@#~([:*/2=/\[:,2 2+/@,;._3])"2)(3 3)($"1)1+!A.&i.])@9:

এটি এমন একটি ফাংশন যা 376 বলিষ্ঠ স্কোয়ার সহ একটি স্ট্রিং আউটপুট করে। ব্রুট-ফোর্স ব্যবহার করে, 1 থেকে 9 এর সমস্ত ক্রিয়াকলাপ উত্পন্ন করে, প্রতিটিকে একটি 3x3 অ্যারে রূপায়িত করে এবং প্রতিটি 2x2 সুবারের যোগফল সমান কিনা তা পরীক্ষা করে এটি ফিল্টার করে। আধ সেকেন্ডে শেষ হয়।

ব্যবহার

   f =: ([:;@,(<LF),.~[:(<@(LF,~":)"1@#~([:*/2=/\[:,2 2+/@,;._3])"2)(3 3)($"1)1+!A.&i.])@9:
   $ f ''  NB. A function has to take something to be invoked,
           NB. but in this case it is not used by the function
   37 {. f ''  NB. Take the first 37 characters
1 5 3
9 8 7
4 2 6

1 5 6
8 7 3
4 2 9

   _38 {. f ''  NB. Take the last 38 characters
9 5 4
2 3 7
6 8 1

9 5 7
1 2 3
6 8 4


   NB. The output string ends with two newlines
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.