背景:
- 最近做一个物业巡逻签到打卡的场景。园区内每个位置配有人脸识别系统,保安需通过刷脸完成签到以确认夜间巡逻情况。签到时间动态且不可预测,但必须在指定时间范围内完成所有签到。
思考:
- 可以使用状态机模式、图模型 等方法。后面我在想是不是可以使用数学里面的 笛卡尔积去做这样一件事情。
笛卡尔积:
- 给定两个集合 A和 B,它们的笛卡尔积表示为 A×B,定义为:
A×B={(a,b)∣a∈A 且 b∈B}
- 示例:
A={1,2}
B={x,y,z}
那么AxB结果为:A×B={(1,x),(1,y),(1,z),(2,x),(2,y),(2,z)}
场景:
当我一个场地有多台设备的时候 就存在以下场景:
- A 场景包含设备 A1、A2、A2
- B 场景包含设备 B1、B2、B3
依次内推。。。。 那么物业人员签到的地方可能会是 A1 、B2 或 B3、A2 等等各种场景都有可能出现。于是我用Java 代码在原来的基础上模拟了所有可能出现的打卡设备集。
代码:
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.HashSet;
import java.util.Set;
pub