কোনও প্রোগ্রামিং ভাষা কি গণিতে পড়ার সাথে সাথে ভেরিয়েবল ব্যবহার করে?


11

গণিতে, একটি চলক মানে আপনি সেখানে যে কোনও সংখ্যা রাখতে পারেন এবং একটি সমীকরণ এখনও সত্য হবে:

root(square(x)) = abs(x)

প্রোগ্রামিং ভাষাগুলিতে, এটি তেমন নয়: একটি বর্ণ পরিবর্তন হতে পারে। পাইথনে:

y = (x**2)**.5
x *= 2
assert y == abs(x)

একটি ব্যতিক্রম উত্থাপন করবে, যেহেতু শেষ লাইনের এক্সটি এক নয়।

এমন কি প্রোগ্রামিং ভাষা রয়েছে যা অপরিবর্তনীয় ভেরিয়েবল ব্যবহার করে?


5
গণিতে, বেশিরভাগ সমীকরণ পরিচয় নয়। উদাহরণস্বরূপ, x ^ 2 + 5 = 6x বৈধ হয় এবং কেবলমাত্র যদি x = 1 বা x = 5 হয় তবে কিছু "মহাবিশ্ব" (যেমন সমস্ত আসল সংখ্যার সেট) হিসাবে সমস্ত মানের জন্য বৈধ যে সমীকরণ, যেমন পাপ ( 2x) = 2 sin x cos x, কে পরিচয় বলে
অ্যান্ড্রেস রেজব্র্যান্ড 21

4
গণিতে ভেরিয়েবল! = প্রোগ্রামিং ভাষায় পরিবর্তনশীল। আমি সবসময়ই ভেবেছি যে তাদের আলাদা আলাদা নামও রাখা উচিত, যেহেতু তারা যখন গণিতে পরিবর্তনশীল সম্পর্কে প্রোগ্রামিংয়ে প্রাক-ধারণা নিয়ে আসে তখন অনেকে বিভ্রান্ত হয়।
মিথ্যা রায়ান

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

না তারা না। "X = 5" এ কোনও সংখ্যা রাখার চেষ্টা করুন ।

উত্তর:


6

আপনার শিরোনাম প্রশ্নের উত্তর দেওয়ার জন্য "কোনও প্রোগ্রামিং ভাষার ভাষা যেমন গণিতে রয়েছে তেমন ভেরিয়েবলগুলি ব্যবহার করে?": সি, সি #, জাভা, সি ++ এবং অন্য কোনও সি স্টাইলের ভাষা যেভাবে গণিতে ব্যবহৃত হয় সেভাবে ভেরিয়েবল ব্যবহার করে।

আপনাকে কেবল = এর পরিবর্তে == ব্যবহার করতে হবে।

আমি যদি আপনার মূল গ্রহণ করি

root(square(x)) = abs(x)

তারপরে আমি সিনট্যাক্স ছাড়া অন্য কোনও পরিবর্তন ছাড়াই সরাসরি সি # তে অনুবাদ করতে পারি। Math.Sqrt(Math.Pow(x,2)) == Math.Abs(x)

এটি x এর যে কোনও মানের ক্ষেত্রে সত্য হিসাবে মূল্যায়ন করবে যতক্ষণ x স্কোয়ার্ড আপনি ব্যবহার করছেন এমন ডেটা টাইপের সর্বোচ্চের চেয়ে কম হবে is (জাভা মোটামুটি একই রকম হবে তবে আমি বিশ্বাস করি ম্যাথের নেমস্পেসটি কিছুটা আলাদা)

এই পরবর্তী বিটটি সি # তে সংকলন করতে ব্যর্থ হবে কারণ সংকলকটি যথেষ্ট স্মার্ট যাতে আমি জানতে পারি না যে অন্য ক্রিয়াকলাপের অপারেশনটিকে আমি অন্য ক্রিয়াকলাপে ফিরিয়ে দিতে পারি না।

Math.Sqrt(Math.Pow(x,2)) = Math.Abs(x)

অপরিষ্কার এর সাথে কিছু করার নেই। আপনাকে এখনও একটি অপরিবর্তনীয় ভাষায় মান নির্ধারণ করতে হবে এবং প্রদত্ত ভাষা অপারেটর হিসাবে = ব্যবহার করে এটি করতে পারে তা সম্পূর্ণভাবে সম্ভব।

বিন্দুটি আরও প্রমাণ করে, এই লুপটি চলবে যতক্ষণ না আপনি x এর আইনি মানগুলি সরিয়ে ফেলে এবং একটি ওভারফ্লো ব্যতিক্রম না পান:

 while (Math.Sqrt(Math.Pow(x, 2)) == Math.Abs(x))
        {
            ++x;
            System.Console.WriteLine(x);
        }

এই কারণেই গণিতবিদগণ অ্যাসাইনমেন্টের জন্য = ব্যবহারকে ঘৃণা করেন। এটি তাদের গুলিয়ে দেয়। আমি মনে করি এটি আপনাকে নিজেকে বিভ্রান্ত করতে পরিচালিত করেছে। আপনার উদাহরণ নিন

