Engineering Notes
Kanalga Telegramβda oβtish
Kanalda asosan backend engineeringga oid postlar yozib boriladi. Ba'zi postlarda xatoliklar bor. Postlar foydali boβlgan boβlsa adminni duo qilib qoβying. Rahmat. Contact: @Bobosher_Musurmonov LinkedIn: https://www.linkedin.com/in/bobosher-musurmonov
Ko'proq ko'rsatish2 603
Obunachilar
-224 soatlar
+17 kun
-130 kun
Postlar arxiv
2 603
P vs NP problem haqida ko'pchilik bilsa kerak, bilmaydiganlar bo'lsa shu joyida to'xtab, o'rganib kelsangiz bo'ladi. Ko'pchilik P=NP ekanini isbotlash faqat RSAga o'xshash assimmetrik kriptografiyani buzishga yordam beradi deb o'ylaydi. Aslida esa RSAni buzish shunchaki xamir uchidan patir.
Biror masala NP bo'lishi uchun uni deterministic approachda polynomial vaqtda yecha oladigan algoritmni bilmasligimiz, lekin potensial yechim berilsa yechim to'g'ri yoki noto'g'riligini polynomial vaqtda tekshirib ko'ra olishimiz kerak. Ya'ni NP masalalar qaysidir P ("oson") masalaning "teskarisi". Masalan, tub ko'paytuvchilarga ajratish (prime factorization) NP masala. Deylik, 4187 sonini tub ko'paytuvchilarga ajratish "qiyin", lekin 53 va 79 berilsa rostdan ham ularning ko'paytmasi 4187 bo'lishini oson aniqlay olamiz.
Demak bizda shunaqa funksiya borki, unga NP masala javobi input sifatida berilsa u to'g'ri yoki noto'g'ri ekanini polynomial vaqtda ayta oladi. "Switching Circuit Theory" (O'tkazgich sxemalari nazariyasi)ga ko'ra agar input uzunligi chekli deb olinsa bu turdagi har qanday funksiyani "AND", "OR", "NOT"ga o'xshash mantiqiy bloklar kombinatsiyasi (sxema) sifatida tasvirlash mumkin.
NP-complete savollar orasida Satisfiability problem (qanoatlantirish masalasi) nomli masala bor. Deylik, sizda bir qancha mantiqiy o'zgaruvchilar va mantiqiy operatorlardan iborat mantiqiy ifoda bor. Masala sharti, o'zgaruvchilarga qanday qiymat berilsa umumiy ifoda True (Rost) qiymatga ega bo'lishini topish.
Biz tepada aytgan mantiqiy bloklar kombinatsiyasini ham mantiqiy ifoda sifatida yozsak bo'ladi. Faqat har bir mantiqiy operator qanday ishlashi kerakligini qoidalar shaklida kiritish uchun yana qo'shimcha ifodalar qo'shish kerak bo'ladi (masalan, AND bloki faqat ikkala input ham true bo'lganida true natija qaytaradi). Natijada SAT masalasining xususiy ko'rinishi, CIRCUIT-SATga ega bo'lamiz.
Xo'sh, CIRCUIT-SAT nima qila oladi? Unga ma'lum natija berilsa shu natijaga erishish uchun mantiqiy sxemaga qanday input kiritish kerakligini aniqlay oladi. Har qanday chekli matematik funksiyani mantiqiy sxema sifatida tasvirlashimiz mumkinligini eslasak, demak u har qanday funksiyadan ma'lum bir natijani olish uchun unga qanday qiymat(lar) berish kerakligini aniqlay oladi. Ya'ni u har qanday funksiyani "orqaga qaytara oladi". Har qanday shifr, har qanday ma'lumotni qayta ishlash farqi yo'q. Funksiyaning o'zi deterministik bo'lsa bo'ldi.
Qisqa qilib aytganda, P=NP ekanini isbotlash bizga har qanday algoritmni tezda "orqaga qaytarish" imkoniyatini beradi. Lekin hali isbotlay olganimiz yo'q. Bu degani, bizda hozir ham har qanday funksiyani "orqaga qaytara oladigan" algoritmlarimiz bor, lekin ular hozircha juda sekin ishlaydi. Masalan, RSAda ishlatiladigan 2 ta 200 xonali atrofidagi sonlarni ko'paytirishni "orqaga qaytarish" uchun hozirgi algoritmlarga yuzlab yoki minglab yillar vaqt kerak bo'ladi.
P.S. Mavzuni chuqur bilmasligim yoki postni soddalashtirish maqsadida qilingan xatolar bo'lishi mumkin.
@boboshersnotes
2 603
Repost from Competitive Programming Uz
Ana endi rasman: Mardon Hazratov Xalqaro Informatika Olimpiadasi π₯ Bronza medali sohibi.
Bu πΊπΏ O'zbekiston uchun IOI tarixida 3-bronza medali bo'ldi.
Tabriklaymiz π
π§βπ» @cp_uz
2 603
Rust:
Types are static and predefined in the compile time, values are immutable.
Python:
Datatype of your variable can change during runtime. Who tf needs static typing? You know what, let's change the source code during runtime.
2 603
Toshkentda dasturlashdagi aynan biror yo'nalish yoki texnologiya bo'yicha emas, deylik computer sciencedagi ba'zi core mavzular bo'yicha meetup yoki shunga o'xshash biror event qilsak, nima deysiz, bu kimgadir qiziq bo'ladimi?
2 603
From a recent conversation:
Me:
Do you know Sokhib aka, the Rust and stuff guy?
Friend:
No, haven't heard of himπ€
Me:
Aka Yuri Katsuki, Dark Voyage, Orzklv
Friend:
Wait, are you saying they're all the same person? Damn, I thought they'd be such a good team together.
Me: π€£
2 603
Yangi jamoamda kiberxavfsizlik bo'yicha ishlaymiz. Terminalimni yashilga o'zgartirdim. Endi 4 ta monitor, RGB klaviatura bilan bitta hoodie kerak.
2 603
Umrida FPning yaqinidan ham o'tmaganlar Haskell trash deganida yo'q, shunchaki sizlar FPni tushunmaysizlar deganim uchun oxiri communitydan chiqib ketishga to'g'ri keldi. Yana hamma FPchilarni radikal deydi ))
2 603
Iterm2'dan zerikdim. Boshqa qiziqroq terminal ishlatib ko'rmoqchiman, hozircha Alacritty va Kitty variantlari qiziqtirayapti. Siz qanday terminal ishlatasiz?
2 603
Closing the day with just a tiny bit of numerical analysis, one of my least favourite topics for a long time.
https://www.youtube.com/watch?v=dShtlMl69kY
2 603
ML deganda hayoliga birinchi bo'lib Machine Learning emas Meta Language keladigan kam sonli odamlardan biri bo'lsam kerak.
2 603
Bugungi prezentatsiyaga link:
https://docs.google.com/presentation/d/1p7Ria1qAYRaI4y7JRnt678nPMbljrF8ua3yszF84hEU/edit?usp=sharing
2 603
Talk was pretty informative (but I don't necessarily agree with all of his points), but one thing that caught my attention more is the comments section. Of course, most of them are counter-arguments, but not in a way *we* used to, where "This language/paradigm is good because I only know this thing" is the theme of 90% arguments. I wish backing your point with facts was a common sense in local communities.
