ডায়ালগ এপিএল, 27 টি অক্ষর
⊃⌽∨.∧⍨⍣≡1≥+/¨|∘.-⍨,(~×⍳∘⍴)⎕
⎕মূল্যায়ন ইনপুট। এপিএল একটি ম্যাট্রিক্স এবং ভেক্টরগুলির একটি ভেক্টরের মধ্যে পার্থক্য করে। এই প্রোগ্রামটি অনুমান করে যে ইনপুটটি একটি ম্যাট্রিক্স।
(~×⍳∘⍴)Aসমান একটি কাঁটাচামচ (~A) × ⍳⍴A। এটি ⎕দু'বার উল্লেখ করা বা কোনও ভেরিয়েবল প্রবর্তন এড়াতে হবে ।
⍴Aএর আকার A। 4-বাই -7 ম্যাট্রিক্সের জন্য আকারটি 4 7।
⍳সূচক জেনারেটর হয়। ⍳4হয় 1 2 3 4। 4-বাই -7 ম্যাট্রিক্সে সজ্জিত ⍳4 7ভেক্টরগুলি (1 1)(1 2)...(4 7)।
~A বিট ফ্লিপ A ।
×⍳⍴Aউল্টানো বিটগুলি দ্বারা গুণ করে আমরা সমস্ত বিনামূল্যে কোষের স্থানাঙ্কগুলি সংরক্ষণ করি এবং সমস্ত দেয়ালকে রূপান্তরিত করি0 0 ।
,স্থানাঙ্ক জোড়াের ম্যাট্রিক্সকে বিকাশ করে, অর্থাৎ একে ভেক্টরে রৈখিক করে তোলে। এক্ষেত্রে ভেক্টর জোড় যুক্ত করে।
∘.-⍨Aবা A∘.-Aজোড়াযুক্ত উপাদানগুলি বিয়োগ করে A। মনে রাখবেন যে এখানে উপাদানগুলি Aনিজেরাই জোড়া হয়।
| পরম মান
+/¨পরম মান প্রতিটি জোড় যোগ। এটি আমাদের প্রাচীরের জন্য সংরক্ষণ করে গোলকধাঁসের প্রতিটি জোড়া কোষের মধ্যে গ্রিড দূরত্ব দেয়।
1≥আমরা প্রতিবেশীদের মধ্যে কেবল 1 এর চেয়ে বেশি দূরত্বে আগ্রহী, এটি দেয়ালও বাদ দেয় না। এখন আমরা একটি গ্রাফ সংলগ্ন ম্যাট্রিক্স আছে।
∨.∧⍨⍣≡ ফ্লয়েড - ওয়ারশালের ট্রানজিটিভ ক্লোজার অ্যালগরিদম
(f⍣n)A(এখানে ব্যবহৃত হয় না) যেখানে nপূর্ণসংখ্যা হয় শক্তি অপারেটর। তা প্রযোজ্য fকরার A nসময়: f f ... f A।
(f⍣g)Aযেখানে gএকটি ফাংশন, স্থির পয়েন্ট অপারেটর, ওরফে "পাওয়ার সীমা"। এটা তোলে সিরিজ কম্পিউটিং উপর রাখে A, f A, f f A, ... যতক্ষণ না ((f⍣i)A) g ((f⍣(i+1))A)কিছু সত্য 'ফেরত পাঠায় i। এই ক্ষেত্রে আমরা ম্যাচটি ( ≡) হিসাবে ব্যবহার করি g।
∨.∧⍨Aবা A∨.∧Aফ্লয়েডের অ্যালগরিদমের একটি পদক্ষেপ। f.gম্যাট্রিক্স গুণ (একটি সাধারণীকরণ ছাড়া কিছুই না +.×), এখানে আমরা একত্রে (ব্যবহার ∧) এবং অসম্বন্ধ ( ∨স্থানে) +এবং ×।
⊃⌽⍣≡পদক্ষেপটি পর্যাপ্ত সময় প্রয়োগ করার পরে এবং একটি স্থিতিশীল অবস্থায় পৌঁছানোর পরে , ফলাফলটি পেতে আমাদের অবশ্যই ম্যাট্রিক্সের উপরের-ডান কোণটি সন্ধান করতে হবে, সুতরাং আমরা এটিকে ফ্লিপ করব ( ⌽) এবং প্রথমটি, উপরের-বাম আইটেমটি ( ⊃) নেব ।
⍣≡এর পদক্ষেপের ভিজ্যুয়ালাইজেশন