পাইথনের পাওয়ার অপারেটরটি ডানদিকে সংযুক্ত করার কী যুক্তিযুক্ত?


9

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

Http://docs.python.org/references/expressions.html থেকে :

"সুতরাং, শক্তি এবং অযৌক্তিক অপারেটরগুলির অপ্রত্যাশিত ক্রম অনুসারে অপারেটরগুলি ডান থেকে বামে মূল্যায়ন করা হয় (এটি অপারেশনগুলির জন্য মূল্যায়নের আদেশকে সীমাবদ্ধ করে না): -1 * 2 -1-এ ফলাফল দেয়।" *

এর অর্থ হল পাইথনে: 2**2**3হিসাবে মূল্যায়ন করা হয়2**(2**3) = 2**8 = 256

এক্সেলে, এটি অন্যভাবে কাজ করে: 2^2^3হিসাবে হিসাবে মূল্যায়ন করা হয়(2^2)^3 = 4^3 = 64

আমাকে এখন নিজের পার্সারের জন্য একটি বাস্তবায়ন বেছে নিতে হবে। এক্সেল অর্ডার কার্যকর করা সহজ, কারণ এটি গুণকের মূল্যায়ন আদেশকে মিরর করে।

আমি অফিসের আশেপাশের কিছু লোককে জিজ্ঞাসা করেছি তাদের মূল্যায়নের জন্য অন্ত্রের অনুভূতি কী 2^2^3এবং মিশ্র প্রতিক্রিয়া পেয়েছি।

পাইথন বাস্তবায়নের পক্ষে কি কোনও ভাল কারণ বা concদ্ধত্য সম্পর্কে কেউ জানেন? এবং যদি আপনি একটি উত্তর, ফলাফল নিয়ে মন্তব্য করুন না থাকে তাহলে আপনি অন্ত্রে অনুভূতি থেকে পাওয়া - 64বা 256?


এটি প্রয়োগ করা এতটা কঠিন নয়। যাইহোক, আপনার পার্সারকে অ্যাসাইনমেন্টের মতো জিনিসের জন্য কোনওভাবে বা অন্য কোনওভাবে সঠিক সহযোগিতা সমর্থন করতে হবে।
মার্কো ফিসেট

হ্যাঁ এটি নয়, আমি বাস্তবে এটি বাস্তবায়িত করেছি। তবে আমি এক্সেল কনভেনশনে ফিরে গিয়েছি, কারণ আমার গ্রন্থাগারের প্রাথমিক ব্যবহারগুলির মধ্যে একটি হল এক্সেলের কাছে সমীকরণ রফতানি করা, সুতরাং সেখানে সমীকরণগুলি যেভাবে কাজ করে তা স্থির করে রাখা আরও বোধগম্য।
পিটার মুলার

উত্তর:


10

গাণিতিক স্ট্যাকড এক্সপোঞ্জ্যান্টগুলির উপর থেকে নীচে থেকে প্রয়োগ করার কারণটি হ'ল অন্য উপায়টি আপনি কেবল এক্সপোনটারগুলির গুণন পান:

(((2^3)^4)^5) = 2^(3 * 4 * 5)

এটি আপনার উত্তর রূপটি পরিষ্কার নয় .... তবে কী সেই সূত্র ধরে কীভাবে এক্সটেন্ডাররা কাজ করে? ((2 ^ 3) ^ 4 ) = 8 ^ 4 = (2 ^ 3 ) * (2 ^ 3) * (2 ^ 3) * (2 ^ 3) = 2 ^ (3 + 3 + 3 + 3) = 2 ^ 12
পিওরফেরেট

3
হ্যাঁ তাই হয়। আমার বক্তব্যটি আপনি যে দুটি আদেশ চয়ন করতে পারেন তার মধ্যে একটি হ'ল এমন কিছু ফলন করে যা আপনি লেখককে স্ট্যাক না করে লিখতে পারেন। সুতরাং আকর্ষণীয় সাহচর্য হ'ল অন্যটি।
Andrea

14

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

পাইথন যেভাবে এটি মূল্যায়ন করে এটি প্রতিফলিত হয়। মাইক্রোসফ্ট ভুল (আরও একবার)

এবং রুবি এটিকে পাইথন হিসাবে মূল্যায়ন করে, তাই এটি সন্দেহ ছাড়াই সঠিক, যেহেতু ম্যাটজ ভুল হতে পারে না।


4
অপারেটরের ডি ল্যাঙ্গুয়েজ বাস্তবায়ন সম্পর্কিত এই আকর্ষণীয় পোস্টটিও দেখুন যা সঠিক সাহচর্য সমর্থন করে।
পেড্রো রোমানো

আমি ভিজুয়াল বেসিকটিকে একইভাবে মূল্যায়ন করার কথা স্মরণ করি তবে আমি নিশ্চিত নই যে এটি এই পদ্ধতিতে বিশ্বাসযোগ্যতা যুক্ত করে কিনা। ;)
Xion

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