Тамырда кандайча бөлүштүрүү кездешет жана кайда жок? Туура мисалдар менен түшүндүрмө бериңиз, эмне үчүн маалыматтар нормалдуу бөлүштүрүлгөн же жок.
Data Analyst
Геометрия боюнча бенчмаркты кантип түзөр элеңиз? Идеядан акыркы датасетке чейинки зынджирди сүрөттөп бериң.
val_a, val_b = 0, 0 t = None i < len(a) жана j < len(b) болсо: a_next = a[i][0] эгер i < len(a) болсо else float('inf') b_next = b[j][0] эгер j < len(b) болсо else float('inf') эгер a_next < b_next: val_a = a[i][1] t = a[i][0] i += 1 elif b_next < a_next: val_b = b[j][1] t = b[j][0] j += 1 башка: val_a = a[i][1] val_b = b[j][1] t = a[i][0] i += 1 j += 1 result.append((t, val_a + val_b)) return result
Бир өтүүдө RLE менен кысылган эки вектордун скалярдык көбөйтүүсүн эсептөөчү Python кодун жазгыла.
SQLдеги сорттоо операторунун аты эмне жана ал качан ишке ашырылат? Ишке ашыруунун тартибинде LIMIT кайда жайгашкан?
Афанасий азыр 2 аптадан бери япон сканворддорун 9 түстө колдоо менен чече алчу код жазууда, команданын жыйынында кесиптеши ага дагы бир жолу билдирип, ал өзү тезирээк иштей алат деп, программадан мааниси жок болуп калды. Бирок Афанасий, оптимист катары, бул тапшырманы дагы жакшыраак үйрөнүүгө чечим кабыл кылды жана төмөнкүлөрдү жасоого бел байлады — кесиптешинин сканворддор менен канчалык жакшы иштей турганын эсептеп чыгуу. Бул баалоо үчүн ал IoU метрикасынын бир аналогун тандады — эсептөө классикалык Intersection Over Union сыяктуу, бирок түстөр боюнча. Мындай иштейт: ар бир дал келген жана дал келбеген клетка оригинал жана чечим боюнча түстөр боюнча 1 кошот, ал эми бул клетка оригинал жана чечимде бар болсо, 1 кошулат (дал келген клеткалар үчүн бир гана кошулат). Андан соң, бул орточо түстөр саны боюнча эсептелет, эки ондук орун менен; нөл түстү түздөн-түз эсепке албоо керек, анткени ал түстөрдүн санына кирбейт. Кирүү биринчи сапта берилет, анда оригинал сүрөттүн саптары жана бағандары n жана m санында көрсөтүлөт. Андан соң 2n сап, м сан менен бөлүнгөн — биринчи n саптар жөнөтүлгөн чечимди, кийинки n — оригинал сүрөттү камтыйт. Ар бир сапта, экинчи саптан баштап, так m сан болот. Жооп катары бир сан чыгарыңыз, эки ондук орун менен, мисалдардагыдай. Кээ бир мисалдар: 1. Биринчи мисал [phone] -> 1.0 Түшүндүрүү: дал келген жана дал келбеген клеткалардын салымы (1.0 + 1.0 + 1.0 + 1.0) / түстөрдүн саны (4) 2. Экинчи мисал [phone] -> 0.08 Түшүндүрүү: дал келген жана дал келбеген клеткалардын салымы (0.25 + 0.0 + 0.0) / түстөрдүн саны (3); нөлдөр эсепке алынбайт, анткени ал клеткалар жана түстөрдүн саны үчүн: 3. Үчүнчү мисал [phone] бул жерде жөнөтүлгөн сүрөт башталат [phone] -- бул жерде аяктайт жөнөтүлгөн сүрөт 0 1 2 -- бул жерде башталат оригинал сүрөт [phone] -> 0.47 Түшүндүрүү: дал келген жана дал келбеген клеткалардын салымы (0.4 + 0.5 + 0.5) / түстөрдүн саны (3); нөлдөр эсепке алынбайт, анткени ал клеткалар жана түстөрдүн саны үчүн: 4. Төртүнчү мисал [phone] -> 0.0 Түшүндүрүү: дал келген жана дал келбеген клеткалардын салымы (0.0) / түстөрдүн саны (1); нөлдөр эсепке алынбайт, анткени ал клеткалар жана түстөрдүн саны үчүн.
sum_series маселесин чечүүнүн логикасын түшүндүрүңүз: эки баскычтуу убакыттык катарлардын жыйнагын кантип түзүү керек?
Псеудокод sum_series(a={{1, 2}, {5, 1}}, b={{2, 4}, {3, 6}, {9, 7}}) -> {{1, 2}, {2, 6}, {3, 8}, {5, 7}, {9, 8}} def sum_series(a, b): result = [] i , j = 0, 0 val_a, val_b = 0, 0 while i < len(a) or j < len(b): a_next = a[i][0] if i < len(a) else float('inf') b_next = b[j][0] if j < len(b) else float('inf') if a_next <= b_next: val_a = a[i][1] t = a[i][0] i += 1 else: val_b = b[j][1] t = b[j][0] j += 1 result.append((t, val_a + val_b)) return result
A. Алдыңкы жана акыркы бөлүмдөр N нөлдөн турган эрэмбеленген массив берилген. Ар бир кадамда, сиз бул массивдин биринчи же акыркы элементтеринен каалаган санын тандап, бардык тандаган элементтерге бир кошо аласыз. Мындай операциялардын белгилүү бир саны өткөндөн кийин, массивдин белгилүү абалына жетүү мүмкүнбү? Кирүү форматы Биринчи сапта 1 ≤ n ≤ 100000 болгон бүтүн сан бар — массивдеги элементтердин саны. Экинчи сапта, бош орун менен бөлүнгөн n сан — нөлдөн башка бүтүн сандар a1, a2, ..., an берилген, анда ai ≤ 10^18 — каалаган акыркы элементтер. Чыгуу форматы Эгер мындай абал жеткиликтүү болсо, "YES" деп чыгарыңыз, ал эми болбосо, "NO" деп чыгарыңыз. Мисал Кирүү [phone] Чыгуу YES Эскертпе [phone] абалдары төмөнкүдөй жеткиликтүү: биринчи үч элементке бир кошуу аркылуу, натыйжада [phone] акыркы төрт элементке бир кошуу аркылуу, натыйжада [phone] акыркы элементке бир кошуу аркылуу, натыйжада [phone]
Жаңы издөө алгоритмин текшерүү үчүн A/B тестти кантип орнотуу керек? Керектүү үлгү өлчөмүн жана тесттин узактыгын кантип аныктоого болот?
Геометрия боюнча бенчмарк үчүн ground truth жоопторду кантип чогултуу керек?
-- Колдонуучуларга жөнөтүлгөн промо-кампаниялар жөнүндө: -- 2.1 Ар бир кампания үчүн ийгиликтүү коммуникация алган колдонуучулардын санын көрсөтө турган суроо жазгыла. -- 2.2 Суроону өзгөртүп, жалпы алганда, эч кандай ийгиликтүү коммуникация албаган колдонуучулардын санын көрсөтүңүз, ар бир кампания үчүн. -- 3. communications таблицасына дагы бир талаа кошулду – event_timestamp – коммуникациянын жеткирилүү окуясынын датасы жана убактысы '%Y-%m-%d %H:%M:%S' форматында. -- Бардык кампаниялар үчүн, алардын ичинде ишке киргизилбегендер да, метриканы эсептөө: ийгиликтүү билдирүүнүн жеткирилүү биринчи аракетте жасалган катышуучулардын пайызы. -- Терезе функцияларын колдонсо болот же колдонбосо болот, бирок суроо оптималдуу болушу маанилүү.
Маалыматтардын нормал таразылуусуна жетиш үчүн кандай критерийлер болушу керек экенин так көрсөтүңүз.
Интервью берүүчүгө суроолорубу бар?
Псеудокод sum_series(a={{1, 2}, {5, 1}}, b={{2, 4}, {3, 6}, {9, 7}}) -> {{1, 2}, {2, 6}, {3, 8}, {5, 7}, {9, 8}} def sum_series(a, b): result = [] i , j = 0, 0 val_a, val_b = 0, 0 while i < len(a) or j < len(b): a_next = a[i][0] if i < len(a) else float('inf') b_next = b[j][0] if j < len(b) else float('inf') if a_next < b_next: val_a = a[i][1] t = a[i][0] i += 1 else: val_b = b[j][1] t = b[j][0] j += 1 result.append((t, val_a + val_b)) return result
-- Маркетологдор сервистин колдонмосунда промо-кампанияларды ишке киргизүүдө. Ике таблица бар: -- campaigns – кампаниялардын тизмеси -- - campaign – кампаниянын аты -- - action_type – кампаниянын түрү: "push" же "banner" -- communications – бул кампаниялардын колдонуучуларга жөнөтүлүшүнүн бекенд логдору -- - user_id – колдонуучу идентификатору -- - campaign – кампаниянын аты -- - status – окуянын абалы: "success" же "error" --------------------------------------------------------------------------- -- 1. Баштапкы, campaigns таблицасында 4 сап бар: -- | campaign | action_type | -- |-------------|-------------| -- | promo_dogs | push | <- кокустан көбөйтүлгөн -- | promo_cats | banner | -- | promo_cats | banner | <- эки сап -- | promo_rats | push | -- Мындан тышкары, белгилүү болгондой: -- promo_dogs жана promo_cats кампаниялары 100 колдонуучу менен ийгиликтүү өткөрүлдү жана ар бир колдонуучу бир коммуникация алды, -- ал эми promo_rats гана пландаштырылууда. -- 1.1 Суроо эмне көрсөтөт: SELECT campaign, COUNT(*) as rows, COUNT(DISTINCT co.user_id) AS users FROM campaigns AS ca INNER JOIN communications AS co ON ca.campaign = co.campaign GROUP BY ca.campaign AS campaign -- 1.2 Эгер JOIN түрү LEFT кылынса, жооп кандай өзгөрөт?
Бенчмарк деген эмне жана сиз көпмодалдуу моделдин сапатын кантип баалайсыз?
[At] акцияларынын киреше бөлүштүрүлүшү нормалдуу болобу? (2000-жылдан 2026-жылга чейин соода тарыхы боюнча минуттык баа өсүштөр)
-- 2. Кампаниялар таблицасы түзөтүлдү: дублдештирүүлүү жоюлду, ачкыч (PK) кошулду. -- Көбүрөөк кампаниялар өткөрүлдү, катачылыктардан улам колдонуучулар ийгиликсиз жеткирүү аракеттерин башташты, жана кээ бирлери эч көрсөтүлбөй калды. -- Колдонуучуларга жөнөтүлгөн промо-кампаниялар жөнүндө: -- 2.1 Ар бир кампания үчүн коммуникацияны ийгиликтүү алган колдонуучулардын санын көрсөтүүчү суроону жаз. -- 2.2 Суроону өзгөртүп, жалпы алганда ийгиликсиз коммуникация албаган колдонуучулардын санын көрсөт. -- communications таблицасына дагы бир талаа кошулду – event_timestamp – коммуникациянын жеткирүү окуясынын датасы жана убактысы '%Y-%m-%d %H:%M:%S' форматында. -- Бардык кампаниялар үчүн, ишке киргизилбегендер да киргизилген, метриканы эсептөө: биринчи аракетте ийгиликтүү билдирүүнү жеткирүү үлүшү. -- Терезе функцияларын колдонууга болот, же колдонбоого болот, бирок суроо оптималдуу болушу маанилүү.
D. Кытай отур-тутулары Владимир 3 кытай отур-тутуларынын топтамасын сатып алды. Алар такыр эле бирдей көрүнөт жана кутучада аралашып жатат, бирок нускамаларга ылайык, алар ар башка ишенимдүүлүккө ээ: 1. "Элиталык" — кемчилик пайызы 10% (жыйынтыктоо мүмкүнчүлүгү 0.9). 2. "Стандарт" — кемчилик пайызы 20% (жыйынтыктоо мүмкүнчүлүгү 0.8). 3. "Иконом" — кемчилик пайызы 40% (жыйынтыктоо мүмкүнчүлүгү 0.6). Владимир кездейсок биринчи отур-тутукту алат, өчүрөт жана ал ийгиликтүү иштейт. Бакыттуу Владимир калган эки отур-тутукту бири-экиден чыгара баштайт. Экинчи жана үчүнчү отур-тутуктардын да ийгиликтүү иштөө мүмкүнчүлүгү — кемчиликсиз? Жоопту үч ондукка жакындатып коюңуз.