y = (x**2)**.5
x *= 2
assert y == abs(x)

আমি যখন এটিকে বীজগণিতায় পরিণত করি তখন আমি এটি পাই:

অ্যাবস (2x) = মূল (x ^ 2)

কোনটি অবশ্যই ০. এর চেয়ে অন্য মানগুলির জন্য সত্য নয় অপরিবর্তনীয়তা কেবলমাত্র আপনাকে x এর মান পরিবর্তন করার ত্রুটি থেকে বাঁচায় যখন আপনি মূল সমীকরণের বাম হাতের ও ডান হাতের দিকটি মূল্যায়নের মধ্যে অতিরিক্ত পদক্ষেপ যুক্ত করেন। আপনি কীভাবে এক্সপ্রেশনটিকে মূল্যায়ন করেন এটি আসলে পরিবর্তন হয় না ।


24

খাঁটি কার্যকর ক্রিয়াকলাপের ভাষা যেমন হাস্কেল অপরিবর্তনীয় ভেরিয়েবল প্রয়োগ করে। ভেরিয়েবলের পরিবর্তে আমি তাদের সনাক্তকারী বলতে চাই।


3
এরলংয়ে, যা একটি অপরিষ্কার কার্যকরী ভাষা, ভেরিয়েবলগুলিও অপরিবর্তনীয়।
sepp2k

আমি খুব বেশি এর্লং জানি না। এগুলি কি পরমাণু, তাই না? এরল্যাং কি কোনও ধরণের পরিবর্তনশীল ভেরিয়েবল-জাতীয় স্টোরেজকে অনুমতি দেয়?
আয়নু জি স্টান

3
@ আইনুট: না, এরলং পরমাণুগুলিকেই লিস্প এবং রুবিতে প্রতীক বলা হয়। আপনার দ্বিতীয় প্রশ্ন সম্পর্কে: এটিতে প্রক্রিয়া অভিধান রয়েছে যা একটি গ্লোবাল (ভাল, প্রতি-প্রক্রিয়া), পরিবর্তনীয় হ্যাশ মানচিত্র। তবে এটি আমার অভিজ্ঞতায় খুব কম ব্যবহৃত হয়। উল্লেখযোগ্য স্বচ্ছতা ভঙ্গ করার একমাত্র উপায় ব্যতীত বার্তা প্রেরণ।
sepp2k

4
এইচএম, আমার নিজের কিছু শিখতে হবে :)
আয়নু জি স্টান

এই প্রশ্ন জিজ্ঞাসা উত্তর কিভাবে?
gnat

5

=প্রোগ্রামিং ভাষা ব্যবহার করা নিদর্শন বিভ্রান্তিকর করা হয়। <-যার অর্থ "স্টোর", বা এমনকি সিওবিওএল MOVEব্যবহার করা উচিত।

সংযোজন হিসাবে, প্রোলোগ ম্যাথের মতো ভেরিয়েবল ব্যবহার করে: ভেরিয়েবলগুলি পরিবর্তন করতে পারে না, এবং প্রলোগ ইঞ্জিনটি ভেরিয়েবলগুলি পূরণ করে সমাধানগুলি উপস্থিত রয়েছে কিনা তা দেখার জন্য।

এছাড়াও, কারি হ্যাস্কেল এবং প্রোলোগের মিশ্রণ।


3

সি, সি ++, এবং অবজেক্টিভ-সি "কনস্ট" টাইপ কোয়ালিফায়ার সহ ফাংশন (এবং পদ্ধতি) আর্গুমেন্টের পাশাপাশি অন্যান্য ভেরিয়েবল (শনাক্তকারী) এর জন্য অপরিবর্তনযোগ্যতা নির্দিষ্ট করতে পারে।


3

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

ইন Scala (এছাড়াও একটি জেভিএম ভাষা) OO যেমন পণ্য এবং fp সমর্থন ভেরিয়েবল একটি unifier ঘোষিত valঅপরিবর্তনীয় হয়। স্কালা এক্সপ্রিটিভনেস এবং ওও / এফপি হাইব্রিড সমর্থন এটি ম্যাথমেটিকার অনুরূপ দেখায় । ( আক্কা একটি কাঠামো যে .. Erlang OTP তে এবং Clojure যেমন এসটিএম যেমন কার্যকারিতা যোগ করা Scala এবং জাভা হয়।) LACASA টাইপ সিস্টেম এবং প্রোগ্রামিং মডেল Scala বস্তুর সামর্থ্য শৃঙ্খলা জোরদার করা, এবং অনন্য বস্তু রেফারেন্স প্রদান যোগ করা হয়েছে। ( কোড ) ( তাত্ত্বিক পটভূমি )

জাভাতে ঘোষিত একটি চলক finalঅপরিবর্তনীয় এবং গুগল পেয়ারা যেমন জাভা গ্রন্থাগারগুলিতে সংগ্রহের অপরিবর্তনীয় লাইব্রেরি অন্তর্ভুক্ত থাকে। জাভা Stringগুলি সর্বদা অপরিবর্তনীয়।

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