java - 一个接一个地打乱不超过两个相同类别元素的表

标签 java sorting shuffle

我正在构建一个应用程序,要求用户识别情绪。情绪以图像的形式出现。有 6 个类别,每个类别 10 个图像(快乐、悲伤、惊喜等)。图像的呈现有两个条件:

  • 它必须是随机的
  • 同一类别的图片不得连续出现两张以上。

我已将 60 张图像放入表格中,但是当然,当我对其进行洗牌时,我遇到了第二个条件的问题。

我正在考虑在代码中手动考虑第二个条件的更多表,但这似乎非常不优雅(六个表被打乱并一个接一个地读取)。

有人有更好的主意吗?

编辑

谢谢大家的回答。更准确地说,我想知道是否有某种数学公式可以直接做到这一点。

最佳答案

每个“类别”应由一个“表格”表示。这样你就可以轻松地洗牌每个“表”并从中取出前两个来满足你的两个条件。你是对的,这不是很优雅,但这取决于你的用例和 future 的变化。

您可以创建一个面向对象的设计来表示您的结构,其中图像将具有成员字段“类别”。这样,您将拥有一个图像表,可以将其打乱并从一开始就通过检查每个图像“类别”成员字段来提取正确数量的类别。

对于您想要追求的目标,您有任何代码或更多描述吗?

关于java - 一个接一个地打乱不超过两个相同类别元素的表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37465613/

相关文章:

java - 使用 Java 类/继承时出错

r - 在数据表输出中格式化日期

javascript - 在 Javascript 的一次迭代中进行映射和排序?

java - 如何设计正确的 XML 并根据请求名称检索值?

java - 将特定请求重定向到另一个域

bash - 如何按列删除重复项(逆序)

algorithm - 洗牌一堆 key

python - 为什么我的 shuffle 实现不正确?

python - python 的 random.shuffle 是否保证元素的顺序不同?

java - JSP MySQL Class.forName 错误