Přejít k hlavnímu obsahu
🔒 Režim náhledu. Prvních patnáct lekcí Foundations je zdarma; tato je Pro. Spusťte 7denní trial pro odemčení editoru, AI nápověd a zbytku kurzu. Karta vyžadována, zrušte kdykoli v Dashboard.Spustit 7denní trial →
← KurzySystem Design for Python JuniorsModul 1 · Základy návrhu systémuSharding (horizontální rozdělení)predict8 / 105
+100 XP
Úkol
📝 **Úkol:** Předpovězte 5-řádkový výstup: první 4 řádky zobrazují shard:count for shards 0..3 v rozložení 4-shard, pak jeden řádek čárkami spojených tahů po opětovném-shardingu na 5 střepů. 📋 Implementujte výše uvedenou funkci. Testy probíhají automaticky. 💡 **Tip:** Pokud se zaseknete, přečtěte si znovu teorii.
Předpověz výstup

Přečti kód pozorně

from collections import Counter

USERS = ["u1", "u2", "u3", "u4", "u5", "u6", "u7", "u8"]

def shard_for(uid, n):
    return sum(ord(c) for c in uid) % n

def distribution(users, n):
    return Counter(shard_for(u, n) for u in users)

# 4-shard layout — print one line per shard.
d4 = distribution(USERS, 4)
for s in range(4):
    print(f"shard{s}:{d4[s]}")

# Re-shard to 5: how many users HOP to a different bucket?
moved = [u for u in USERS if shard_for(u, 4) != shard_for(u, 5)]
print("moved:" + ",".join(moved))

# What does this print? Type your prediction.

Co program vypíše? Napiš sem:

💬 Diskuze

Buď první — polož otázku nebo se podělej o tip.
Přihlas se abys se zapojil do diskuze. Čtení je zdarma.
Načítání diskuze…