O‘zbеkiston rеspublikasi oliy va o‘rta maxsus ta’lim vazirligi andijon davlat univеrsitеti axborot tеxnologiyalari va kompyutеr injiniringi fakultеti axborot tеxnologiyalari kafеdrasi kurs ishi
Download 0.53 Mb.
|
418-guruh Shamsuddinov Sh
- Bu sahifa navigatsiya:
- Tasodifiy raqam.
int
float complex 1 x = 1 # int 2 y = 2.8 # float 3 z = 1j # complex Python dasturlash tilida har qanday o'zgaruvchini turini aniqlash uchun type() funksiyasidan foydalangan holda keladigan o'zgaruvchi yoki belgilangan o'zgaruvchini turini aniqlash imkoniyati mavjud. 1 x = 1 2 y = 2.8 3 z = 1j 4 5 print(type(x)) 6 print(type(y)) 7 print(type(z)) int - bu turgan tegishli sonlar o'nlik sonlar bo'lmagan butun qiymatga ega qoldiq qismiga ega bo'lmagan va manfiy yoki musbat sonlar kiradi. Python dasturlash tilida boshqa dasturlash tillari kabi sonlar turini bir turdan boshqa bir turga o'tkazish imkoniyati mavjud. Buning uchun int(), float()va complex() funksiyalardan foydalanishingiz mumkin. Tasodifiy raqam.Python random()tasodifiy raqamni hosil qilish funktsiyasiga ega emas , ammo Python randomtasodifiy raqamlarni chiqarish uchun ishlatilishi mumkin bo'lgan ichki modulga ega : 1
2 3 print(random.randrange(1, 10)) 9 Turli xil dasturlash tillarida tasodifiy sonlarni yaratish Hey! Men boshqasi bilan qaytdim. Ushbu blog mening sevimli dasturlash tillarida tasodifiy raqamlarni yaratish uchun to'plamdir. Mening maqsadim siz hozir ishlayotgan dasturlash tilida tasodifiy sonlarni yaratishni o'rganish uchun yagona manbaga ega bo'lishdir. Tasodifiy raqamlarni yaratish dasturlashning eng muhim jihatlaridan biridir. Ko'p karta o'yinlari omadga qarab o'ynaladi. Bu omad tasodifiy kartani olishdan boshqa narsa emas. Shuningdek, tasodifiy sonlarni yaratishda statistik namuna olish, kriptografiya, qimor o'yinlari va boshqa ko'plab ilovalar mavjud. Bu butun Las-Vegasni boshqaradigan NARSA!!
Xo'sh, bu tilda tasodifiy raqamlarni qanday yaratish mumkin? Quyidagi kod buni amalga oshiradi: var rand = Math.random();
Nihoyat, biz uni polga qo'yamiz, ya'ni biz ushbu mahsulotdan kichik yoki teng bo'lgan eng yaqin butun sonni olamiz. Ushbu qavatli mahsulot 0 va N-1 orasida. Buning sababi, 1 eksklyuziv. Shuning uchun yuqoridagi mahsulotimizda N tasodifiy qiymat sifatida tanlanishi mumkin emas. Nihoyat, polli mahsulot 1 ga oshiriladi. Endi umumiy tenglama 1 dan N gacha (ikkalasi ham) oralig'ida keladi. Java Java "asta-sekin o'ladigan" dasturlash tillaridan biridir. Ammo bugungi kunda ham u boshqalarga qaraganda ko'plab ilovalarga ega. Java ning asosiy xususiyatlari tezlik, xavfsizlik va platformalararo ilovalardir. Java tilining asosiy sohalariga Android ilovalarini ishlab chiqish, dasturiy ta'minotni ishlab chiqish va boshqalar kiradi. Keling, tasodifiy raqamlarni qanday yaratishni ko'rib chiqaylik: double rand = Math.random(); JavaScript bilan bir xilmi? Javob "HA". Ammo bu yagona yo'lmi? Arzimaydi! Java.util paketidagi Random klassi bizga kerak bo'lgan hamma narsani beradi. Bu sinf mening oldingi blogimda amalga oshirilgan. Shunday qilib, agar siz ishlaydigan misolni ko'rishni istasangiz, mening oldingi blogimni bu erda o'qing. Eslatma: Ishlashdan oldin ushbu sinfni import qilganingizga ishonch hosil qiling. Shuning uchun, 1 dan N gacha bo'lgan tasodifiy sonni olish uchun biz quyidagi koddan foydalanamiz: Tasodifiy rand = yangi Random(); int r1 = rand.nextInt(N) + 1; C++ Mana muammo! Lekin birinchi navbatda bu yigitni tanishtiraman. C++ keng tarqalgan dasturlash tilidir. Bu asosan C ning kengaytmasi bo'lib, ob'ektga yo'naltirilgan dasturlash kabi xususiyatlarni o'z ichiga oladi. O'rganish ancha qiyinroq, lekin natijada dasturchiga o'z kodi ustidan ko'proq nazorat qilish imkonini beradi. C++ tilining asosiy ilovalariga raqobatbardosh dasturlash, video oʻyinlar va moliyaviy ilovalar kiradi. Aslida, u deyarli barcha maqsadlarda ishlatilishi mumkin. C++ bilan tasodifiy sonlarni qanday yaratish mumkin? Quyidagi kod 1 dan N gacha tasodifiy son hosil qiladi: int r = rand() % N + 1; Rand() funktsiyasi 0 va RAND_MAX oralig'idagi butun sonni qaytaradi. Qolgan modulni olib, biz funktsiya N-1 ga qaytishi mumkin bo'lgan maksimal qiymatni cheklaymiz. Nihoyat, unga 1 qo'shilishi bizga 1 dan N gacha (ikkalasi ham) tasodifiy qiymatni beradi. Kodingiz chiqishida biror narsani sezdingizmi? Tasodifiy qiymat yoki tasodifiy qiymatlar ketma-ketligi har doim bir xilmi? Quyidagi kodni ko'p marta ishlatdim, lekin bir xil natijaga erishdim: uchun (int i = 0; i < 5; i++)
#include #o'z ichiga std nom maydonidan foydalanish; int main() { srand (vaqt (NULL)); uchun (int i = 0; i < 5; i++) { cout << rand() % 5 << endl; } qaytish 0; Python
Lekin biz bu yerda faqat tasodifiy sonlarni yaratish uchunmiz. Buni quyidagicha amalga oshirish mumkin: tasodifiy import qilish chop random.randint(0, 5) Bu 1, 2, 3, 4 yoki 5 ni chiqaradi. Agar kattaroq raqamni xohlasangiz, uni ko'paytirishingiz mumkin. Masalan, 0 dan 100 gacha bo'lgan tasodifiy sonni quyidagicha ishlab chiqarish mumkin: random.random() * 100 Python shuningdek, roʻyxatdan tasodifiy tanlovni olish, roʻyxatni aralashtirish va boshqa koʻp narsalar uchun oʻrnatilgan funksiyalarga ega. tasodifiy import qilish myList = [2, 109, False, 10, “Lorem”, 482, “Ipsum”] random.choice (mening ro'yxatim) ro'yxatdagi #tasodifiy element tasodifiy.shuffle(roʻyxat) #roʻyxatni aralashtirib yubordi #misol = [109, 2, 10, “Loren”, False, “Ipsum”, 482] Python yordamida tasodifiy sonlarni yaratish haqida ko'proq ma'lumot olishingiz mumkin. Tezkor Swift dasturlash tili Apple tomonidan Objective-C dasturlash tilining ko'plab xususiyatlarini o'z ichiga olish va yaxshilash uchun ishlab chiqilgan. Swift - bu zamonaviy til va ulardan foydalanish oson. Bu iOS rivojlanishining asosidir. Quyidagi kod 0 dan 10 gacha (ikkalasi ham) tasodifiy sonni hosil qiladi: ruxsat raqami = Int.tasodifiy (da: 0 … 10) Ushbu kod 0 (shu jumladan) va 10 (eksklyuziv) o'rtasidagi tasodifiy raqamlarni hosil qiladi: let raqam = Int.tasodifiy(da: 0 ..< 10) Shuningdek, bizda Swift-da mantiqiy tasodifiy generator mavjud. Buni quyidagi tarzda amalga oshirish mumkin: let b = Bool.random() Va nihoyat, biz shunday tasodifiy kasrlarni ham yaratishimiz mumkin: let raqam = Float.random(da: 0 ..< 1) Swift, xuddi Python kabi, massivdan tasodifiy elementni qaytarish yoki massivni aralashtirish uchun o'rnatilgan funktsiyalarga ega: let nomlari = ["Ford", "Zaphod", "Trillian", "Artur", "Marvin"] let randomName = names.randomElement() //"nomlar" dan tasodifiy element oldi names.shuffle() //`nomlar` endi boʻlishi mumkin: [“Zafod”, “Marvin”, “Artur”, “Ford”, “Trillian”] Swift yordamida tasodifiy sonlarni yaratish haqida ko'proq ma'lumot olishingiz mumkin. C# C# Java tiliga juda o'xshaydi, lekin ancha qiyinroq. Bu eng ilg'or va qulay dasturlash tillaridan biridir. U Windows ilovalari, XML veb-xizmatlari, mijoz-server ilovalari va ma'lumotlar bazasi ilovalarini yaratish uchun ishlatiladi. Tasodifiy sonlarni yaratish xuddi Java-dagi Random sinfiga o'xshaydi. Quyidagi kodga qarang: Tasodifiy rnd = yangi Random(); int oyi = rnd.Keyingi(1, 13); // 1 dan 12 gacha raqam yaratadi int zar = rnd.Next(1, 7); // 1 dan 6 gacha raqam yaratadi int karta = rnd.Next(52); // 0 dan 51 gacha raqam yaratadi Bu juda ko'p kodlash edi. Ammo ushbu blog orqali biz turli xil dasturlash tillarida tasodifiy sonlarni yaratishning turli usullarini o'rganishga muvaffaq bo'ldik. Ushbu bilim bilan siz hatto Las-Vegasda o'z kazinongizni ochishingiz mumkin! Agar sizga ushbu blog yoqqan bo'lsa, qarsak chalish tugmasini 50 marta bosganingizga ishonch hosil qiling. Tasodifiy sonlarni hosil qilish Tasodifiy sonlarni qanday hosil qilish kerak. Siz dasturlash tillarida mashq qilyapsizmi va qanday generatsiya qilishni tushunishni xohlaysizmi tasodifiy sonlar? Kichkintoyni tashkil qilishga qaror qildingizmiyoki tanlov blogingizda va tanlov g'oliblarini tanlash uchun tasodifiy raqamlarni chiqarishga imkon beradigan oddiy va samarali xizmatni qidiryapsizmi? Shaxsiy kompyuter yordamida maktab loyihasi ishtirokchilarini jalb qilmoqchimisiz, lekin kompyuterga dasturlarni o'rnatishga vaqt / xohishingiz yo'qmi? Agar aynan shunday bo'lsa, men sizga mos echim topdim deb o'ylayman. Ushbu qo'llanmada, aslida men tushuntiraman tasodifiy sonlarni qanday hosil qilish u erda eng mashhur va keng qo'llaniladigan dasturlash tillari orqali. Bundan tashqari, men sizga bir xil veb-saytlar orqali qanday qilib bir xil natijaga erishishni ko'rsataman va ilovalar mobil telefonlar va planshetlar uchun: oxirgi ikki holatda kompyuter bilan ishlash talab qilinmaydi. Ammo, davom ettirishdan oldin, men savolning muhim bir nuqtasiga aniqlik kiritishni to'g'ri deb o'ylayman: aslida, kompyuterlar, mobil telefonlar va planshetlar tomonidan ishlab chiqarilgan raqamlar, aksariyat hollarda, aniqlanishi kerak psevdor tasodifiy. Sababi aniq: ular aniq tashqi sharoitlar (masalan, joriy sana va vaqt, protsessor holati, disk, ekran, o'rnatilgan dasturlar soni, veb-server holati va h.k.) asosida yaratilgan bo'lib, ular juda katta darajada bo'lsa-da. masofaviy yo'l, har doim bir xil raqamni olish uchun sun'iy ravishda "ko'paytirilishi" mumkin. |
ma'muriyatiga murojaat qiling