当前位置: 首页>>代码示例>>Python>>正文


Python utils.weighted_lottery函数代码示例

本文整理汇总了Python中r2.lib.utils.weighted_lottery函数的典型用法代码示例。如果您正苦于以下问题:Python weighted_lottery函数的具体用法?Python weighted_lottery怎么用?Python weighted_lottery使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。


在下文中一共展示了weighted_lottery函数的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: pick

def pick(subset, weighted=False):
    if weighted:
        d = {(name, weight): weight for name, weight in subset}
        picked = weighted_lottery(d)
    else:
        picked = random.choice(subset)
    return picked
开发者ID:0xcd03,项目名称:reddit,代码行数:7,代码来源:promoted_links.py

示例2: lottery_promoted_links

def lottery_promoted_links(srids, n=10):
    """Run weighted_lottery to order and choose a subset of promoted links."""
    promo_tuples = get_promotion_list(srids)
    weights = {p: p.weight for p in promo_tuples if p.weight}
    selected = []
    while weights and len(selected) < n:
        s = weighted_lottery(weights)
        del weights[s]
        selected.append(s)
    return selected
开发者ID:AD42,项目名称:reddit,代码行数:10,代码来源:promote.py

示例3: choose_random_item

def choose_random_item(keep_fn=None):
    item_class = weighted_lottery(g.live_config["f2p_rarity_weights"])
    items_in_class = [i["kind"] for i in g.f2pitems.itervalues() if i.get("rarity", "common") == item_class]

    if keep_fn:
        available_items = [i for i in items_in_class if keep_fn(i)]
    else:
        available_items = items_in_class

    return random.choice(available_items)
开发者ID:JordanMilne,项目名称:reddit-plugin-f2p,代码行数:10,代码来源:f2p.py

示例4: lottery_promoted_links

def lottery_promoted_links(sr_names, n=10):
    """Run weighted_lottery to order and choose a subset of promoted links."""
    promo_tuples = get_live_promotions(sr_names)

    # house priority campaigns have weight of 0, use some small value
    # so they'll show if there are no other campaigns
    weights = {p: p.weight or 0.001 for p in promo_tuples}
    selected = []
    while weights and len(selected) < n:
        s = weighted_lottery(weights)
        del weights[s]
        selected.append(s)
    return selected
开发者ID:APerson241,项目名称:reddit,代码行数:13,代码来源:promote.py

示例5: generate

    def generate(self):
        """Generate a string similar to samples previously fed in."""

        start = weighted_lottery(self.starts)
        desired_length = weighted_lottery(self.start_lengths[start])
        desired_length = max(desired_length, self.order)

        generated = []
        generated.extend(start)
        while len(generated) < desired_length:
            # try each model, from highest order down, til we find
            # something
            for order, model in reversed(list(enumerate(self.models, 1))):
                current_prefix = "".join(generated[-order:])
                frequencies = model[current_prefix]
                if frequencies:
                    generated.append(weighted_lottery(frequencies))
                    break
            else:
                generated.append(random.choice(string.lowercase))

        return "".join(generated)
开发者ID:bobross-fc,项目名称:knowwit,代码行数:22,代码来源:submit_knowwit_data.py

示例6: select_subset

def select_subset(n, weighted=False):
    promos = copy(PROMOS)
    selected = []

    if weighted:
        d = {(name, weight): weight for name, weight in promos}
        while len(selected) < n and d:
            i = weighted_lottery(d)
            del d[i]
            selected.append(i)
    else:
        # Sample without replacement
        if n > len(promos):
            return promos
        else:
            return random.sample(promos, n)
    return selected
开发者ID:0xcd03,项目名称:reddit,代码行数:17,代码来源:promoted_links.py

示例7: expect

 def expect(result, random_value):
     scaled_r = float(random_value) / sum(weights.itervalues())
     self.assertEquals(
         result,
         utils.weighted_lottery(weights, _random=lambda: scaled_r))
开发者ID:131050033,项目名称:reddit,代码行数:5,代码来源:utils_test.py


注:本文中的r2.lib.utils.weighted_lottery函数示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。