როგორ შექმნიდი გეომეტრიის ბენჩმარკს? აღწერე ჯაჭვი იდეიდან საბოლოო მონაცემთა ნაკრებამდე.
Data Analyst
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
დაწერეთ Python კოდი, რომელიც ერთ გადამწყვეტში ორი RLE-გადატანილი ვექტორის სკალარული გამრავლების გამოთვლას ახორციელებს.
აფანასი უკვე ორი კვირაა მუშაობს კოდის დაწერაზე, რომელიც შეუძლია იაპონური სკანვორდების გადაჭრა ცხრა ფერის მხარდაჭერით, როდესაც მომავალი შეხვედრაზე კოლეგამ აცნობა, რომ ის თავად შეუძლია ამ ამოცანის სწრაფად შესრულება, და პროგრამაში უკვე აზრი აღარ აქვს. მაგრამ აფანასი, ოპტიმისტი რომ იყოს, გადაწყვიტა ამ ამოცანაზე კიდევ მეტი დრო დაუთმოს და შემდეგი გააკეთოს — გამოთვალოს, რამდენად კარგად უვლის კოლეგა სკანვორდებს. ამის შეფასებისთვის მან აირჩია 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); ნულებს არ ითვლიან არც უჯრებში წარმოდგენებში, არც ფერების რაოდენობაში.
sum_series ამოცანის გადაწყვეტილების ლოგიკას ახსით: როგორ შევქმნათ ორი საფეხურიანი დროის სერიის ჯამი?
ამ SQL შეკვეთის ლოგიკური შესრულების წესია FROM, JOIN, GROUP BY და SELECT?
როგორ ეწოდება SQL-ში სორტირების ოპერატორს და როდის ხორციელდება? სად არის LIMIT-ის შესრულების წესში?
Պսևդոկոդ 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/B ტესტს ახალი ძიების ალგორითმის შემოწმებისთვის? როგორ განსაზღვრავდი საჭირო სემპლენის ზომას და ტესტის ხანგრძლივობას?
A. უპირატესობები და სუფიქსები მოცემულია სორტირებული მასივი n ნულით. ყოველი ნაბიჯით, შეგიძლიათ აირჩიოთ ამ მასივის პირველი ან ბოლო რამდენიმე ელემენტი და დაამატოთ ერთეული ყველა არჩეულ ელემენტს. შესაძლებელია თუ არა მიაღწიოთ მითითებულ მდგომარეობას ამ მასივში გარკვეული რაოდენობის ამგვარი ოპერაციების შემდეგ? შესავალი ფორმატი პირველი ხაზი შეიცავს მთელ რიცხვს 1 ≤ n ≤ 100000 — მასივის ელემენტების რაოდენობას. მეორე ხაზი შეიცავს n ნოლს არაგადატანილ მთელ რიცხვებს a1, a2, ..., an, რომლებიც გამოყოფილია სივრცით, სადაც ai ≤ 10^18 — სასურველი საბოლოო ელემენტები. გამოსავალი ფორმატი მოითხოვეთ "YES", თუ ასეთი მდგომარეობა მისაღწევია, და "NO" თუ არა. მაგალითი შესავალი [phone] გამოსავალი YES შენიშვნა [phone] მდგომარეობებს შეიძლება მიაღწიოთ შემდეგი გზით: პირველ სამ ელემენტს ერთის დამატებით, მივიღებთ [phone] ბოლოს ოთხ ელემენტს ერთის დამატებით, მივიღებთ [phone] ბოლოს ერთ ელემენტს ერთის დამატებით, მივიღებთ [phone]
როგორ შეგვიძლია გეომეტრიის ბენჩმარკისთვის ground truth პასუხების შეგროვება?
-- მომხმარებლებს გადაცემული პრომო კამპანიების შესახებ: -- 2.1 დაწერეთ შეკითხვა, რომელიც აჩვენებს წარმატებით მიღებულ კომუნიკაციას თითოეულ კამპანიაზე. -- 2.2 შეცვალეთ შეკითხვა, რათა აჩვენოს: მომხმარებლების რაოდენობა, რომლებმაც საბოლოოდ ვერ მიიღეს არცერთი წარმატებული კომუნიკაცია, თითოეულ კამპანიაზე. -- 3. კომუნიკაციების ცხრილში დამატებულია კიდევ ერთი ველი – event_timestamp – კომუნიკაციის მიწოდების მოვლენის თარიღი და დრო '%Y-%m-%d %H:%M:%S' ფორმატში. -- ყველა კამპანიისთვის, მათ შორის დაწყებული არ არის, გამოითვალეთ მეტრიკა: წარმატებული შეტყობინების მიწოდების პროცენტი პირველ მცდელობაზე. -- შეიძლება გამოყენებულ იქნას ფანჯრის ფუნქციები ან არა, მაგრამ მნიშვნელოვანია, რომ შეკითხვა იყოს ოპტიმალური.
სწორად ჩამოთვალეთ კრიტერიუმები, რომლებიც უნდა შესრულდეს მონაცემების ნორმალური განაწილებისთვის.
შეიძლება კითხვები გქონდეთ ინტერვიურსთან დაკავშირებით?
Pseudo kod 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-ზე?
[Nomi] აქციების შემოსავლის ნორმალური განაწილება იქნება? (2000-დან 2026-მდე სავაჭრო ისტორიის განმავლობაში წუთში ფასის ზრდები)
D. ჩინური ფეიერვერკები ვლადიმირი შეიძინა 3 ჩინური ფეიერვერკის ნაკრები. ისინი ზუსტად ერთნაირია და ყუთში ერთმანეთთან შერეულია, მაგრამ ინსტრუქციის მიხედვით, მათ სხვადასხვა სანდოობა აქვთ: 1. "ელიტური" — ხარვეზის დონე 10% (საგზნე შესაძლებლობა 0.9). 2. "სტანდარტული" — ხარვეზის დონე 20% (საგზნე შესაძლებლობა 0.8). 3. "ეკონომიკური" — ხარვეზის დონე 40% (საგზნე შესაძლებლობა 0.6). ვლადიმირი შემთხვევით აიღებს პირველ ფეიერვერკს, აანთებს და ის წარმატებით მუშაობს. ბედნიერი, ვლადიმირი გადაწყვეტს დარჩენილი ორი ერთდროულად ააგოს. რა არის ალბათობა, რომ მეორე და მესამე ფეიერვერკიც წარმატებით იმუშაონ — ხარვეზის გარეშე? პასუხი გაანგარიშეთ სამი ათწილადამდე.
-- 2. კამპანიების ცხრილი მოწესრიგდა: დუბლიკატები ამოიღეს, დაამატეს გასაღები (PK). -- მეტი კამპანია ჩატარდა, ბაგების გამო, მომხმარებლები დაიწყეს წარუმატებელი კომუნიკაციების მიწოდების მცდელობები, და ზოგიერთს საერთოდ ვერ აჩვენეს. -- მომხმარებლებს გამოგზავნილი პრომო-კამპანიების შესახებ: -- 2.1 დაწერეთ სვეტა, რომელიც აჩვენებს წარმატებით მიღებულ მომხმარებელთა რაოდენობას, თითოეულ კამპანიაზე. -- 2.2 შეცვალეთ სვეტა, რათა აჩვენოს: მომხმარებელთა რაოდენობა, რომლებმაც საბოლოოდ ვერ მიიღეს წარმატებული კომუნიკაცია, თითოეულ კამპანიაზე. -- კომუნიკაციების ცხრილში დაემატა კიდევ ერთი ველი – event_timestamp – კომუნიკაციის მიწოდების მოვლენის თარიღი და დრო '%Y-%m-%d %H:%M:%S' ფორმატში. -- ყველა კამპანიისთვის, მათ შორის დაწყებული არაა, გამოთვალეთ მაჩვენებელი: მომხმარებელთა წილი, რომლებსაც წარმატებული შეტყობინების მიწოდება განხორციელდა პირველივე მცდელობით. -- შეიძლება გამოყენებულ იქნას ფანჯრის ფუნქციები, ან არა, მაგრამ მნიშვნელოვანია, რომ სვეტა იყოს ოპტიმალური.