কোনটি দ্রুত গণনা করা হয়,


10

কোনটি দ্রুত গণনা করা হয়, বা বা ? , এবং সহ ধনাত্মক বাস্তব ।লগ ইন করুন একটিablogac abcb>1cbabcb>1

তুলনায় আপনি কোন ধরণের অ্যালগরিদম ব্যবহার করবেন? তাদের জটিলতাগুলি কী কী?

উদাহরণস্বরূপ, যখন বা সি বিcabcab

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


মডারেটরগুলি দৃশ্যত সম্পাদনাগুলিও অনুমোদন করতে পারে। আমি @ মার্কবুথের পরামর্শের সাথে একমত এবং তার পরামর্শ অনুসারে এটিকে প্রশ্নটিতে অন্তর্ভুক্ত করেছি।
অ্যারন আহমদিয়া

মন্তব্যগুলি নিখরচায় (মুছে ফেলতে) নির্দ্বিধায় এখন তারা তাদের উদ্দেশ্য পূরণ করেছে। * 8 ')
মার্ক বুথ

উত্তর:


8

কিছু সম্পর্কিত সমস্যার জন্য এই প্রশ্নের আমার উত্তর দেখুন ।

সাধারণভাবে, কম্পিউটারগুলি কেবল যুক্ত, বিয়োগ, গুণ, ভাগ এবং বিট শিফট করতে পারে। তর্কের খাতিরে, ধরে নেওয়া যাক আপনি গণনা করছেন না বিশেষ ক্ষেত্রে বিযেখানে 2 এর শক্তি এবং বি একটি প্রাকৃতিক সংখ্যা, কারণ সেই ক্ষেত্রেটি কিছুটা স্থানান্তরকে কমিয়ে দেয় এবং তাই সহজ।abab

যদি একটি প্রাকৃতিক সংখ্যা, এবং আপনি গণনা করতে চান একটি , আপনি ব্যবহার করতে পারেনউপরন্তু-শৃঙ্খল exponentiation। আপনার প্রশ্নের প্রতিটি ক্ষেত্রেই কঠোর (সাধারণভাবে)।bab

এই ফাংশনগুলিকে উচ্চ নির্ভুলতায় আনুমানিক করতে ব্যবহৃত কিছু দ্রুত অ্যালগরিদমের জন্য কালো যাদু প্রয়োজন। "ব্ল্যাক ম্যাজিক" বলতে আমি কী বুঝি তা দেখার জন্য মার্টিন আঙ্কারেলের এই ব্লগ পোস্ট এবং নিউরাল কম্পিউটেশনে তার সংযুক্ত একটি সম্পর্কিত কাগজটি একবার দেখুন । আরো দেখুন CORDIC অ্যালগরিদম।

বিট-আলোকসম্পাতের ঠাট একই প্রকারের ব্যাখ্যা করা আছে হ্যাকার কল্লোল (লিঙ্ক বইয়ের জন্য সহচর ওয়েবসাইট থেকে যায়)।

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

উপরের ফাংশনগুলি আনুমানিক করতে আপনি যে অ্যালগরিদম ব্যবহার করেন তা আপনার আর্কিটেকচার, গতির প্রয়োজনীয়তা এবং নির্ভুলতার প্রয়োজনীয়তার উপর নির্ভর করবে।

জটিলতাগুলির বিষয়ে কথা বলার সমস্যাটি হ'ল যে কোনও অ্যালগরিদম কেবলমাত্র আপনার উল্লিখিত ফাংশনগুলির একটি ভাসমান বিন্দু অনুমানের গণনা করতে চলেছে, সুতরাং রান সময়টি আপনার সান্নিধ্যের যথাযথতার উপর নির্ভর করে। এমনকি এটি বিবেচনায় নেওয়ার পরেও, আমি মনে করি না যে গণনা জটিলতা পারফরম্যান্সের প্রথম প্রথম পছন্দ; আপনার ইনপুট আকার যাচ্ছেন বিট পরিমাপ করা হয় (অর্থাত, বিট সংখ্যা এটা প্রতিনিধিত্ব করতে লাগে a , এবং bc), যা তারা সংখ্যার ইনপুটগুলির নিজস্বতার উপর নির্ভর করে পরিবর্তে নির্ভুলতা-নির্ভর হতে চলেছে। ব্যবহারিক উদ্দেশ্যে, সংখ্যার সংখ্যার উপাত্তের যথার্থতা খুব বেশি পরিবর্তিত হয় না (একক নির্ভুলতা, দ্বিগুণ নির্ভুলতা, কোয়াড নির্ভুলতা) এবং আপনি সাধারণত স্কেলার ফাংশনগুলির কোনও গণনীয় জটিলতার অনুমানের ভিত্তিতে সেই নির্ভুলতাটি ব্যবহার করার সিদ্ধান্ত নেন না । সর্বাধিক প্রাসঙ্গিক মেট্রিক হ'ল ওয়াল-ক্লক টাইম, এবং আপনি যদি কোনও বিশেষ স্থাপত্য (এম্বেডড সিস্টেমস) ব্যবহার না করেন বা আপনার অ্যাপ্লিকেশনটি সত্যই দ্রুত তদন্তকারী (ব্লগ পোস্ট লিঙ্ক এবং উপরের নিউরাল কম্পিউটিশন লিঙ্কটি দেখুন) না দাবি করে, তবে আপনার অভ্যন্তরীণ গ্রন্থাগারগুলি পছন্দের ভাষা সম্ভবত ঠিক আছে।


