ম্যানুফ্যাকোরিয়ায় মোড 7


12

একটি সাধারণ ম্যানুফ্যাকচারিয়া চ্যালেঞ্জ। ইনপুট মডিউলগুলি গণনা করুন The. ইনপুটটি বিগ-এন্ডিয়ান বাইনারি হবে (নীল = 1, লাল = 0)। আউটপুট একই বিন্যাসে হওয়া উচিত।

পরীক্ষার কেস সরবরাহ করা হয়েছে। সবচেয়ে ছোট অংশ গণনা জিতেছে।

http://pleasingfungus.com/Manufactoria/?ctm=Mod7;Input:_binary_number_big_endian._Output:_that_binary_number_mod_7;bbb:|brrr:b|brrrr:br|bb:bb|bbrrb:brr|brrrrb:brb|bbrb:bbr; 13; 3; 1 ;

(যদি ইনপুট মোড 7 হয় তবে আউটপুট কিছুই হবে না))


এই ক্ষেত্রে "কোড-গল্ফ" এর অর্থ "সর্বাধিক অংশ"?
জন ডিভোরাক

যেহেতু আমি এমনকি ইনক্রিমেন্টেশন সমস্যাটিও সমাধান করি নি, কীভাবে এটি সমাধান করা যায় সে সম্পর্কে আমার কোনও ধারণা নেই। ম্যানুফেরিয়া মজাদার।
জাস্টিন

@ জনডভোরাক: হ্যাঁ
কীথ র্যান্ডাল

@ কিথরান্ডাল আমরা কখনই ম্যানুফ্যাকচারিয়ার সাথে কোড-গল্ফ ট্যাগ করি নি । আমাদের হয় ট্যাগটি এখানে সরিয়ে ফেলা উচিত বা এটি অন্য প্রশ্নের সাথে যুক্ত করা উচিত।
হাওয়ার্ড

@ হাওয়ার্ড: আমি এটিকে যুক্ত করব (বা দ্রুততম কোড বা ব্যস্ত-বিভার বা কোড-চ্যালেঞ্জ বা যেটি স্কোরিংকে সর্বোত্তমভাবে বর্ণনা করে) এবং নির্মাতাকে একটি সহজ ভাষা ট্যাগ হতে দিন ।
ইলমারি করোনেন

উত্তর:


5

### ম্যানুফ্যাকোরিয়া, 85 টি অংশ রাখা হয়েছে

অ্যালগোরিদমটি বেশ সোজা: একটি রাষ্ট্রীয় মেশিন ব্যবহার করে মডুলাসটি গণনা করুন (আটটি শাখা বিশিষ্ট বৃহত্তম অংশ - একটি রাজ্যের একটি লজিস্টিকাল উদ্দেশ্যে নকল করা হয়েছে), তারপরে এনকোড করুন এবং ফলাফল সংগ্রহ করুন। যেহেতু প্রায় প্রতিটি ফলাফলে একটি ডিজিট থাকে, তাই অংশের পরিমাণ হ্রাস করতে একটি অতিরিক্ত সংক্ষেপণ পদক্ষেপ নিযুক্ত করা হয়।

YEd এ নকশা করা হয়েছে, তারপরে ম্যানুফ্যাকোরিয়ায় প্রতিলিপি।

আমার মতে প্রচুর পরিবাহক বেল্ট ব্যবহার করে।


5

58 43 অংশ

43-অংশ মোডে স্ক্রিনশটটি ম্যানুফ্যাকোরিয়ায় হ্রাস করে

http://pleasingfungus.com/Manufactoria/?lvl=33&code=c16:9f0;q15:9f3;q14:9f3;q13:9f3;c12:9f3;c16:10f1;r15:10f3;r14:10f3;b13:10f3 ; q12: 10f4; p11: 10f4; C16: 11f1; i15: 11f7; প্রঃ 14: 11f7; q13: 11f7; q12: 11f7; C11: 11f2; R15: 12f3; B14: 12f3; c12: 12f3; c15: 13f0; C14 : 13f0; C13: 13f0; R13: 12f3; y10: 3f3; C10: 4f2; G10: 5f1; Q10: 6f4; Y11: 3f0; q11: 4f6; r11: 5f3; p11: 6f4; B11: 7f1; i12: 4f7 ; c12: 5f3; q12: 6f0; G12: 2f3; c12: 3f3; P13: 4f6; y13: 3f0; C13: 5f0; c12: 7f3; B12: 8f3; & CTM = Mod7; ইনপুট: _binary_number_big_endian._Output: _that_binary_number_mod_7; BBB : | brrr: b | brrrr: br | bb: bb | bbrrb: brr | brrrrb: brb | bbrb: bbr; 13; 3; 1 ; 1 ;

ইনপুটটিকে প্রথমে আনারিতে রূপান্তর করার বিষয়ে কীথ র্যান্ডালের ধারণাটি বেশ ভাল ছিল, তাই আমি এটি চুরি করেছি। ;-) সুবিধাজনকভাবে, আমি ম্যানুফ্যাকোরিয়ায় ছোট বাইনারি-থেকে-ইউনিারি রূপান্তরকারীদের অনুকূলকরণের জন্য কিছুটা সময় ব্যয় করেছি , তাই আমার চ্যালেঞ্জ থেকে আমার প্রায় কার্যকরী সমাধানগুলি বেছে নিয়েছে এবং দ্রুত অপ্টিমাইজড মোড-7 কাউন্টারের সাথে এটি একত্রিত করেছি।

