Sobes.tech

Data Analyst

Wie würdest du einen Benchmark für Geometrie erstellen? Beschreibe die Kette vom Idee bis zum endgültigen Datensatz.

123

Schreiben Sie einen Python-Code, der das Skalarprodukt zweier in RLE komprimierter Vektoren in einem Durchlauf berechnet.

122

Afanasy arbeitete seit 2 Wochen an einem Code, der in der Lage ist, japanische Kreuzworträtsel mit Unterstützung für neun Farben zu lösen, als er bei einem Teammeeting von einem Kollegen erfuhr, dass er die Aufgabe selbst schneller bewältigen könne, und das Programm keinen Sinn mehr mache. Aber Afanasy, der Optimist, beschloss, diese Aufgabe weiter zu üben und Folgendes zu tun — zu schätzen, wie gut sein Kollege mit Kreuzworträtseln zurechtkommt. Für diese Bewertung wählte er eine Analogie der IoU-Metrik — die Berechnung wird ähnlich wie die klassische Intersection Over Union sein, aber nach Farben. Es funktioniert folgendermaßen: Jede übereinstimmende Zelle im Original und in der Lösung nach Farbe fügt Zähler 1 zum Zähler im Zähler, und im Nenner wird 1 für jede Zelle im Original und in der Lösung hinzugefügt (bei übereinstimmenden Zellen wird nur einmal hinzugefügt). Danach wird der Durchschnitt über die Anzahl der Farben im Originalbild gebildet, gerundet auf zwei Dezimalstellen; Null wird nicht als Farbe betrachtet, daher sollte die Metrik nicht für Zellen dieser Farbe berechnet werden. Der Eingang beginnt mit einer Zeile, die die Anzahl der Zeilen n und Spalten m enthält (in dieser Reihenfolge). Dann folgen 2n Zeilen, die m Zahlen enthalten, durch Leerzeichen getrennt — die ersten n Zeilen beziehen sich auf das eingereichte Kreuzworträtsel, und die nächsten n — auf das Originalbild. Es wird angenommen, dass jede Zeile, beginnend mit der zweiten, genau m Zahlen enthält. Als Antwort geben Sie eine Zahl aus, gerundet auf zwei Dezimalstellen, wie in den Beispielen. Hier sind einige Beispiele: 1. Erstes Beispiel [phone] -> 1.0 Erklärung: Der Beitrag der übereinstimmenden und nicht übereinstimmenden Zellen (1.0 + 1.0 + 1.0 + 1.0) / Anzahl der Farben (4) 2. Zweites Beispiel [phone] -> 0.08 Erklärung: Der Beitrag der übereinstimmenden und nicht übereinstimmenden Zellen (0.25 + 0.0 + 0.0) / Anzahl der Farben (3); Nullen werden nicht gezählt, weder als Zellen in den Darstellungen noch in der Anzahl der Farben. 3. Drittes Beispiel [phone] bei dem die eingereichte Bild beginnt [phone] — bei dem die eingereichte Bild endet 0 1 2 — bei dem das Originalbild beginnt [phone] -> 0.47 Erklärung: Der Beitrag der übereinstimmenden und nicht übereinstimmenden Zellen (0.4 + 0.5 + 0.5) / Anzahl der Farben (3); Nullen werden nicht gezählt, weder als Zellen in den Darstellungen noch in der Anzahl der Farben. 4. Viertes Beispiel [phone] -> 0.0 Erklärung: Der Beitrag der übereinstimmenden und nicht übereinstimmenden Zellen (0.0) / Anzahl der Farben (1); Nullen werden nicht gezählt, weder als Zellen in den Darstellungen noch in der Anzahl der Farben.

121

Erklären Sie die Logik der Lösung der Aufgabe sum_series: Wie baut man die Summe zweier stufenförmiger Zeitreihen auf?

119

Was ist die logische Reihenfolge der Ausführung von FROM, JOIN, GROUP BY und SELECT in dieser SQL-Abfrage?

118

val_a, val_b = 0, 0 t = None solange i < len(a) oder j < len(b): a_next = a[i][0] wenn i < len(a) sonst float('inf') b_next = b[j][0] wenn j < len(b) sonst float('inf') wenn 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 sonst: 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

118

Pseudocode 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

115

Wie sammelt man Ground-Truth-Antworten für den Benchmark in der Geometrie?

114

-- Über die an die Nutzer gesendeten Promotion-Kampagnen: -- 2.1 Schreiben Sie eine Abfrage, die die Anzahl der Nutzer anzeigt, die die Kommunikation erfolgreich erhalten haben, für jede Kampagne. -- 2.2 Ändern Sie die Abfrage, um anzuzeigen: die Anzahl der Nutzer, die insgesamt keine erfolgreiche Kommunikation erhalten haben, für jede Kampagne. -- 3. Es wurde ein weiteres Feld zur Tabelle communications hinzugefügt – event_timestamp – Datum und Uhrzeit des Ereignisses der Zustellung der Kommunikation im Format '%Y-%m-%d %H:%M:%S'. -- Für alle Kampagnen, einschließlich nicht gestarteter, berechnen Sie die Metrik: den Anteil der Nutzer, bei denen die erfolgreiche Zustellung der Nachricht beim ersten Versuch erfolgte. -- Es können Fensterfunktionen verwendet werden oder nicht, aber es ist wichtig, dass die Abfrage optimal ist.

112

Wie heißt der Sortieroperator in SQL und wann wird er ausgeführt? Wo befindet sich LIMIT in der Ausführungsreihenfolge?

