চক্রাকারে স্ব-বর্ণনামূলক তালিকা গণনা করুন


19

চক্রাকারে স্ব-বর্ণনার তালিকা

একটি তালিকা L ধনাত্মক পূর্ণসংখ্যা হয় cyclically স্ব-বর্ণনা , যদি নিম্নলিখিত শর্তাবলী ধরে রাখুন।

  1. L কিছুই নেই।
  2. L এর প্রথম এবং শেষ উপাদানগুলি পৃথক।
  3. আপনি যদি L সমান উপাদানের রানগুলিতে ভাগ করেন তবে প্রতিটি রানের উপাদানটি পরবর্তী রানের দৈর্ঘ্যের সমান হয় এবং শেষ রানের উপাদানটি প্রথম রানের দৈর্ঘ্যের সমান হয়।

উদাহরণস্বরূপ, L=[1,1,1,2,3,3,1,1,1,3] । এটি মজাদার নয় এবং প্রথম এবং শেষ উপাদানগুলি আলাদা। আমরা যখন এটির রান ভাঙি, আমরা [[1,1,1],[2],[3,3],[1,1,1],[3]]

  • প্রথম রানটি 1 s এর একটি রান এবং পরবর্তী রানের দৈর্ঘ্য [2] , 1
  • দ্বিতীয় রানের একটি রান হয় 2 s, এবং পরবর্তী রানের দৈর্ঘ্য, [3,3] , হয় 2
  • তৃতীয় রানের একটি রান হয় 3 s, এবং পরবর্তী রানের দৈর্ঘ্য, [1,1,1] হল 3
  • চতুর্থ রানটি 1 s এর একটি রান এবং পরবর্তী রানের দৈর্ঘ্য [3] , 1
  • অবশেষে, গত রানের একটি রান হয় 3 s, এবং প্রথমবার চালনার লম্বা [1,1,1] হল 3

এর অর্থ হ'ল L একটি চক্রীয়ভাবে স্ব-বর্ণনার তালিকা।

উদাহরণস্বরূপ, তালিকার [3,2,2,2,1,4,1,1,1] চক্রতান্ত্রিকভাবে স্ব-বর্ণনামূলক নয়, যেহেতু 2 s এর একটি রান তার পরে দৈর্ঘ্য 1 দ্বারা চালিত হয় । [2,2,4,4,3,3,3,3] তালিকাটিও চক্রক্রমে স্ব-বর্ণনামূলক নয়, যেহেতু শেষ রানটি 3 টি রান , তবে প্রথম রানটির দৈর্ঘ্য রয়েছে2

কাজটি

এই চ্যালেঞ্জে আপনার ইনপুটটি পূর্ণসংখ্যা n1 । আপনার আউটপুটটি চক্রাকারে স্ব-বর্ণনার তালিকার সংখ্যা হবে যার সমষ্টি n সমান হবে । উদাহরণস্বরূপ, n=8 ফলাফল 4 হওয়া উচিত , যেহেতু চক্রাকারে স্ব-বর্ণনামূলক তালিকাগুলি যার যোগফল 8 হয় [1,1,1,1,4] , [1,1,2,1,1,2] , [2,1,1,2,1,1] এবং[4,1,1,1,1] । সর্বনিম্ন বাইট গণনা জয়, এবং অন্যান্য মানকনিয়ম প্রয়োগ।

এখানে 1 থেকে 50 পর্যন্ত ইনপুটগুলির জন্য সঠিক আউটপুট মান রয়েছে :

1 -> 0
2 -> 0
3 -> 0
4 -> 2
5 -> 0
6 -> 2
7 -> 0
8 -> 4
9 -> 0
10 -> 6
11 -> 6
12 -> 12
13 -> 0
14 -> 22
15 -> 10
16 -> 32
17 -> 16
18 -> 56
19 -> 30
20 -> 96
21 -> 56
22 -> 158
23 -> 112
24 -> 282
25 -> 198
26 -> 464
27 -> 364
28 -> 814
29 -> 644
30 -> 1382
31 -> 1192
32 -> 2368
33 -> 2080
34 -> 4078
35 -> 3844
36 -> 7036
37 -> 6694
38 -> 12136
39 -> 12070
40 -> 20940
41 -> 21362
42 -> 36278
43 -> 37892
44 -> 62634
45 -> 67154
46 -> 108678
47 -> 118866
48 -> 188280
49 -> 209784
50 -> 326878