4

এটি একটি ভাল প্রশ্ন কারণ একটি সংখ্যাগুণ অ্যালগরিদম এবং পারফরম্যান্স বোঝা একটি কার্যকর গণ্য বিজ্ঞানী হওয়ার গুরুত্বপূর্ণ পূর্বশর্ত। একইসাথে এটি একটি দরিদ্র প্রশ্ন কারণ যাকে জাহির যেমন সীমাবদ্ধতা পর্যাপ্ত এটা যোগ্যতা না একটি অর্থপূর্ণ জবাব দিতে।

তিনটি গণনার পারফরম্যান্স চূড়ান্ত ফলাফলের প্রয়োজনীয় যথাযথতার পাশাপাশি অপারেটসকে উপস্থাপনের জন্য প্রয়োজনীয় ন্যূনতম নির্ভুলতার উপর দৃ strongly়ভাবে নির্ভর করবে। আপনি , b , এবং c কে ইতিবাচক বাস্তব সংখ্যা হিসাবে যোগ্যতা অর্জন করতে পারেন, তবে আমাদের আরও কত বাইনারি সংখ্যা d এন তাও জানতে হবেabcdn সঠিকভাবে উপস্থাপনের জন্য আমাদের হবে। সাধারণ আসল সংখ্যার জন্য পারফরম্যান্স বিবেচনার জন্য, আমাদের প্রথমে বুঝতে হবে কম্পিউটারগুলি কীভাবে পূর্ণসংখ্যাকে উপস্থাপন করে পাশাপাশি কীভাবে এটি ভাসমান-পয়েন্ট সংখ্যা ব্যবহার করে প্রকৃত সংখ্যাগুলিকে প্রায় অনুমান করে।

কম্পিউটারগুলি যখন একটি পূর্ণসংখ্যার কাজ করে , তখন প্রয়োজনীয় বাইনারি অঙ্কের সংখ্যা স্পষ্টতই পূর্ণসংখ্যার দৈর্ঘ্যের লগ 2 এর সমান হয় , এবং চিহ্নটি পরিচালনা করার জন্য একটি অতিরিক্ত বিট:M2

লগ 2 | এম | + 1dn=2|M|+1

উদাহরণস্বরূপ, -8 নম্বরটি 4 বাইনারি সংখ্যার সাথে প্রতিনিধিত্ব করা যেতে পারে। পারফরম্যান্স এবং স্পেস-দক্ষতার জন্য, গাণিতিক লজিক ইউনিট (ALUs), আধুনিক প্রসেসিং ইউনিটগুলিতে পূর্ণসংখ্যার গণনাগুলির জন্য দায়বদ্ধ, কিছু নির্দিষ্ট আকার পর্যন্ত পূর্ণসংখ্যার উপর গণিত পরিচালনা করার জন্য ডিজাইন করা হয়েছে, এই দিনগুলিতে সর্বাধিক সাধারণ ডি = 32 এবং ডি = 64। আপনার কম্পিউটারের মতো কেবল x86 প্রসেসরের মধ্যেই ALUs নেই, তারা আজকের বৈদ্যুতিন সমাজে সর্বব্যাপী কম্পিউটার আর্কিটেকচারের একটি মৌলিক বিল্ডিং ব্লক। আপনি যদি ভিডিও গেম কনসোলগুলির সাথে পরিচিত হন তবে আপনার মনে হতে পারে নিন্টেন্ডো ,৪ নামে একটি ভিডিও গেম সিস্টেম যার আকার অনুসারে নামকরণ হয়েছে (বিটগুলিতে), কনসোলের প্রসেসরের গাণিতিক যুক্তি ইউনিটগুলি পরিচালনা করার জন্য ডিজাইন করা হয়েছিল।

