相关疑难解决方法(0)

将数字拆分为4个随机数

我想分成104个随机数的数组,但都不能0或不高于4.例如[1,2,3,4],[1,4,4,1][4,2,3,1].

我认为这是一个简单的问题,但由于某种原因,我无法想到如何做到这一点.如果有人有一些非常有帮助的指示!

编辑:这是我现在的代码,但我生成的总数低于10:

  let formation = [];
  let total = 0;

   for (let i = 0; i < 4; i ++) {
    if (total < 9) {
      formation[i] = Math.floor(Math.random() * 4) + 1; 
    } else {
      formation[i] = 1;
    }
  }
Run Code Online (Sandbox Code Playgroud)

javascript

9
推荐指数
1
解决办法
1677
查看次数

获取基于字段的大型对象列表的最有效组合

在给定一定的预算和组合的最大限制的情况下,我希望最大限度地增加星星的数量。

示例问题:

预算为 500 欧元,只访问允许的最大餐厅或更少,用餐并收集尽可能多的星星。

我正在寻找一种高效的算法,它可能会处理 100 万个餐厅实例,最多 10 个餐厅。

请注意,这是我昨天问的一个问题的交叉帖子: Java:基于字段获取大型对象列表的最有效组合

下面的解决方案将为r8餐厅分配每颗星 15 美元,这意味着在生成列表时,它首先将其放入列表中,剩下的 70 美元只能再获得 2 颗星,总共 4 颗星。但是,如果它足够聪明,可以跳过r8餐厅(即使它是每星级的最佳美元比率),该r1餐厅实际上是预算的更好选择,因为它的成本为 100 美元和 5 颗星。

任何人都可以帮助尝试解决问题并击败当前的解决方案吗?

import itertools

class Restaurant():
  def __init__(self, cost, stars):
    self.cost = cost
    self.stars = stars
    self.ratio = cost / stars

  def display(self):
    print("Cost: $" + str(self.cost))
    print("Stars: " + str(self.stars))
    print()

r1 = Restaurant(100, 5)
r2 = Restaurant(140, 3)
r3 = Restaurant(90, 4)
r4 = Restaurant(140, 3)
r5 = …
Run Code Online (Sandbox Code Playgroud)

python combinations knapsack-problem python-3.x

9
推荐指数
1
解决办法
532
查看次数

MySQL选择3个随机行,其中三行的总和小于值

我试图从表中选择三个随机行,其中它们的组合item_price列小于所需的量.

想象一下你有<input>一美元金额.输入美元金额时,数据库会返回三个随机项,其中组合价格小于或等于您输入的金额.

如果我输入300美元,你可以购买这三件商品,150美元,100美元和50美元.我在创建一个将返回符合此条件的三个项目的查询时遇到困难.

SELECT t1.item_id, t1.item_price
FROM items t1
INNER JOIN items t2 ON ( t1.item_id = t2.item_id )
GROUP BY t1.item_id, t1.item_name, t1.item_price
HAVING SUM( t2.item_price ) <=300
ORDER BY RAND( )
LIMIT 3 
Run Code Online (Sandbox Code Playgroud)

我认为这样可行,但我认为这只是一个巧合.它似乎只返回价格低于300美元,而不是总价不到300美元的任何三件商品.

我也试过这个查询:

SELECT t1.item_id, t1.item_price
FROM   items t1
JOIN   items t2 ON t2.item_id <= t1.item_id
WHERE  t2.item_price <= 500
GROUP  BY t1.item_id
HAVING SUM(t2.item_price) <= 500
ORDER  BY RAND()
LIMIT 3
Run Code Online (Sandbox Code Playgroud)

再次,似乎首先工作,但后来它开始返回2000美元的项目.

如果在PHP中有更好的(甚至牺牲性能)方式,我不介意.我只是觉得查询不会那么困难.

一如既往,感谢任何人的帮助.

php mysql

8
推荐指数
1
解决办法
1216
查看次数