Sobes.tech

Data Analyst

Ինչպե՞ս կստեղծեիք գեոմետրիայի բենչմարկը: Նկարագրեք շղթան գաղափարից մինչև վերջնական տվյալների հավաքածու։

126

Որտե՞ղ է իրական կյանքում նորմալ բաշխումը հանդիպում, և որտեղ՝ ոչ: Տրամադրեք կոնկրետ օրինակներ և բացատրություն, թե ինչու տվյալները նորմալ բաշխված են կամ ոչ։

126

Ներկայացրեք sum_series խնդիրն լուծելու տրամաբանությունը՝ ինչպես կառուցել երկու աստիճանավոր ժամանակային շարքերի գումարը։

123

Ինչ է կոչվում SQL-ում դասավորության օպերատորը և երբ է այն կատարվում: Որտե՞ղ է LIMIT-ը կատարողական կարգում:

123

Աֆանասիյ արդեն 2 շաբաթ է զբաղվում է կոդ գրելիս, որը կարող է լուծել ճապոնական խաչվերքերը՝ աջակցությամբ ինը գույների, երբ հաջորդ հանդիպմանը գործընկերը հայտնել է, որ ինքն է կարողանում ավելի արագ կատարել խնդիրը, և ծրագրում արդեն իմաստ չկա: Բայց Աֆանասիյ, որպես օպտիմիստ, որոշեց այս խնդիրը ևս ավելի լավ ուսումնասիրել և անել հետևյալը՝ հաշվարկել, թե որքան լավ է գործընկերը հաղթահարում խաչվերքերը։ Այս գնահատման համար նա ընտրեց IoU մետրիակի մի նմանակ՝ հաշվարկը տեղի կունենա նույն կերպ, ինչպես դասական Intersection Over Union-ը, բայց գույների վրա: Աշխատում է այսպես. յուրաքանչյուր համընկնող բջիջը ըստ գույնի ավելացնում է 1 թվանշակին, իսկ բջիջը ըստ գույնի ավելացնում է 1՝ ինչպես է այդ բջիջը բնօրինակում և լուծման մեջ (համընկնող բջիջների համար ավելացվում է միայն մեկ): Այնուհետև հաշվարկը կատարվում է գույների քանակով՝ միջին, երկու տասնորդական տեղերով; զրո գույնը չի համարվում, այդ պատճառով հաշվարկներում չպետք է հաշվի առնել այդ գույնի բջիջները։ Մուտքը առաջին տողում նշվում է, թե քանի տող n և սյունակ m (նստած այդ կարգով) պարունակում է բնօրինակի նկարը։ Այնուհետև հետևում է 2n տող, որոնք պարունակում են m թվեր՝ բաժանված բացատներով՝ առաջին 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); զրոները հաշվի չեն առնում, ոչ որպես բջիջներ ներկայացումներում, ոչ գույների քանակում։

123

val_a, val_b = 0, 0 t = None i < len(a) կամ j < len(b) եղած ժամանակ: a_next = a[i][0] եթե i < len(a) այլապես float('inf') b_next = b[j][0] եթե j < len(b) այլապես 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

123

Գրեք Python կոդ, որը հաշվարկում է երկու RLE-ով սեղմված վեկտորների սիմվոլային արտադրյալը մեկ անցումով։

123

Պսևդոկոդ 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

121

A. Նախապատվություններ և Սուֆիքսներ Տրված է դասավորված զանգված n զրոներով: Յուրաքանչյուր քայլում, դուք կարող եք ընտրել այս զանգվածի առաջին կամ վերջին որոշակի քանակությամբ տարրեր և ավելացնել մեկին բոլոր ընտրված տարրերին: Հնարավոր է հասնել նշված վիճակին զանգվածում որոշակի քանակությամբ այդպիսի գործողությունների հետո: Մուտքային ձևաչափ Առաջին տողում նշված են երկու թիվ՝ n — զանգվածի տարրերի քանակը և K — տարբեր սելեկցիաների քանակի սահմանափակում: Երկրորդ տողում՝ n թիվ՝ զանգվածի տարրերը: Ելքային ձևաչափ Տպեք "YES", եթե այդպիսի վիճակ հասանելի է, և "NO", եթե ոչ: Օրինակ Մուտք [phone] Ելք YES Նշում [phone] վիճակները կարելի է հասնել հետևյալ կերպ. առաջին երեք տարրերին ավելացնել մեկ, ստանալով [phone] վերջին չորս տարրերին ավելացնել մեկ, ստանալով [phone] վերջին տարրին ավելացնել մեկ, ստանալով [phone]

116

Ինչպես հավաքել ground truth պատասխաններ գեոմետրիայի բենչմարկի համար?

116

Ինչպե՞ս կկազմեք A/B թեստ նոր որոնման ալգորիթմը ստուգելու համար: Ինչպե՞ս որոշել անհրաժեշտ նմուշի չափը և թեստի տևողությունը։

