যেমনটি আমরা সবাই জানি, আধুনিক অপারেটিং সিস্টেমে থ্রেড শিডিয়ুলার রয়েছে যা আপনার কোডটি গোপনীয় নয় এমন অভ্যন্তরীণ যুক্তির ভিত্তিতে আপনার থ্রেডগুলি নির্ধারণ করার জন্য বিভিন্ন অর্ডার বাছাই করতে পারে। আপনার উপর চাপানো এই অ-সংজ্ঞাটি অর্থবহুলভাবে আপনার আউটপুটকে প্রভাবিত করে না তা নিশ্চিত করার জন্য সাধারণত আপনি আপনার মাল্টিথ্রেডেড কোডটি আর্কিটেক্ট করেন।
এখানে লক্ষ্যটি বিপরীত। একটি প্রোগ্রাম তৈরি করুন যা অন্তর [0,99] এ পূর্ণসংখ্যাগুলি মুদ্রণ করে তবে একটি ক্রমে যা ওএস থ্রেড শিডিয়ুলারের কারণে রান থেকে পৃথক হবে।
আপনাকে অবশ্যই "পর্যাপ্ত ননডেটার্মিনিজম" অর্জন করতে হবে, এটি সংজ্ঞায়িত:
10 ট্রায়ালের 10 ক্রমিক সেটগুলিতে আপনার প্রোগ্রামের প্রতিটি পরীক্ষার মধ্যে কমপক্ষে 9 টি অনন্য ক্রম উত্পাদন করা উচিত। টানা 10 এর উভয় পক্ষেই আপনার কাছে যুক্তিসঙ্গত সংখ্যক ব্যর্থ সেট থাকতে পারে যা সফল হয়।
অথবা, অন্যভাবে বলতে গেলে, আপনার প্রোগ্রামের ১০০ রান দরকার যেখানে 10 রানের প্রতিটি ব্লকের সর্বাধিক দুটি রান থাকে যা একই জিনিসকে আউটপুট দেয়।
সুতরাং, মাঝে মাঝে 98 এবং 99 এর অদলবদল এটি কাটবে না।
এটি একটি কোড-গল্ফ , সুতরাং যে উত্তরটি সবচেয়ে কম বাইট জয় ব্যবহার করে।
ক্ষুদ্র অংশ
- আপনার আউটপুট stdout লিখুন, প্রতি লাইনে একটি প্রবেশ
- আপনি যদি তিনটি থ্রেড ইন্টারলিভ অক্ষর রেখে স্ট্রাউট (এমনকি মাঝে মাঝে) তিনটি সংখ্যা বা খালি লাইনগুলির মতো জিনিসগুলির ফলস্বরূপ ফর্ম্যাটটি ম্যাঙ্গেল করেন তবে আপনার ফলাফলটি অবৈধ is
- উপরের নিয়মের একমাত্র ব্যতিক্রম হ'ল আপনি সর্বশেষ প্রয়োজনীয় নম্বরটি মুদ্রণের পরে একটি ফাঁকা রেখা নির্গত করতে পারেন (আপনাকে স্বাগতম)
- যদি আপনি কোনও প্রয়োজনীয় মানগুলি মিস করেন বা সদৃশ হন তবে আপনার ফলাফলটি অবৈধ
- তোমার প্রোগ্রাম নেই না (যদিও গৌরব যদি তা না হয়) একটা একক কোর প্রসেসর উপর nondeterministic হতে হবে
- আপনার প্রোগ্রামে সবুজ থ্রেড / ফাইবার ব্যবহার করা যেতে পারে যা ওএস কার্নেল দ্বারা পরিচালিত হয় না যদি এটি এখনও চ্যালেঞ্জের অন্যান্য প্রয়োজনীয়তা পূরণ করে এবং থ্রেডিং সিস্টেমটি আপনার ভাষার অংশ বা আপনার ভাষার মানক গ্রন্থাগার is
- আপনার প্রোগ্রামের রানটাইমটি একটি আধুনিক প্রসেসরের উপর নির্ভরযোগ্যভাবে 5 সেকেন্ডের মধ্যে থাকতে হবে
- আপনার প্রোগ্রামের বাইরে যেমন পরিবেশের জন্য অপেক্ষা করা বা সেটিংস পরিবর্তনগুলি পরিবর্তনগুলি নির্দিষ্ট করতে পারেন না; আপনার প্রোগ্রামটি 100ish বার পিছনে পিছনে বা প্রতিটি রানের মধ্যে এক ঘন্টা বা সমান্তরালে 100ish বারের সাথে পাস করা উচিত (এটি সম্ভবত আসলে সহায়তা করবে ...)
- আপনি কোনও GPro বা Xeon Phi এবং কোনও নিজস্ব অভ্যন্তরীণ সময়সূচী প্রক্রিয়াগুলির জন্য কোনও কোপ্রোসেসর ব্যবহার করতে পারেন। নিয়মগুলি হ'ল গ্রিন থ্রেডগুলিতে একইভাবে প্রয়োগ হয়।
- যতক্ষণ আপনি এই পোস্টে সুনির্দিষ্ট নিয়মগুলি মেনে চলেন ততক্ষণ ঘুম, ফলন এবং অন্যান্য কৌশলগুলি দিয়ে শিডিয়ুলারকে প্ররোচিত করতে দ্বিধা বোধ করবেন না
নিষিদ্ধ অপারেশন
যখন আপনার সূচিটি চালানোর জন্য সময়সূচী শিডিয়ুল করে দেয় তখনই আপনাকে অংকন করার একমাত্র উত্স হ'ল নিম্নলিখিত তালিকাটি নিখরচায় নয়, কেবলমাত্র এমন কিছু উদাহরণ প্রদানের উদ্দেশ্যে যা তারা অদ্বিতীয়তাবাদের অন্যান্য উত্সগুলিকে স্বীকার করার কারণে আপনাকে অনুমতি দেয় না।
- প্রত্যক্ষ বা অপ্রত্যক্ষভাবে যেকোন ধরণের পিআরএনজি বা হার্ডওয়্যার আরএনজি সক্ষমতা অ্যাক্সেস করা (যদি তা শিডিয়ুলারের অন্তর্নিহিত অংশ না হয়)।
- যে কোনও ধরণের ইনপুট (সিস্টেমের সময়, ফাইল সিস্টেম, নেটওয়ার্ক, ইত্যাদি) এ পড়া
- থ্রেড আইডি বা প্রক্রিয়া আইডি পড়া
- ওএস শিডিয়ুলার অনুকূলিতকরণ; আপনাকে অবশ্যই একটি মূলধারার ওএস থেকে একটি স্ট্যান্ডার্ড ওএস শিডিয়ুলার ব্যবহার করতে হবে
- আপনার সবুজ থ্রেড / ফাইবারের শিডিয়ুলার কাস্টমাইজ করাও নিষিদ্ধ। এর অর্থ হ'ল আপনি যদি এই চ্যালেঞ্জের জন্য কোনও ভাষা লিখেন তবে আপনাকে অবশ্যই ওএস থ্রেড ব্যবহার করতে হবে ।
উত্তর বৈধতা
প্রাথমিকভাবে কোনও উত্তর সমস্ত সাধারণ ওএস এবং আধুনিক প্রসেসরের জুড়ে কাজ করবে, সাথে কুদোস সমর্থনের প্রশস্ততার সাথে আনুপাতিক সম্মানিত। তবে এটি চ্যালেঞ্জের প্রয়োজনীয়তা নয়। সর্বনিম্ন একটি উত্তর অবশ্যই একটি আধুনিক এসএমপি প্রসেসর এবং আধুনিক ওএস সমর্থন করবে। আমি আমার হার্ডওয়্যার প্রাপ্যতার পরিমাণের শীর্ষস্থানীয় উত্তরগুলি পরীক্ষা করব।
- আপনার এন্ট্রি যদি উইন্ডোজ 10 v1607 x64 চলমান আই 75960x এ প্রয়োজনীয় আউটপুট তৈরি না করে তবে প্রয়োজনীয় পরিবেশ নির্দিষ্ট করুন
- এটি এমন কিছু যদি আমি খুব সহজেই ভিএমওয়্যার ওয়ার্কস্টেশন সহ প্রজনন করতে পারি তবে সঠিক ওএস এবং ভিএম স্পেস সরবরাহ করুন
- যদি এই শর্তগুলির মধ্যে কোনওটি তৈরি করা না যায় তবে শিরোনাম বিভাগে বর্ণিত হিসাবে পরীক্ষার এক সাথে স্ক্রিন ক্যাপচার রেকর্ড করুন এবং আপনার স্ক্রিনের একটি হ্যান্ডহেল্ড ভিডিও রেকর্ডিং আপনার মাউস এবং কীবোর্ড মিথস্ক্রিয়া (বা আপনার নিয়ন্ত্রণহীন গণনার যেকোন নিয়ন্ত্রণ স্কিম) ডিভাইসটি ব্যবহার করে) পরিষ্কারভাবে দৃশ্যমান হয় এবং আপনার উত্তর সহ দুটি ভিডিও পোস্ট করে এবং এটি কেন কাজ করে তার একটি ব্যাখ্যা অন্তর্ভুক্ত করে
- পর্যায়ক্রমে, ফলাফল পুনরুত্পাদন করার জন্য মিলে যাওয়া হার্ডওয়্যার সহ একটি স্বনামধন্য দীর্ঘস্থায়ী ব্যবহারকারী (যিনি আপনি নন) পান এবং আপনার পক্ষে আশ্বাস দিন
- যদি আপনার এন্ট্রিটি বহিরাগত প্রোগ্রামিং ল্যাঙ্গুয়েজে থাকে তবে একটি সাধারণ বিকাশকারী সংকলন / জিত / ব্যাখ্যা করার জন্য সেটআপ করা হয় না, সেটআপ নির্দেশাবলী সরবরাহ করে
- যদি আপনি এন্ট্রি জেভিএম / পাইথন ইন্টারপ্রেটার / অন্যান্য নির্দিষ্ট সংস্করণের উপর নির্ভর করে তবে কোনটি নির্দিষ্ট করুন
- আমার পরীক্ষায় আপনার 10 টি সফল ক্রমিক ক্রিয়াকলাপ ট্রায়াল পেতে যদি 10 মিনিটেরও বেশি সময় ব্যয় হয় তবে আপনি ব্যর্থ (তাই সাফল্যের অবস্থাটি একটি অদ্ভুত ঘটনা হতে দেবেন না, বিশেষত যদি আপনি উপরের কাছাকাছি থাকেন) রানটাইম আবদ্ধ)