111

Wie würdest du einen A/B-Test einrichten, um einen neuen Suchalgorithmus zu überprüfen? Wie bestimmst du die erforderliche Stichprobengröße und die Dauer des Tests?

111

Nennen Sie klar die Kriterien, die erfüllt sein müssen, damit Daten eine Normalverteilung aufweisen.

111

B. Präfixe und Suffixe Gegeben ist ein sortiertes Array aus n Nullen. Bei jedem Schritt kannst du eine beliebige Anzahl der ersten oder letzten Elemente dieses Arrays auswählen und alle ausgewählten Elemente um eins erhöhen. Ist es möglich, den angegebenen Zustand des Arrays nach einer beliebigen Anzahl solcher Operationen zu erreichen? Eingabeformat Die erste Zeile enthält eine ganze Zahl 1 ≤ n ≤ 100000 — die Anzahl der Elemente im Array. Die zweite Zeile enthält n nicht-negative ganze Zahlen a1, a2, ..., an, getrennt durch Leerzeichen, wobei ai ≤ 10^18 — die gewünschten Endelemente. Ausgabeformat Gib "YES" aus, wenn ein solcher Zustand erreichbar ist, und "NO" wenn nicht. Beispiel Eingabe [phone] Ausgabe YES Hinweis Die Zustände [phone] können wie folgt erreicht werden: Einen zu den ersten drei Elementen hinzufügen, um [phone] zu erhalten Einen zu den letzten vier Elementen hinzufügen, um [phone] zu erhalten Einen zum letzten Element hinzufügen, um [phone] zu erhalten

110

Pseudocode 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

-- Marketer starten Promotionskampagnen in der Service-App. Es gibt zwei Tabellen: -- campaigns – Liste der Kampagnen -- - campaign – Name der Kampagne -- - action_type – Kampagnentyp: "push" oder "banner" -- communications – Backend-Log mit den Versandprotokollen dieser Kampagnen an die Nutzer -- - user_id – Nutzer-ID -- - campaign – Name der Kampagne -- - status – Status des Ereignisses: "success" oder "error" --------------------------------------------------------------------------- -- 1. Anfangs gibt es in der Tabelle campaigns 4 Zeilen: -- | campaign | action_type | -- |-------------|-------------| -- | promo_dogs | push | <- zufällig dupliziert -- | promo_cats | banner | -- | promo_cats | banner | <- zwei Zeilen -- | promo_rats | push | -- Es ist auch bekannt, dass: -- die Kampagnen promo_dogs und promo_cats erfolgreich bei 100 Nutzern durchgeführt wurden, wobei jeder Nutzer eine Kommunikation erhielt, -- und promo_rats ist nur in Planung. -- 1.1 Was die Abfrage ausgibt: 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 Wie sich die Antwort ändert, wenn der JOIN-Typ auf LEFT geändert wird?

107

Was ist ein Benchmark und wie würdest du die Qualität eines multimodalen Modells bewerten?

103

Wird die Rendite der Aktien [Name] normal verteilt sein? (Minütliche Kursgewinne während der gesamten Handelsgeschichte von 2000 bis 2026)

99

-- Die Tabelle campaigns wurde repariert: Duplikate entfernt, Schlüssel (PK) hinzugefügt. -- Es wurden mehr Kampagnen durchgeführt, aufgrund von Bugs traten bei den Nutzern fehlerhafte Zustellversuche auf, und bei manchen wurde die Kommunikation überhaupt nicht angezeigt. -- Bezüglich der an die Nutzer gesendeten Promo-Kampagnen: -- 2.1 Schreiben Sie eine Abfrage, die die Anzahl der Nutzer zeigt, die die Kommunikation erfolgreich erhalten haben, für jede Kampagne. -- 2.2 Ändern Sie die Abfrage, um anzuzeigen: die Anzahl der Nutzer, die keine erfolgreiche Kommunikation insgesamt erhalten haben, für jede Kampagne. -- 3. Es wurde ein weiteres Feld zur Tabelle communications hinzugefügt – event_timestamp – Datum und Uhrzeit des Ereignisses der Zustellung der Kommunikation im Format '%Y-%m-%d %H:%M:%S'. -- Für alle Kampagnen, einschließlich nicht gestarteter, berechnen Sie die Metrik: den Anteil der Nutzer, bei denen die erfolgreiche Zustellung der Nachricht beim ersten Versuch erfolgte. -- Es können Fensterfunktionen verwendet werden, oder es kann ohne sie gemacht werden, aber es ist wichtig, dass die Abfrage optimal ist.

98

D. Chinesisches Feuerwerk Vladimir hat ein Set aus 3 chinesischen Feuerwerken gekauft. Sie sehen genau gleich aus und sind in einer Schachtel vermischt, aber laut Anleitung haben sie unterschiedliche Zuverlässigkeit: 1. "Elite" — Defektrate 10% (Erfolgschance 0.9). 2. "Standard" — Defektrate 20% (Erfolgschance 0.8). 3. "Economy" — Defektrate 40% (Erfolgschance 0.6). Vladimir nimmt zufällig das erste Feuerwerk, zündet es an, und es funktioniert erfolgreich. Zufrieden entscheidet Vladimir, die verbleibenden zwei Feuerwerke nacheinander zu starten. Wie hoch ist die Wahrscheinlichkeit, dass auch das zweite und dritte Feuerwerk erfolgreich zünden — ohne Defekt? Runden Sie die Antwort auf drei Dezimalstellen.

98
/3