我有一个脑筋急转弯,在我们大学的算法和谜题聚会上读到,内容如下:
有一所学校,奖励那些在给定时间内只迟到一次且不连续缺席三天以上的学生。对于给定时间段,我们可以构建多少个重复出现(或缺席)的可能排列,以授予学生奖项?假设每天仅有“准时”,“迟到”或“缺席”三种状态,不必担心具体课程。例如:对于为期三天的时间段,我们可以创建19个这样的排列,以授予奖项。
我昨天已经在math.SE上发布了它,因为我想知道是否有一些现成的公式可以推导来解决它,但结果证明没有,所有的变换都相当复杂。
因此,我在这里问 - 您将如何用算法解决这个问题?我试图缩小可能性空间,但过了一会儿,考虑到所有可能的重复排列就变得太多了,而且算法开始变得非常复杂,而我认为应该有一种易于实现的方法来解决它,特别是因为我们在聚会上交换的大多数谜题都是这样的。
有一所学校,奖励那些在给定时间内只迟到一次且不连续缺席三天以上的学生。对于给定时间段,我们可以构建多少个重复出现(或缺席)的可能排列,以授予学生奖项?假设每天仅有“准时”,“迟到”或“缺席”三种状态,不必担心具体课程。例如:对于为期三天的时间段,我们可以创建19个这样的排列,以授予奖项。
我昨天已经在math.SE上发布了它,因为我想知道是否有一些现成的公式可以推导来解决它,但结果证明没有,所有的变换都相当复杂。
因此,我在这里问 - 您将如何用算法解决这个问题?我试图缩小可能性空间,但过了一会儿,考虑到所有可能的重复排列就变得太多了,而且算法开始变得非常复杂,而我认为应该有一种易于实现的方法来解决它,特别是因为我们在聚会上交换的大多数谜题都是这样的。