سؤال

هل يمكن لشخص يرجى الإشارة إلى موقع حيث يمكنني العثور على خوارزمية لحساب كفاءة صحيح الأسي للقوى كبيرة باستخدام C #؟

وعلى سبيل المثال. أريد لحساب 2 ^ 60000 أو 3 ^ 12345

هل كانت مفيدة؟

المحلول

وإذا لم هذا هو الواجب المنزلي، وربما كنت لا تريد لفة تنفيذ الخاص بك من الأسي الدقة التعسفي. حساب الأس كبيرة من النوع الذي وصف معقد - أداء جانبا

وأود أن أوصي باستخدام واحدة من التعسفية المكتبات الدقة الحسابية الموجودة، مثل GMP - معظمها المكتبات للوصول إليها من C #.

وF # ديه دعم الحساب الدقة التعسفي استخدام فئة BIGINT (والتي يمكنك أيضا الوصول إليها من C # إذا قمت باستيراد التجمع كان في). ومع ذلك، وأنا لا أعرف كيف محسن BIGINT الأسية هي.

إذا كنت مجرد محاولة للتعرف على خوارزميات فعالة لالأسي، قد ترغب في النظر في ساحة -و-ضرب خوارزمية لالأسي.

نصائح أخرى

يمكن أن تحسب على نحو فعال

وصحيح الأسي باستخدام طريقة تعرف باسم "الأس بواسطة تربيع" صلة .

وهذه الطريقة يمكن أن تستخدم أيضا لحساب الأسي وحدات صلة ، والذي يستخدم في بعض طرق التشفير غير المتماثلة مثل RSA.

والتحقق من ذلك: IntX للحصول على العمل مع الأعداد الصحيحة الكبيرة. قد يكون لديك لكتابة التنفيذ الخاص بك من السلطة، ولكن منذ ويدعم الضرب، وهذا لا ينبغي أن يكون من الصعب للغاية.

وتعديل بواسطة 280Z28: تنفيذ الأخرى التي تشمل أسير الحرب سريع، ModPow، وبريماليتي الاختبار هو هذا <وأ href = "http://www.codeproject.com/KB/cs/biginteger.aspx" يختلط = "نوفولو noreferrer" > BigInteger تنفيذ (مشروع القانون)، وهو ما قد استخدمت على المشاكل مشروع أويلر في الماضي - على الرغم من أنني الآن العمل مع NET 4.0 واستخدام لها <لأ href = "http://msdn.microsoft.com /en-us/library/system.numerics.biginteger(VS.100).aspx "يختلط =" نوفولو noreferrer "> تنفيذ System.Numerics.BigInteger .

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top