انجمن‌های فارسی اوبونتو

لطفاً به انجمن‌ها وارد شده و یا جهت ورود ثبت‌نام نمائید

لطفاً جهت ورود نام کاربری و رمز عبورتان را وارد نمائید




نویسنده موضوع: سوال اعداد  (دفعات بازدید: 536 بار)

0 کاربر و 1 مهمان درحال مشاهده موضوع.

آفلاین dwo0d9574

  • Newbie
  • *
  • ارسال: 11
  • You will reap what you plant in your minds farm
سوال اعداد
« : 17 تیر 1395، 05:34 ب‌ظ »
سلام عید همه مبارک
میخوام احتمال اعداد یازده رقمی رو نمایش بدم و داشته باشم
یعنی لیست تمام اعداد
۰۱۳۲۱۳۲۳۱۳۸
یا
۲۱۳۴۵۲۱۲۳۱۲
میخوام احتمالشون رو داشته باشم
میخوام یه لیست از شماره تلفن های ۱۱ رقمی درست کنم
چیکار کنم؟ کسی هست کمک کنه؟

آفلاین B

  • Sr. Member
  • *
  • ارسال: 354
  • جنسیت : پسر
پاسخ : سوال اعداد
« پاسخ #1 : 17 تیر 1395، 09:20 ب‌ظ »
perl -e 'BEGIN{$|++;}{for($i=10000000000;$i<99999999999;$i++){printf "%011d\n",$i;}}'
اگه میخوایی کمتر از ۱۱ رقم باشه؛ یعنی ۰و ۱ و ۲ و .. ۱۰۰ و .۱۰۰ و یا 01231212 یا 00000121213 , . . باشه بجای اون 10000000000 بنویس   0 

واسه اینکه خروجی هم توی فایل زخیره باشه باید اینطوری عمل کنی:

perl -e 'BEGIN{$|++;}{for($i=10000000000;$i<99999999999;$i++){printf "%011d\n",$i;}}' > FILE

ولی زمان زیادی میبره تولید این اعداد؛
اگه 100 هزار عدد رو توی 1.5 ثانیه درست کنه؛ باید یک میلیون بار این روند رو انجام بده؛ که میشه یک میلیون و پونصد هازار ثانیه که میشه 25 هزار دقیقه که اینم میشه 416 ساعت که میشه 17 روز ؛( سرعت سیستم من خیلی پایینه)

و هر خط هم ۱۲ بایت نر نظر بگیرم کل اعدادمون میشه 12 * 10000000000 بایت که میشه 1 میلیارد کیلو ؛ ۱ میلیون مگ ؛ یک هزار گیگ  ؛ که چیزی در حدود یک ترابایت میشه حجمش!!



-------------
راه حل دیگه با استفاده از crunch هستش
$ crunch  11 11 0123456789
Crunch will now generate the following amount of data: 1200000000000 bytes
1144409 MB
1117 GB
1 TB

این نرم افزار واسه ایجاد دیشکنری برای جملات ورود بزور هستش؛ ولی میتونی به شکل بالا ازش استفاده کنی؛ چون به زبان سی نوشته شده سرعت بیشتری داره؛ ولی تاثیری در حجم فایل خروجی نداره؛ همن یک ترابایت داده رو شما در نهایت خواهدی داشت
« آخرین ویرایش: 17 تیر 1395، 09:32 ب‌ظ توسط B »