কতটা রাস্তা একটি নদী পার হতে পারে?


13

একটি সরল নদী এবং এমন একটি রাস্তা কল করুন যা সেতুগুলির মধ্য দিয়ে n বার পার হয় । রাস্তাটি নিজেই লুপ করে না এবং অসীম দীর্ঘ। এই রাস্তাটি একটি উন্মুক্ত উপকারী হিসাবে বিবেচিত হবে। একটি খোলা মায়ান্দার একটি খোলা বক্ররেখা, যা নিজেকে ছেদ করে না এবং উভয় প্রান্তে অসীম প্রসারিত হয়, যা একটি রেখাকে এন বার ছেদ করে ।

একটি বৈধ মায়ান্দার এটি পরিদর্শনকারী পয়েন্টগুলির ক্রম অনুসারে সম্পূর্ণরূপে বর্ণনা করা যেতে পারে।

সঙ্গে ছেদ স্বতন্ত্র রীতির সংখ্যা এন ছেদ একটি সর্পিলাকার হতে পারে n তম meandric সংখ্যা । উদাহরণস্বরূপ, এন = 4:

এই ক্রমের প্রথম কয়েকটি সংখ্যা হ'ল:

1, 1, 1, 2, 3, 8, 14, 42, 81, 262, 538, 1828, 3926, 13820, 30694, 110954...

এটি OEIS ক্রম A005316

চ্যালেঞ্জ

একটি লিখুন প্রোগ্রাম / ফাংশন যে একটি ধনাত্মক পূর্ণসংখ্যা লাগে এন ইনপুট হিসাবে এবং ছাপে n তম meandric সংখ্যা

বিশেষ উল্লেখ

  • স্ট্যান্ডার্ড আই / ও বিধি প্রযোজ্য।
  • স্ট্যান্ডার্ড সমস্যা হয় নিষিদ্ধ
  • আপনার সমাধান হয় 0-সূচকযুক্ত বা 1-সূচকযুক্ত হতে পারে তবে দয়া করে কোনটি নির্দিষ্ট করুন।
  • এই চ্যালেঞ্জটি সমস্ত ভাষায় স্বল্পতম পদ্ধতির সন্ধান সম্পর্কে নয়, বরং এটি প্রতিটি ভাষায় স্বল্পতম পদ্ধতির সন্ধান সম্পর্কে ।
  • আপনার কোডটি বাইকে স্কোর করা হবে , সাধারণত এনকোডিং ইউটিএফ -8 এ অন্যথায় নির্দিষ্ট না করা হয়।
  • এই ক্রমটি গণনা করে অন্তর্নির্মিত ফাংশনগুলিকে অনুমতি দেওয়া হয়েছে তবে বিল্ট-ইন-এ নির্ভর করে না এমন সমাধান সহ উত্সাহ দেওয়া হচ্ছে।
  • এমনকি "ব্যবহারিক" ভাষার জন্য ব্যাখ্যাগুলি উত্সাহিত করা হয়

পরীক্ষার মামলা

এগুলি 0-সূচকযুক্ত। মনে রাখবেন যে আপনার ভাষাটি যদি ডিফল্টরূপে না করতে পারে তবে আপনার বড় এই সংখ্যাগুলি হ্যান্ডেল করার দরকার নেই।

Input      Output

1          1
2          1
11         1828
14         30694
21         73424650
24         1649008456
31         5969806669034

কয়েকটি আরও ভাল ফর্ম্যাটে:

1 2 11 14 21 24 31
1, 2, 11, 14, 21, 24, 31

1
আপনি একটি বন্ধনকারীকে একটি বদ্ধ বাঁক হিসাবে সংজ্ঞায়িত করেন তবে আপনার কাছে ওইআইএস ক্রমটি খোলা বক্ররেখার সাহায্যকারীদের জন্য। আপনি এর পরিবর্তে A005315 বোঝাতে চেয়েছিলেন?
গাছ নয়

7
এটি প্রোজেক্ট-
এলারের

1
@ নোটাত্রি ওহ, আমার দিনের বড় স্ক্রু আপ আছে ... এটি খুঁজছিল। ঠিক করবে, আমাকে জানানোর জন্য ধন্যবাদ!
সম্পূর্ণমানবিক


1
আরও একটি বাচ্চা (দুঃখিত ...): একটি মুক্ত বক্ররেখার শেষ পয়েন্ট থাকতে পারে তবে আমি মনে করি একটি খোলা মাইন্ডার উভয় প্রান্তে অনন্ততায় প্রসারিত করতে হবে। (যদি শেষ পয়েন্টগুলিকে অনুমতি দেওয়া হয়, তবে আপনি এমন বক্ররেখা থাকতে পারেন যা মেন্ড্রিকের সংখ্যা আরও বেশি হতে পারে))
গাছ নেই

উত্তর:


11

পাইথন 3 , 208 188 187 184 180 177 171 বাইট

lambda n:sum(all(i-j&1or(x<a<y)==(x<b<y)for(i,(a,b)),(j,(x,y))in d(enumerate(map(sorted,zip((0,)+p,p+(n,)))),2))for p in d(range(n)))
from itertools import*;d=permutations

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

এখন 1-সূচকযুক্ত (পূর্বে 0-সূচকযুক্ত তবে 1-ইনডেক্সিং মেন্ডারদের আচরণের ক্ষেত্রে ভাগ্যবান ছটফট করার কারণে একটি বাইট সংরক্ষণ করেছিল)।

ব্যাখ্যা

এটি জেনি_ম্যাথি পোস্ট করা লিঙ্কের মতো হতে পারে তবে আমি কাগজটি পড়ে শেষ করি নি, সুতরাং এটি আমার পদ্ধতির পিছনে যুক্তি মাত্র।