4
অপ্রত্যাশিত মোচড়! অর্ধেক বর্ণনার মধ্য দিয়ে আমি কেবল একটি তালিকা সিএসডি কিনা তা নির্ধারণের কম-আকর্ষণীয় কাজটি আশা করছিলাম। যশ।
স্পার

আমি কিছুটা দু: খিত যে সংজ্ঞায় তালিকার অন্তর্ভুক্ত নেই যেখানে প্রথম এবং শেষ উপাদানটি একই, এবং একই গ্রুপ হিসাবে গণনা করা হবে, কারণ তারা যদি তালিকাটি কোনও স্বতন্ত্র শুরু / শেষ ছাড়াই একটি চক্র হত।
স্পার 15

এটি কোড-গল্ফ, সুতরাং আমি মনে করি যে তালিকাটি চক্রাকারে স্ব-বর্ণনার চেয়ে আরও বেশি আকর্ষণীয় (কার্যকর করার দ্রুত সমাধান) - যদি সমস্ত তালিকা তৈরি এবং গণনা ব্যতীত অন্য কোনও সংক্ষিপ্ত পথ না থাকে তবে তা নির্ধারণ করি।
ব্যবহারকারী 202729

বহু-কালীন অ্যালগরিদম রয়েছে তবে এটি প্রোগ্রাম করা বেশ কঠিন এবং স্পষ্টতই কোনও সমাধানের মতো গল্ফ নয় যা সমস্ত সম্ভাব্য তালিকা তৈরি করে এবং যাচাই করে।
ব্যবহারকারী 202729

2
2 ব্যতীত প্রতিটি এমনকি সংখ্যার হিসাবে প্রাপ্ত করা যায় n,1,...,1এবং 13 এর চেয়ে বেশি প্রতিটি বিজোড় সংখ্যা 3,2,2,2,1,1একটি এমনকি সংখ্যার সাথে যুক্ত করে প্রাপ্ত করা যায় । 13 অসম্ভব যে প্রমাণটি পাঠকের জন্য অনুশীলন হিসাবে রেখে গেছে।
নাইট্রডন

উত্তর:


6

হাস্কেল , 75 বাইট

একটি বাইট সংরক্ষণ করার জন্য Ørjan ধন্যবাদ!

g n=sum[x#n|x<-[1..n],let a#n=sum$[b#(n-a*b)|b<-[1..n],a/=b]++[0^n^2|a==x]]

এটি অনলাইন চেষ্টা করুন!

সমস্যাটি সমান:

কত উপায়ে করতে n হিসেবে লেখা যেতে i=0kaiai+1 সঙ্গে aiN,aiai+1,a0=ak



1

জেলি , 18 বাইট

ṗⱮ¹Ẏ;ḷ/$€IẠ$Ƈ×Ɲ€§ċ

এটি অনলাইন চেষ্টা করুন!

আইডিয়া: প্রতিটি চক্রাকারে স্ব-বর্ণনামূলক তালিকা প্রতিটি ব্লকের মানগুলির তালিকা হিসাবে বর্ণনা করা যায় এবং আমরা মানগুলি থেকে দৈর্ঘ্য কমিয়ে আনতে পারি। নোট করুন যে দুটি সংলগ্ন মান পৃথক হতে হবে। অবশ্যই সেখানে সর্বাধিক হতে পারে nব্লক এবং প্রতিটি ব্লক দৈর্ঘ্য সর্বাধিক হয় n


1

হাস্কেল, 118 105 103 বাইট

সম্পাদনা করুন: -13 বাইটস @ অর্জান জোহানসেনকে ধন্যবাদ, -2 বাইট ধন্যবাদ @ এইচ.পি.উইউজকে

g s=sum[b#a$s|b<-[1..s],a<-[1..s],let(d#l)s|d==a,d/=b,l*d==s=1|n<-s-d*l=sum[i#d$n|i<-[1..s],d/=i,n>=0]]

এটি অনলাইন চেষ্টা করুন!


একই কৌশলটির সাথে ফ্যাক্টরটি আমি এইচ.পি.উইজকে দেখিয়েছি।
janrjan জোহানসেন

আপনি মিস করেছেন (i#d)n->i#d$n
এইচ.পি.উভিজ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.