English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

تحليل مشكلة الأوراق الثنائية في Java

في عمليات الحساب الحلبي لـjava، هناك عمليات حسابية تسمى 'الإشارات المشتركة'، وتُرمز لها بـ(^)، قاعدة الحساب الخاصة بها هي: إذا كانت الأوزان بنفس القيمة، فإن النتيجة تكون 0، وإذا كانت مختلفة، فإن النتيجة تكون 1. دعونا نرى مثالاً:

public class TestXOR{
	public static void main(String[] args){
		int i = 15, j = 2;
		System.out.println("i ^ j = " + (i ^ j));
	}
}

النتيجة: i^j=13.

تحليل البرنامج المذكور أعلاه، i=15 يتحول إلى ثنائي هو 1111، j=2 يتحول إلى ثنائي هو 0010، بناءً على قواعد العمودية، نحصل على 1101، يتحول إلى عشري هو 13.

يمكننا استخدام هذه القاعدة لتطبيقها بسهولة في بعض الخوارزميات. على سبيل المثال، إذا كان لدينا 2K+1 عدد، فإن هناك 2k من نفس النوع، نحتاج إلى العثور على الرقم المختلف، مثل: 2،3،4،4،3،5،6،6،5. يمكننا كتابة هذا باستخدام عمودية العمودية كما يلي:

public class TestXOR{
	public static void main(String[] args){
		int[] array = {2,3,4,4,3,5,6,6,5};
		int v = 0;
		for (int i = 0; i < array.length; i++) {
			v ^= array[i];
		}
		System.out.println("العدد الذي يظهر مرة واحدة هو:" + v);
	}
}

النتيجة: العدد الذي يظهر مرة واحدة هو 2.

نحن نستخدم قواعد عمودية العمودية للحصول على عدد هو نفسه عند إجراء عمليات الإشارة أو عند إجراء عمليات الإشارة على نفسه.

طريقة الحساب المذكورة أعلاه:v=2^3^4^4^3^5^6^6^5;

بناءً على قانون التبادل وكذلك القواعد المذكورة أعلاه

يمكن استنتاج عدد يظهر مرة واحدة (يحتاج إلى استيفاء الشروط 2k من نفس النوع)

النتيجة

هذا هو محتوى تحليل الكود الخاص بالأوراق في Java كاملًا، نأمل أن يكون مفيدًا لكم. يمكن للمهتمين بالاستمرار في مراجعة المقالات ذات الصلة على هذا الموقع، ونرحب بالتعليقات على أي نقاط قصيرة، شكرًا للدعم الذي يقدمونه لنا!

البيان: محتوى هذا المقال تم جمعه من الإنترنت، حقوق الطبع والنشر تخص المالك الأصلي، تم جمع المحتوى من قبل المستخدمين عبر الإنترنت الذين قدموه بأنفسهم، هذا الموقع لا يملك حقوق الملكية، لم يتم تعديل المحتوى بشكل يدوي، ولا يتحمل أي مسؤولية قانونية متعلقة بذلك. إذا رأيت محتوى يشتبه في انتهاك حقوق النسخ، فأنت مرحب بك في إرسال بريد إلكتروني إلى: notice#oldtoolbag.com (عند إرسال البريد الإلكتروني، يرجى استبدال # ب @) للإبلاغ، وقدم الدليل على ذلك، إذا تم التحقق من ذلك، سيتم حذف المحتوى المزعوم بسرعة.

سيكون ممتعًا لك