رفتن به مطلب
  • 0

امیرحسین قاسمی

سوال

سلام،

حتما دیدین که مثلا پایتون میتونه اعداد بسیار بزرگ رو به توان هم برسونه، در هم ضرب کنه یا هر عملیات دیگه ای روی ارقام انجام بده. چطوری توی B4a یک همچین محاسبه های بزرگی داشته باشیم؟ من حتی از متغیر Long هم استفاده کردم اما متاسفانه هنگام محاسبه دقیق محاسبه نمی کنه و از نماد e داخل جواب استفاده میشه. راه حلی هست این محدودیت رو برداریم؟

لینک ارسال
به اشتراک گذاری در سایت های دیگر

4 پاسخ به این سوال تاکنون داده شده است

ارسال‌های توصیه شده

در ۱۴۰۰/۱۱/۲۰ در 23:45، محمدرضا شاهپیری گفته است:

Long:

MAX VALUE = 9223372036854775807

MIN VALUE = -9223372036854775808

عزیز عددتون از اینم بیشتره؟ چون لانگ تا این مقدار رو میتونه هندل کنه

  جوابش بله از اینم زیاده. آخه مثلا پایتون حتی ۲۰۰ رقم بیشتر هم محاسبه میکنه. شما چنین چیزی فرض کنید: باید یک عدد مثلا ۵۰۰هزار ضربدر مثلا ۸هزار بشه بعد به توان مثلا ۱۵ برسه و بعدش باید باقی مانده تقسیمش بر یک عدد دیگه به دست بیاد!

یادتون باشه یک تاپیک زده بودم درباره تبادل امن کلید به روشی دیفی هلمن. میخوام از اون استفاده کنم. توی سمت سرور مشکلی نیست همه چی درست محاسبه میشه اما توی b4a محاسبه نمیشه و کلید توی هر دو طرف یکسان در نمیاد.

لینک ارسال
به اشتراک گذاری در سایت های دیگر

در ۱۴۰۰/۱۱/۲۱ در ۰۱:۳۲، امیرحسین قاسمی گفته است:

  جوابش بله از اینم زیاده. آخه مثلا پایتون حتی ۲۰۰ رقم بیشتر هم محاسبه میکنه. شما چنین چیزی فرض کنید: باید یک عدد مثلا ۵۰۰هزار ضربدر مثلا ۸هزار بشه بعد به توان مثلا ۱۵ برسه و بعدش باید باقی مانده تقسیمش بر یک عدد دیگه به دست بیاد!

یادتون باشه یک تاپیک زده بودم درباره تبادل امن کلید به روشی دیفی هلمن. میخوام از اون استفاده کنم. توی سمت سرور مشکلی نیست همه چی درست محاسبه میشه اما توی b4a محاسبه نمیشه و کلید توی هر دو طرف یکسان در نمیاد.

اوه🙄. در این صورت باید از BigInteger استفاده کنید. کتابخونه اش تو سایت مرجع هست

bignumbers-library.9540.zip

لینک ارسال
به اشتراک گذاری در سایت های دیگر

در ۱۴۰۰/۱۱/۲۰ در 22:33، امیرحسین قاسمی گفته است:

سلام،

حتما دیدین که مثلا پایتون میتونه اعداد بسیار بزرگ رو به توان هم برسونه، در هم ضرب کنه یا هر عملیات دیگه ای روی ارقام انجام بده. چطوری توی B4a یک همچین محاسبه های بزرگی داشته باشیم؟ من حتی از متغیر Long هم استفاده کردم اما متاسفانه هنگام محاسبه دقیق محاسبه نمی کنه و از نماد e داخل جواب استفاده میشه. راه حلی هست این محدودیت رو برداریم؟

تا جایی که امتحان کردم اگه از round استفاده کنید دیگه نماد e را نشون نمیده ولی این که میگید عدد بزرگه را من راه حلی سراغ ندارم

لینک ارسال
به اشتراک گذاری در سایت های دیگر

Long:

MAX VALUE = 9223372036854775807

MIN VALUE = -9223372036854775808

عزیز عددتون از اینم بیشتره؟ چون لانگ تا این مقدار رو میتونه هندل کنه

لینک ارسال
به اشتراک گذاری در سایت های دیگر

بایگانی شده

این موضوع بایگانی و قفل شده و دیگر امکان ارسال پاسخ نیست.

  • کاربران آنلاین در این صفحه   0 کاربر

    • هیچ کاربر عضوی،در حال مشاهده این صفحه نیست.
×
×
  • اضافه کردن...