ফলাফলগুলি কল্পনা করার জন্য আমি ওইআইএস- এ প্রদত্ত নীচের চিত্রটি ব্যবহার করব ।

এখানে চিত্র বর্ণনা লিখুন

প্রতিটি বৈধ ময়ান্ডার এটি পরিদর্শনকারী চৌরাস্তা পয়েন্টগুলির ক্রম অনুসারে সম্পূর্ণরূপে বর্ণনা করা যেতে পারে। এটি ছবিতে তুচ্ছভাবে পর্যবেক্ষণ করা যেতে পারে; প্রবেশ বিভাগটি সর্বদা একই দিকে থাকে (অন্যথায় সংখ্যাটি দ্বিগুণ হবে)। আমরা প্রতিটি অর্ডারকে কেবল উভয় পক্ষের একটি বিন্দু যুক্ত করে তাদের নিজ নিজ অসম্পূর্ণতার জন্য প্রবেশ এবং প্রস্থান উভয় বিভাগের প্রবণতা উপস্থাপন করতে পারি - অর্থাত্ আদেশটি (2, 1, 0)হয়ে যাবে (-1, 2, 1, 0, 3)

এটি মনে রেখে, কাজটি হ'ল অর্ডারগুলির সংখ্যা বা তার পরিসীমাটির ক্রমীয়করণগুলি সন্ধান করা nযা নিজের সাথে ছেদ করে না। সংযোগগুলি কেবলমাত্র পয়েন্টের জোড়াগুলির মধ্যে ইস্যু, যার জন্য সংযোগকারী অংশটি একই পাশেই থাকে। ক্রমান্বয়ে ক্রমাগত দুটি পয়েন্টের যেকোনও জোড়ের জন্য যার বিভাগগুলি একটি অংশ ভাগ করে, সেগুলি ছেদ করে কিনা সেগুলি উভয়টির জুটির দুটি উপাদানের মধ্যে একটি জোড়ের বিন্দুগুলির মধ্যে একটি এবং কেবল একটিই সমান কিনা। এরূপ হিসাবে, আমরা নির্ধারণ করতে পারি যে কোনও পাশের একই পাশের বিভাগের সাথে অন্য জোড়া দ্বারা যুক্ত একটি পয়েন্টের সাথে কোনও জোড় নেই কিনা তা দ্বারা একটি অর্ডার বৈধ কিনা।

পরিশেষে, প্রতিটি আদেশের বৈধতা নির্ধারণ করে, ফাংশনের আউটপুটটি বৈধ বলে প্রমাণিত হওয়ার পরিমাণে নেমে আসে।


1
আপনি কি ইতিমধ্যে একটি সংযুক্তি ক্লাসের জন্য এটি করেছেন? নাকি আপনি খুব শক্তভাবে FGITW করেছেন?
ম্যাজিক অক্টোপাস উরান

2
@ ম্যাজিক অ্যাক্টোপাস উর্ন সত্যই, আমি প্রায় দুই ঘন্টা ধরে এর বিরুদ্ধে আমার মাথা ধাক্কা দিচ্ছি - সুতরাং আমি অনুমান করি পরবর্তীটি।
notjagan

যদি আমি প্রশ্নটিতে আপনার কিছু ব্যাখ্যা ব্যবহার করি তবে আপনি কি আপত্তি করবেন? 'আমার ব্যাখ্যাটির কারণ এখন ... দুর্দান্ত নয়।
সম্পূর্ণরূপে

1
@ টোটালিহুমান যেকোন কার্যকর মনে হলেও ব্যবহার করতে নির্দ্বিধায়, যদিও আমি ধারণা করি যে এটি খুব বেশি বিশেষভাবে আমার পদ্ধতির সাথে সুনির্দিষ্ট নয়।
notjagan

5

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

1!x=x
-1!(-1:x)=1:x
n!(i:x)=i:(n-i)!x
0#([],[])=1
0#_=0
n#(a,b)=sum$((n-1)#)<$>(-1:a,-1:b):[(a,-i:b)|i:a<-[a]]++[(-j:a,b)|j:b<-[b]]++[(j!a,i!b)|i:a<-[a],j:b<-[b],i+j>=0]
f n=n#([],[-1,1])+n#([1],[1])

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

আইয়ান জেনসেন, বিমানের ম্যান্ডার্সের সংখ্যার তালিকা , ১৯৯৯ ওপেন মেইন্ডার্সের ক্ষেত্রে ধারণাগুলির সম্প্রসারণের ভিত্তিতে । এটি টিআইওতে প্রায় 20 সেকেন্ডের মধ্যে n = 1,…, 16 এর মধ্য দিয়ে চলে ।


আপনি কি দেখেছেন arxiv.org/abs/cond-mat/0008178 ?
পিটার টেইলর

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

0

এপিএল (ডায়ালগ ক্লাসিক) , 127 115 বাইট

⊃⊃⌽{↓⍉(⊃,/c),∘(+/)⌸(≢¨c←{1↓¨⍳¨⍨0,¨((×2↑¯1⌽⍵)/¯1 1⌽¨⊂⍵),(⊂∊#⍵#),(××/m,≠/m)/⊂1↓¯1↓(⊢-⍵×~)⍵∊m2↑¯1⌽⍵}¨⊃⍵)/⊃⌽⍵}⍣⎕⌽1,⊂⍳2

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


কিভাবে কাজ করে?
lirtosiast

@ লিরিটোসিয়াস্ট মূলত এটি কিন্তু এনকোডিং ম্যাচিং লুপটি 0/1 এর পরিবর্তে ম্যাচিংয়ের পূর্ণসংখ্যার আইডির সাথে শেষ হয়
এনজিএন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.