এই নকশাটি এখন এমন পর্যায়ে রয়েছে যেখানে কেবল উপরে থেকে নীচে পর্যন্ত রোবটগুলি পেতে অন্যথায় অকেজো অতিরিক্ত অতিরিক্ত যানবাহন প্রয়োজন। আরও উল্লেখযোগ্য অংশে হ্রাস লেআউটটিকে আরও লম্বা ও সঙ্কুচিত করার জন্য পুনরায় নকশা করা থেকে আসে।

(* এই চ্যালেঞ্জটির প্রয়োজন ক) একটি × board board বোর্ডের নকশার সাথে মানানসই, এবং খ) লাল মার্কারগুলিতে থাকা অবিচ্ছিন্ন আউটপুট। আপনি যদি উপরের মেশিনের বাইনারি-থেকে-ইউনিারি রূপান্তরকারী অংশটি লক্ষ্য করেন, তবে আপনি লক্ষ করবেন যে, এক বা দুটি অতিরিক্ত অংশের সাহায্যে এটি উভয় প্রয়োজনের সাথে সহজেই পূরণ করতে পারে তবে হায়রে, উভয়ই নয়))


এখানে পূর্ববর্তী 58-অংশ সংস্করণটি রয়েছে:

রাজ্যগুলির লেবেলযুক্ত, ম্যানুফ্যাকোরিয়ায় 58-পার্ট মড 7 রিডুসারের স্ক্রিনশট

http://pleasingfungus.com/Manufactoria/?lvl=32&code=g12:2f3;q13:13f5;c14:13f0;c15:12f3;c9:6f2;c9:7f1;c9:8f1;c9:9f1;c10:4f3 ; C10: 5f3; i10: 6f5; C10: 7f2; C10: 9f0; B11: 3f2; p11: 4f1; C11: 5f1; p11: 6f2; p11: 7f2; C11: 8f3; p11: 9f3; B11: 10f2; c12 : 3f2; c12: 4f2; c12: 5f0; r12: 6f3; c12: 7f3; i12: 8f1; i12: 9f5; y12: 10f3; C13: 3f2; C13: 4f3; i13: 5f1; C13: 6f3; C13: 7f2 ; i13: 8f0; C13: 9f1; C14: 3f3; C14: 4f2; p14: 5f5; C14: 6f1; p14: 7f6; p14: 8f7; r14: 9f3; c15: 4f3; q15: 5f0; c15: 6f3; c15 : 7f3; i15: 8f6; c15: 9f3; q15: 10f7; c15: 11f3; r12: 12f2; P13: 12f7; B14: 12f0; B14: 11f3; B12: 11f3; y14: 10f3; y15: 13f0; & CTM = Mod7 ; ইনপুট: _binary_number_big_endian._Output: _that_binary_number_mod_7; BBB: | বাপরে: b | brrrr: bR | BB: BB | bbrrb: brr | brrrrb: BRB | bbrb: bbr; 13; 3; 1 ;

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

একটি কৌশল যা আমি দরকারী পেয়েছিলাম তা হ'ল চূড়ান্ত অনুলিপি লুপ যা হলুদ চিহ্নিতকারীটির আগে লেখা সমস্ত কিছু ব্যারেল-শিফটকে শেষ করে দিয়েছিল (পাশাপাশি সবুজ চিহ্নিতকারীকেও ছুঁড়ে ফেলেছিল): এটি আমাকে হাই-অর্ডার আউটপুট বিটের পুনরাবৃত্তিটি ব্যবহার করতে দেয় ফলাফল আউটপুট হিসাবে উত্পাদন:

0:  Y   ->
1: BY   ->   B
2:  YBR ->  BR 
3:  YBB ->  BB
4: RYBR -> BRR
5: BYBR -> BRB
6: RYBB -> BBR

এটি আমাকে বেশিরভাগ আউটপুট 2, 4 এবং 5 (যা দিয়ে শুরু হয় BR) এবং 3 এবং 6 (যা দিয়ে শুরু হয় BB) এর আউটপুট পাথগুলি একত্রিত করতে দেয় ।


আপনার নকশায় আমি কোনও ত্রুটি খুঁজে পাইনি। জায়গা বাঁচাতে ভাল কাজ।
জন ডিভোরাক

পুনশ্চ. এখানে রাষ্ট্র-মেশিন ভিত্তিক বাস্তবায়নের জন্য একটি দুর্দান্ত পরীক্ষা: 8890 = বিআরআরআরবিআরআরবিআরবিআরবিআরবিআরআরআউটপুট 0 দেওয়া উচিত, প্রতিটি রাজ্য দু'বার পরিদর্শন করা উচিত (এবং শেষে আরও একবার 0 বার) এবং প্রতিটি সম্ভাব্য রাষ্ট্রীয় রূপান্তর একবারে নেওয়া উচিত।
ইলমারি করোনেন

2

60 অংশ

আমার সমাধানটি কিছুটা আলাদা। এটি বাইনারিটিকে প্রথমে ইউনিেরিতে রূপান্তরিত করে, তারপরে মোড does করে I

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


আপনি জানেন, আপনি সম্ভবত যদি এই রূপান্তরটি অনুকূলিত করতে পারেন ।
ইলমারি করোনেন

0

আমি আসলে কী করছি তা আমার ধারণা ছিল না তবে এটি কাজ করে এবং আমি বিজয়ী হতে পারি (যদি কেবল পরীক্ষার ক্ষেত্রে যথেষ্ট প্রমাণ থাকে)। : ডি

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

সম্পাদনা: এটি 2 বার অনুকূলিত হয়েছে, এখন কিছুটা ছোট ((আবর্জনা সরানো)


আসলে আমি জানি না এটি বড় সংখ্যক (বা পরীক্ষার কেসের চেয়ে আলাদা একটি) নিয়ে কাজ করবে কিনা।
লিও পিফ্লুগ

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