с123 / icontexttest
空缺职位的测试任务
This package is not auto-updated.
Last update: 2024-09-19 18:35:34 UTC
README
公司iConText的空缺职位测试任务。
任务如下
引言
有36个单元格(不计0)和18个棋子。一个单元格只能放置一个棋子。分解示例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 ... 36
$ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $
需要找到并累加到测试文件中的所有可能的分解方式。
任务
输入 - 两个整数:fieldsCount - 单元格数量,chipCount - 棋子数量(需要某种界面)。需要提供所有可能的棋子放置方式。一个单元格只能放置一个棋子。
输出 - 文本文件,第一行指出选项数量,然后包含所有合适的选项。如果选项少于10个,文件应仅包含文本“选项少于10个”。欢迎提供最快和功能最全(相对于输入数据已测试)的选项。
解决方案
该包已发布在Composer https://packagist.org.cn/packages/s123/icontexttest
全局安装: "composer global require s123/icontexttest:dev-master"。第一次遇到在全局安装时实现控制台工具的PHP实现,遇到一些困难才让它能够从公开的Composer仓库中工作。在开发环境中一切工作正常 :) 绝大多数提交都是尝试在全局安装时在控制台运行此应用程序。
在存储库中还有四个文件,pishi-suda-little.txt、pishi-suda-10.txt、pishi-suda.txt和pishi-suda-big.txt,是程序运行的结果。如果需要查看输出,但不想在机器上安装此包。
程序通过命令行工作。第一个参数接受单元格数量,第二个参数接受棋子数量,第三个参数是可选的,指定记录结果的文件名。默认情况下,在当前目录中记录到文件“result.txt”。
我直接通过简单枚举解决了这个问题。可能存在基于高等数学、集合论等的高级解决方案,但我在这方面不是很擅长。
还考虑了文件中第一个记录的“选项”一词的各种结尾
*1 - 选项
*2, *3, *4 - 选项
其余的 - 选项
11, 12, 13, 14是例外 - 选项
文件读写操作以小块进行,以避免耗尽内存资源并导致计算机挂起。