পাটিগণিত যুক্তি ইউনিটগুলিতে সংখ্যার যোগ, বিয়োগ এবং গুণগুলি খুব কার্যকরী এবং সাধারণত গণনা করার জন্য বেশ কয়েকটি চক্রের বেশি প্রয়োজন হয় না। বিভাগগুলি কম পারফরম্যান্ট, এবং আধুনিক প্রসেসরগুলিতে প্রায় কয়েক ডজন চক্রের প্রয়োজন হতে পারে। পারফরম্যান্স উভয় প্রসেসিং ইউনিটের আর্কিটেকচার (এবং গাণিতিক যুক্তির এককের সাথে সম্পর্কিত বাস্তবায়ন) এবং এর ফ্রিকোয়েন্সি উপর নির্ভর করে। মনে রাখবেন যে একটি 64৪-বিট প্রসেসর সাধারণত বিট অপারেন্ডগুলিতে এক্স এর জন্য একই গতিতে পাটিগণিত সম্পাদন করতে পারেxx 1 এবং 64 মধ্যে যে কোন জায়গায়।

সাধারণ কম্পিউটিংয়ে এবং বিশেষত বৈজ্ঞানিক কম্পিউটিংয়ে পূর্ণসংখ্যার গণিত অনেক গণনার পক্ষে অনর্থক, এবং সংখ্যার আরেকটি প্রতিনিধিত্ব প্রয়োজন, তথাকথিত 'ভাসমান-পয়েন্ট' উপস্থাপনা। ফ্লোটিং-পয়েন্ট নম্বরগুলি আধুনিক মাইক্রোপ্রসেসরগুলি যেভাবে কাজ করে ( বিট হুঁসের চারপাশে কার্টিং ডেটা ) এবং সংশোধিত বৈজ্ঞানিক স্বরলিপিতে প্রসেসরে সংখ্যার প্রতিনিধিত্ব করে গণনার প্রয়োজনীয়তার মধ্যে একটি সমঝোতার প্রতিনিধিত্ব করে, একটি নির্দিষ্ট বেস বি ব্যবহার করে (সাধারণত বি = 2 বা b = 10 ) এবং দুটি পূর্ণসংখ্যার, একটি ম্যান্টিসা (কিছু চেনাশোনাতে গুরুত্বপূর্ণ) গুলি এবং একটি ঘনিষ্ঠ ব্যবহার করে সংখ্যাটি উপস্থাপন করে । একটি প্রদত্ত নম্বর xnbb=2b=10sex তারপরে প্রায় হিসাবে প্রদর্শিত হয়:

x=sbe

আমি আনুমানিক বলি কারণ এটি স্পষ্ট হওয়া উচিত যে এমনকি মতো সাধারণ যুক্তি13dn , তাই সংখ্যাসূচক কম্পিউটেশন মধ্যে পুনরাবৃত্তি আছে কিছুটা সহনশীলতা। ভাসমান-পয়েন্ট সংখ্যাগুলি কীভাবে কাজ করে যা সম্পর্কে এই উত্তরে ক্যাপচারের আশা করতে পারি না তার বেশ কিছুটা সূক্ষ্মতা রয়েছে, একটি ভাল পরিচয়ের জন্য আমি সুপারিশ করি "ফ্লুটিং-পয়েন্ট এরিথমেটিক সম্পর্কে প্রতিটি কম্পিউটার বিজ্ঞানী কী জানেন"

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

abc

  1. ab
  2. ac
  3. c1b

1 সাধারণ ক্ষয়ক্ষতি প্রায়শই নিম্নলিখিত পরিচয় দিয়ে প্রয়োগ করা হয়:

ab=βalogβb

β2eβ=2abt=alog2b2t

FYL2X + F2XM1 + ~ 20 = 80 + 51 + ~ 20 = ~ 151 চক্র

2 এটি দুটি লোগারিদম এবং একটি বিভাগে রূপান্তরিত করা যেতে পারে ভিত্তিক পরিচয়ের পরিবর্তনের মাধ্যমে এবং সঠিক ফলাফলের জন্য পুনরুদ্ধারের প্রয়োজন হয় না।

2 * এফওয়াইএল 2 এক্স + এফডিএল = 2 * 80 + (7 থেকে 27) = 167 থেকে 187 চক্র

[3] এটি একটি ক্ষুদ্রাকর্ষণ দ্বারা অনুসরণকারী বিভাগের সমতুল্য, সুতরাং [1] প্লাস FDIV, ~ 175 চক্র।


0

আমি প্রশ্নটি প্যারাফ্রেস করতে পারি কিনা তা আমাকে দেখতে দিন:

abloga(c)a

উত্তর : এটি সি এর উপর নির্ভরশীলতা আছে কি না তার উপর নির্ভর করে, এবং কীভাবে বি এর সাথে তুলনা করা হয় (এর চেয়ে বড়, কম বা সমান)।

cba

cloga(c)=ln(c)/ln(a)loga(c)abaab=ω(loga(c))

c=abloga(ab)=bbabloga(c)ab=ω(loga(c))

cababc=Θ(ab)

loga(c)c1/b

abc

cc1/bbc1/b=o(loga(c))

c=abloga(c)=ac1/b=aloga(c)=Θ(c1/b)

cababc

কেস 3: তুলনাc1/bab

cc1/babc1/b=o(ab)

c=abc1/b=ab>1abc1/b

abc


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

ablogca
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.