Давталтгүй санамсаргүй тоо

Асуудлын томъёолол

Өгөгдсөн утгын мужид давталтгүйгээр бүхэл тоон санамсаргүй тооны багц үүсгэх шаардлагатай гэж үзье. Явж буй жишээнүүд:

  • бүтээгдэхүүн эсвэл хэрэглэгчдэд зориулсан өвөрмөц санамсаргүй код үүсгэх
  • хүмүүсийг ажилд хуваарилах (жагсаалтаас санамсаргүй байдлаар)
  • хайлтын асуулгад үг солих (Сайн уу seo-shnikam)
  • сугалаа тоглох гэх мэт.

Арга 1. Энгийн

Эхлэхийн тулд энгийн сонголтыг авч үзье: 10-ээс 1 хүртэлх 10 бүхэл тооны санамсаргүй олонлогийг авах хэрэгтэй. Excel-д суулгасан функцийг ашиглах ХЭРГИЙН ХООРОНД (ХООСОН ЗАМ) өвөрмөц байдал нь баталгаатай биш юм. Хэрэв та үүнийг хуудасны нүдэнд оруулаад 10 нүднээс доош хуулж авбал дахин давтагдах нь амархан:

Давталтгүй санамсаргүй тоо

Тиймээс бид өөр замаар явна.

Excel-ийн бүх хувилбарууд нь функцтэй байдаг Ранк (RANG), зэрэглэл тогтоох буюу өөрөөр хэлбэл багц дахь тооны дээд байрлалыг тодорхойлоход зориулагдсан. Жагсаалтын хамгийн том тоо нь rank=1, хоёр дахь нь rank=2 гэх мэт.

А2 нүдэнд функцийг оруулъя SLCHIS (RAND) Аргументгүйгээр томьёог 10 нүднээс доош хуулна. Энэ функц нь бидэнд 10-ээс 0 хүртэлх санамсаргүй 1 бутархай тооны багц үүсгэх болно:

Давталтгүй санамсаргүй тоо

Дараагийн баганад бид функцийг танилцуулж байна РанкХүлээн авсан санамсаргүй тоо бүрийн зэрэглэлд байр сууриа тодорхойлохын тулд:

Давталтгүй санамсаргүй тоо

Бид В баганад хүссэн зүйлээ авдаг - 1-ээс 10 хүртэлх хүссэн давтагдахгүй санамсаргүй бүхэл тоо.

Цэвэр онолын хувьд нөхцөл байдал үүсэх боломжтой SLCHIS нь бидэнд А баганад хоёр ижил санамсаргүй тоог өгөх бөгөөд тэдгээрийн зэрэглэл таарч, бид В баганад давтагдах болно. Гэсэн хэдий ч нарийвчлал нь аравтын бутархайн 15 байдаг тул ийм хувилбарын магадлал маш бага байна.

Арга 2. Нарийн төвөгтэй

Энэ арга нь арай илүү төвөгтэй боловч зөвхөн нэг массивын томъёог ашигладаг. Нэг хуудсан дээр 9-ээс 1 хүртэлх хугацаанд давтагдахгүй 50 санамсаргүй бүхэл тоонуудын жагсаалтыг гаргах хэрэгтэй гэж бодъё.

Дараах томьёог A2 нүдэнд оруулаад төгсгөлд нь дарна уу Ctrl + Shift + Enter (Үүнийг массивын томьёо болгон оруулахын тулд!) болон томьёог хүссэн нүднүүдийн тоо хүртэл хуулна уу:

Давталтгүй санамсаргүй тоо

Арга 3. Макро

Мэдээжийн хэрэг та Visual Basic програмчлалын тусламжтайгаар асуудлыг шийдэж чадна. Санамсаргүй түүврийн тухай хуучин нийтлэлүүдийн нэгэнд би өгөгдсөн интервалаас шаардлагатай тооны санамсаргүй давтагдахгүй тоог гаргадаг Lotto массивын макро функцийг аль хэдийн иш татсан.

  • Муж дахь өвөрмөц утгуудын тоог хэрхэн тоолох вэ
  • Жагсаалтаас элементүүдийг санамсаргүй сонгох

хариу үлдээх