Kuidas sa looksid geomeetria jaoks bänčmargi? Kirjelda ahelat ideest kuni lõpliku andmekogumini.
Data Analyst
Afanasy juba 2 nädalat tegeleb koodi kirjutamisega, mis suudab lahendada jaapani ristsõnu, toetades üheksa värvi, kui järgmise kohtumise ajal teatas kolleeg, et ta suudab ise ülesande kiiremini lahendada, ning programmis pole enam mõtet. Kuid Afanasy, optimistina, otsustas sellele ülesandele veelgi rohkem aega pühendada ja teha järgmist — arvutada välja, kui hästi kolleeg ristsõnu lahendab. Selle hindamise jaoks valis ta mingi IoU metrika analoogi — arvutus toimub sarnaselt klassikalise Intersection Over Union'iga, kuid värvide järgi. See töötab järgmiselt: iga originaali ja lahenduse ruudus vastavalt värvile kattuv ruut lisab arvutajale 1, ning jagaja suurendatakse 1 iga sellise ruudu kohta originaalis ja lahenduses (kattuvad ruudud lisavad ainult ühe). Seejärel arvutatakse keskmine originaali pildi värvide arvu järgi, kahe kümnendkoha täpsusega; null ei ole värv, seetõttu ei tohiks seda metrikat arvutustes arvestada. Esimene rida näitab, mitu rida n ja veergu m sisaldab algset pilti. Seejärel järgnevad 2n rida, milles on m arvu, eraldatud tühikutega — esimesed n rida on saadetud lahendus, järgmised n — algne pilt. Iga rida, alates teisest, sisaldab täpselt m arvu. Vastuseks väljastage üks number, kahe kümnendkoha täpsusega, nagu näidetes. Mõned näited: 1. Esimene näide [phone] -> 1.0 Selgitus: kattuvate ja mitte kattuvate ruutude panus (1.0 + 1.0 + 1.0 + 1.0) / värvide arv (4) 2. Teine näide [phone] -> 0.08 Selgitus: kattuvate ja mitte kattuvate ruutude panus (0.25 + 0.0 + 0.0) / värvide arv (3); nullid ei arvesta, ei kui ruutude esitluses, ega värvide arvus. 3. Kolmas näide [phone] siin algab saadetud pilt [phone] -- siin lõpeb saadetud pilt 0 1 2 -- siin algab algne pilt [phone] -> 0.47 Selgitus: kattuvate ja mitte kattuvate ruutude panus (0.4 + 0.5 + 0.5) / värvide arv (3); nullid ei arvesta, ei kui ruutude esitluses, ega värvide arvus. 4. Neljas näide [phone] -> 0.0 Selgitus: kattuvate ja mitte kattuvate ruutude panus (0.0) / värvide arv (1); nullid ei arvesta, ei kui ruutude esitluses, ega värvide arvus.
Kirjutage Pythonis kood, mis arvutab ühe läbimisega kahe RLE-pressitud vektori skalaarkorrutise.
val_a, val_b = 0, 0 t = None kuni i < a pikkus või j < b pikkus: a_next = a[i][0] kui i < a pikkus muidu float('inf') b_next = b[j][0] kui j < b pikkus muidu float('inf') kui 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 muidu: 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
Selgitage sum_series ülesande lahendamise loogikat: kuidas koostada kahe astmelise ajaseeria summa?
Mis on selle SQL-päringu FROM, JOIN, GROUP BY ja SELECT loogiline täitmise järjekord?
Pseudo-kood 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
Kuidas nimetatakse SQL-is sorteerimisoperaatorit ja millal see täidetakse? Kus asub LIMIT täitmise järjekorras?
Kuidas seadistaksite A/B-testi uue otsingualgoritmi kontrollimiseks? Kuidas määrata vajaliku valimi suurus ja testi kestus?
Kuidas koguda ground truth vastuseid geomeetria võrdluseks?
A. Prefiksid ja Sufiksid Antud on sorteeritud massiiv, mis koosneb n nullist. Iga sammu jooksul saate valida suvalise arvu selle massiivi esimeste või viimaste elementide hulgast ning lisada ühe kõigile valitud elementidele. Kas on võimalik saavutada määratud massiivi seisund pärast teatud arvu selliseid operatsioone? Sissepääsu formaat Esimene rida sisaldab täisarvu 1 ≤ n ≤ 100000 — massiivi elementide arvu. Teine rida sisaldab n mitte-negatiivset täisarvu a1, a2, ..., an, mis on eraldatud tühikutega, kus ai ≤ 10^18 — soovitud lõplikud elemendid. Väljundi formaat Prindi "YES", kui selline seisund on saavutatav, ja "NO" kui mitte. Näide Sissepääs [phone] Väljund YES Märkus Sellised [phone] seisundid on saavutatavad järgmiselt: lisades ühe esimese kolme elemendi juurde, saame [phone] lisades ühe viimase nelja elemendi juurde, saame [phone] lisades ühe viimasele elemendile, saame [phone]
-- Kõigi kasutajatele saadetud reklaamikampaaniate kohta: -- 2.1 Kirjutage päring, mis näitab iga kampaania edukalt saanud kasutajate arvu. -- 2.2 Muutke päringut, et näidata: kasutajate arvu, kes lõpuks ei saanud ühtegi edukat kommunikatsiooni, iga kampaania kohta. -- 3. Tabelile communications lisati veel üks väli – event_timestamp – kommunikatsiooni kohaletoimetamise sündmuse kuupäev ja kellaaeg vormingus '%Y-%m-%d %H:%M:%S'. -- Kõigi kampaaniate jaoks, kaasa arvatud mitte käivitunud, arvutage näitaja: kasutajate osakaal, kellele edukas sõnumi kohaletoimetamine toimus esimesel katsel. -- Võib kasutada akna funktsioone või mitte, kuid oluline on, et päring oleks optimeeritud.
Selgitage selgelt välja kriteeriumid, mis peavad olema täidetud, et andmed omaksid normaaljaotust.
Kas teil on küsimusi intervjueerijale?
Pseudokood 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
Mis on benchmark ja kuidas hindaksite mitmemoodilise mudeli kvaliteeti?
-- Marketingijad alustavad promosüsteemi kampaaniaid rakenduses. On kaks tabelit: -- campaigns – kampaaniate nimekiri -- - campaign – kampaania nimi -- - action_type – kampaania tüüp: "push" või "banner" -- communications – backendi log, mis näitab nende kampaaniate saatmist kasutajatele -- - user_id – kasutaja identifikaator -- - campaign – kampaania nimi -- - status – sündmuse staatus: "success" või "error" --------------------------------------------------------------------------- -- 1. Alguses on campaigns tabelis 4 rida: -- | campaign | action_type | -- |-------------|-------------| -- | promo_dogs | push | <- juhuslikult duplitseeritud -- | promo_cats | banner | -- | promo_cats | banner | <- kaks rida -- | promo_rats | push | -- Samuti on teada, et: -- kampaaniad promo_dogs ja promo_cats viidi edukalt läbi 100 kasutajaga ning iga kasutaja sai ühe kommunikatsiooni, -- ning promo_rats on alles planeerimisfaasis. -- 1.1 Mida näitab päring: 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 Kuidas muutub vastus, kui JOIN tüüpi muudetakse LEFT-ks?
Kas [nimi] aktsiate tuluud jaotumine on normaaljaotus? (Minutipõhised hinnatõusud kogu kauplemise ajal aastatel 2000 kuni 2026)
-- Kampaaniate tabel on parandatud: duplikaadid eemaldatud, lisatud võti (PK). -- Tehti rohkem kampaaniaid, vigade tõttu hakkasid kasutajad saama ebaõnnestunud kommunikatsiooni kohaletoimetamise katseid ning mõnele ei õnnestunud üldse näidata. -- Kõigi kasutajatele saadetud promo-kampaaniate kohta: -- 2.1 Kirjutage päring, mis näitab iga kampaania puhul edukalt saanud kasutajate arvu. -- 2.2 Muutke päringut, et näidata: kasutajate arvu, kes ei saanud kokku ühtegi edukat kommunikatsiooni, iga kampaania puhul. -- Communications tabelile lisati veel üks väli – event_timestamp – kommunikatsiooni kohaletoimetamise sündmuse kuupäev ja kellaaeg vormingus '%Y-%m-%d %H:%M:%S'. -- Kõigi kampaaniate jaoks, kaasa arvatud mitte käivitunud, arvutage näitaja: kasutajate osakaal, kellele edukas sõnumi kohaletoimetamine toimus esimesel katsel. -- Võib kasutada akna funktsioone või mitte, kuid oluline on, et päring oleks optimeeritud.
D. Hiina ilutulestikud Vladimir ostis komplekti 3 hiina ilutulestikku. Nad näevad välja täpselt samad ja on segamini karbis, kuid juhiste järgi on neil erinev usaldusväärsus: 1. "Eliit" — defektide määr 10% (edu tõenäosus 0.9). 2. "Standard" — defektide määr 20% (edu tõenäosus 0.8). 3. "Eelarve" — defektide määr 40% (edu tõenäosus 0.6). Vladimir valib juhuslikult esimese ilutulestiku, süütab selle ja see töötab edukalt. Õnnelik Vladimir otsustab lasta ülejäänud kaks üksteise järel. Mis on tõenäosus, et ka teine ja kolmas ilutulestik töötavad edukalt — ilma defektita? Ümardage vastus kolme kümnendkohani.