115

-- Օգտագործողներին ուղարկված խթանիչ արշավների մասին: -- 2.1 Գրել հարցում, որը ցույց է տալիս յուրաքանչյուր արշավի համար հաջողությամբ հաղորդակցություն ստացած օգտվողների քանակը: -- 2.2 Փոխել հարցումը՝ ցույց տալու համար՝ ընդհանուր առմամբ, այն օգտվողների քանակը, ովքեր վերջապես ոչ մի հաջող հաղորդակցություն չեն ստացել, յուրաքանչյուր արշավի համար: -- 3. communications աղյուսակին ավելացվել է ևս մեկ դաշտ՝ event_timestamp – հաղորդակցության առաքման իրադարձության ամսաթիվը և ժամը '%Y-%m-%d %H:%M:%S' ձևաչափով: -- Բոլոր արշավների համար, ներառյալ չսկսվածները, հաշվարկել ցուցանիշը՝ օգտվողների մասնաբաժինը, որոնց հաջող հաղորդագրության առաքումը կատարվել է առաջին փորձից: -- Կարող են օգտագործվել պատուհանային ֆունկցիաներ կամ ոչ, բայց կարևոր է, որ հարցումը լինի օպտիմալ։

113

Անհրաժեշտ է հստակ նշել այն չափանիշները, որոնք պետք է կատարվեն տվյալների նորմալ բաշխման համար։

111

Կա՞ն հարցեր ձեր հարցազրույցի վարիչին:

110

Պսևդոկոդ 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

108

Ի՞նչ է բենչմարկը և ինչպես կգնահատեիք մուլտիմոդալ մոդելի որակը։

107

-- Մարքեթոլոգները գործարկում են պրոմո-камպանիաներ ծառայության հավելվածում: Կան երկու աղյուսակներ: -- 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?

107

Կա՞ արդյոք [անուն] բաժնետոմսերի եկամտաբերությունը նորմալ բաշխված: (Ամենրոպե աճեր ողջ առևտրային պատմության ընթացքում 2000-ից մինչև 2026 թվականները)

101

D. Չինական կրակոցներ Վլադիմիրն առել է 3 չինական կրակոցների հավաքածու։ Նրանք շատ նման են և խառնված են տուփում, բայց ըստ հրահանգների, ունեն տարբեր հուսալիություն: 1. "Էլիտ" — թերության մակարդակ 10% (հաջողության հավանականություն 0.9): 2. "Ստանդարտ" — թերության մակարդակ 20% (հաջողության հավանականություն 0.8): 3. "Իկոնոմ" — թերության մակարդակ 40% (հաջողության հավանականություն 0.6): Վլադիմիրը պատահականորեն վերցնում է առաջին կրակոցը, վառում է, և այն հաջողությամբ աշխատում է։ Ուրախ, Վլադիմիրը որոշում է վառել մնացած երկու կրակոցները մեկը մյուսի հետևից։ Երկրորդ և երրորդ կրակոցների նույնպես հաջողությամբ աշխատելու հավանականությունը — առանց թերության? Զուգահեռեք պատասխանը երեք տասնորդական թվով։

99

-- 2. Տվյալների աղյուսակը campaigns թարմացվել է՝ կրկնօրինակումները հեռացվել են, ավելացվել է բանալի (PK): -- Ավելի շատ արշավներ են իրականացվել, սխալների պատճառով օգտվողները սկսել են ստանալ անհաջող հաղորդագրության փոխանցման փորձեր, և որոշներին ընդհանրապես չի հաջողվել ցուցադրել: -- Օգտագործողների ուղարկած պրոմո-արշավների մասին՝ -- 2.1 Գրեք հարցում, որը ցույց է տալիս, թե յուրաքանչյուր արշավի համար քանի օգտվող է հաջողությամբ ստացել հաղորդագրությունը: -- 2.2 Խմբագրեք հարցումը՝ ցույց տալու համար՝՝ ընդհանուր առմամբ ոչ մի հաջող հաղորդագրություն չստացած օգտվողների թիվը՝ յուրաքանչյուր արշավի համար: -- communications աղյուսակին ավելացվել է ևս մեկ դաշտ՝ event_timestamp՝ հաղորդագրության փոխանցման իրադարձության ամսաթիվը և ժամը՝ '%Y-%m-%d %H:%M:%S' ձևաչափով: -- բոլոր արշավների համար, ներառյալ չսկսվածները, հաշվեք չափանիշը՝ -- օգտվողների մասնաբաժինը, որոնց հաջող հաղորդագրության փոխանցումը կատարվել է առաջին փորձից: -- կարող են օգտագործվել պատուհանային ֆունկցիաներ, կամ առանց դրանց, բայց կարևոր է, որ հարցումը լինի օպտիմալ։

99
/3