java জাভা মডেলে নেতিবাচক সংখ্যা তৈরি করে



জাভা থ্রেড প্রোগ্রামিং pdf (4)

যখন আমি int i = -1 % 2 গণনা করি তখন আমি জাভা -1 পেতে পারি। পাইথন ইন, আমি 1 -1 % 2 ফলাফল হিসাবে 1 পেতে। মডুলো ফাংশন দিয়ে জাভাতে একই আচরণ পেতে কি করতে হবে?


Answer #1

জাভা 8 থেকে আপনি Math.floorMod() পদ্ধতি ব্যবহার করতে পারেন:

Math.floorMod(-1, 2); //== 1

দ্রষ্টব্য: যদি মডুলো-মান (এখানে 2 ) নেতিবাচক হয় তবে সমস্ত আউটপুট মানগুলিও নেতিবাচক হবে। :)

উত্স: https://.com/a/25830153/2311557


Answer #2

যদি মডুলাস 2 এর শক্তি হয় তবে আপনি একটি বিটমাস্ক ব্যবহার করতে পারেন:

int i = -1 & ~-2; // -1 MOD 2 is 1

তুলনা করে পাসকাল ভাষা দুটি অপারেটর সরবরাহ করে; REM সংখ্যার চিহ্নটি নেয় ( x REM y হল x - (x DIV y) * y যেখানে x DIV y TRUNC(x / y) ) এবং MOD এর জন্য একটি ইতিবাচক TRUNC(x / y) প্রয়োজন এবং ইতিবাচক ফলাফল প্রদান করে।


Answer #3
if b > 0:
    int mod = (mod = a % b) < 0 ? a + b : a;

% অপারেটর দুবার ব্যবহার করে না।


Answer #4

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

আপনি এটি করে ইতিবাচক মান খুঁজে পেতে পারেন:

int i = (((-1 % 2) + 2) % 2)

অথবা এটা:

int i = -1 % 2;
if (i<0) i += 2;

(স্পষ্টত -1 বা 2 যা আপনি সংখ্যার বা সংখ্যার হতে চান হতে পারে)





mod