PDA

View Full Version : برنامه ایجاد اعداد بزرگ



naser008
جمعه 28 مهر 1396, 12:47 عصر
با سلام و عرض ادب
سوالی داشتم در مورد اینکه برنامه ای بخواهد اعداد بین 0 تا یک عدد 80 رقمی رو به ترتیب توی یک فایل تکست یا دیتابیس لیست کند چقدر زمان میبرد؟؟

مثلا اعداد بین 0 تا
11987904625697166532776746648320380374280100293470 930272690489102837043110636675
حجم دیتابیس در چه حدود خواهد بود؟؟
ضمنا سریع ترین برنامه ای که میتواند این کار را انجام دهد با چه زبانی باید نوشته شود؟؟
با سپاس

danialafshari
شنبه 29 مهر 1396, 02:24 صبح
با سلام و عرض ادب
سوالی داشتم در مورد اینکه برنامه ای بخواهد اعداد بین 0 تا یک عدد 80 رقمی رو به ترتیب توی یک فایل تکست یا دیتابیس لیست کند چقدر زمان میبرد؟؟

مثلا اعداد بین 0 تا
11987904625697166532776746648320380374280100293470 930272690489102837043110636675


حجم دیتابیس در چه حدود خواهد بود؟؟
ضمنا سریع ترین برنامه ای که میتواند این کار را انجام دهد با چه زبانی باید نوشته شود؟؟
با سپاس

با سلام
شما دارید توی تالار C# پیام میدید سعی کنید سوالتون مربوط به این تالار باشد
جدا از زبان برنامه نویسی هدفتون رو از این کار بگید آیا حتماً باید عدد باشه؟ منظورم برای ذخیره سازی و چرا؟
شما میتونید این رو بدون در نظر گرفتن زبان برنامه نویسی در بانک اطلاعاتی با نوع فیلد بعنوان مثال Nvarchar(80) یا بیشتر در Sql Server ذخیره کنید و از نظر زمانی، زمانی خاصی نمیخواهد و بلافاصله ذخیره میشود
موفق باشید

naser008
شنبه 29 مهر 1396, 09:19 صبح
با سلام
در مورد اینکه چرا اینجا پیام دادم چون احساس کردم زبان سی باید سریعترین زبان برای این کار باشد.
در مورد ساخت اعداد هم من قصد دارم هگز ۶۴ کاراکتری ایجاد کنم یعنی از صفر شروع بشود و تا ۶۴ کاراکتر f ادامه پیدا کند سپس هر کدام از آنها را طبق یک الگوریتم خاص به دو عدد عبارت مختلف تبدیل کنم و بینشون جستجو انجام بدم.
زمانی که هگز رو تبدیل به رویداد کنیم یعنی ما برای ساخت لیست هگز ۰ تا ۶۴ کاراکتر f تعداد حدودا ۸۰ رقم اعداد خواهیم ساخت به عبارتی در صورتیکه تمامی هگز ها ساخته شوند تعداد کل هگزهای ساخته شده حدودا ۸۰ رقم خواهد بود
برای همین میخواستم ببینم کلا امکان ساخت این تعداد هگز وجود دارد یا خیر؟؟ اگر بله حجم دیتابیس ذخیره سازی شده در چه حدود خواهد بود
با سپاس از پاسختان

336699
شنبه 29 مهر 1396, 10:18 صبح
با سلام
در مورد اینکه چرا اینجا پیام دادم چون احساس کردم زبان سی باید سریعترین زبان برای این کار باشد.
در مورد ساخت اعداد هم من قصد دارم هگز ۶۴ کاراکتری ایجاد کنم یعنی از صفر شروع بشود و تا ۶۴ کاراکتر f ادامه پیدا کند سپس هر کدام از آنها را طبق یک الگوریتم خاص به دو عدد عبارت مختلف تبدیل کنم و بینشون جستجو انجام بدم.
زمانی که هگز رو تبدیل به رویداد کنیم یعنی ما برای ساخت لیست هگز ۰ تا ۶۴ کاراکتر f تعداد حدودا ۸۰ رقم اعداد خواهیم ساخت به عبارتی در صورتیکه تمامی هگز ها ساخته شوند تعداد کل هگزهای ساخته شده حدودا ۸۰ رقم خواهد بود
برای همین میخواستم ببینم کلا امکان ساخت این تعداد هگز وجود دارد یا خیر؟؟ اگر بله حجم دیتابیس ذخیره سازی شده در چه حدود خواهد بود
با سپاس از پاسختان
رمز 64 کارکتری که شامل اعداد 0 تا 9 و حروف از a تا f باشه میشه : 16 به توان 64 :گیج:

چند میلیارد سال زمان لازم داره .

ژیار رحیمی
دوشنبه 01 آبان 1396, 11:32 صبح
سلام
در کل برداشت شما از حل این مسئله ناقص هست .اینکه بتوان یکباره تمام حالات ممکن را یکباره تولید کرد با توجه به زمان و فضای ذخیره سازی همانظور که دوستان گفتن در حد غیر ممکن هست.این جور مسئله ها را با یک معیار پیاده سازی(benchmark) برای تعدادی محدود رکورد مثلا 10000 یا 100000 رکورد پیاده سازی میکنن ،سپس با استفاده از زمان اجرا و فضای مورد نیاز بدست امده برای این تعداد رکورد میتوان زمان اجرا و فضای مورد نیاز کل مسئله را تخمین زد.موفق باشید