我正在构建一个应用程序,要求用户识别情绪。情绪以图像的形式出现。有 6 个类别,每个类别 10 个图像(快乐、悲伤、惊喜等)。图像的呈现有两个条件:
- 它必须是随机的
- 同一类别的图片不得连续出现两张以上。
我已将 60 张图像放入表格中,但是当然,当我对其进行洗牌时,我遇到了第二个条件的问题。
我正在考虑在代码中手动考虑第二个条件的更多表,但这似乎非常不优雅(六个表被打乱并一个接一个地读取)。
有人有更好的主意吗?
编辑
谢谢大家的回答。更准确地说,我想知道是否有某种数学公式可以直接做到这一点。
最佳答案
每个“类别”应由一个“表格”表示。这样你就可以轻松地洗牌每个“表”并从中取出前两个来满足你的两个条件。你是对的,这不是很优雅,但这取决于你的用例和 future 的变化。
您可以创建一个面向对象的设计来表示您的结构,其中图像将具有成员字段“类别”。这样,您将拥有一个图像表,可以将其打乱并从一开始就通过检查每个图像“类别”成员字段来提取正确数量的类别。
对于您想要追求的目标,您有任何代码或更多描述吗?
关于java - 一个接一个地打乱不超过两个相同类别元素的表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37465613/