文章目录[隐藏]
易语言使用穷举算法完成借书方案的设计。
使用算法:穷举法
问题:借书方案
问题描述:
小明有五本新书,要借给A,B,C三位小朋友,若每人每次只能借一本,则可以有多少种不同的借法?
(对五本书进行编号,分别为1,2,3,4,5)问题分析:
问题分析:
本问题实际上是一个排列问题,即求从5个中取3个进行排列的方法的总数。
首先对五本书从1至5进行编号,然后使用穷举的方法。
假设三个人分别借这五本书中的一本,当三个人所借的书的编号都不相同时,就是满足题意的一种借阅方法。
通过上面规律可以推导出结果。
执行方案
界面放置一个超级列表框完成所有方案的显示。
.版本 2 .支持库 iext .子程序 _计算图形按钮_被单击 .局部变量 方案个数, 整数型 .局部变量 循环变量1, 整数型, , , 循环变量,也用于代表第一个小朋友的借书情况 .局部变量 循环变量2, 整数型, , , 循环变量,也用于代表第二个小朋友的借书情况 .局部变量 循环变量3, 整数型, , , 循环变量,也用于代表第三个小朋友的借书情况 .局部变量 表项位置, 整数型, , , 存放插入的表项的位置 方案个数 = 0 ' 假设对五本书进行编号,分别为1,2,3,4,5 .变量循环首 (1, 5, 1, 循环变量1) ' 列出第一个小朋友借5本书中的1本的全部情况 .变量循环首 (1, 5, 1, 循环变量2) ' 列出第二个小朋友借5本书中的1本的全部情况 ' 当前两个小朋友借不同的书时,列出第三个小朋友借5本书中的1本的全部情况 .如果真 (循环变量1 ≠ 循环变量2) .变量循环首 (1, 5, 1, 循环变量3) .如果真 (循环变量3 ≠ 循环变量1 且 循环变量3 ≠ 循环变量2) ' 找到一个方案,那么方案数加1 方案个数 = 方案个数 + 1 ' 显示找到的方案 表项位置 = 显示结果列表框.插入表项 (, , , , , ) 显示结果列表框.置标题 (表项位置, 0, “方案” + 到文本 (方案个数)) 显示结果列表框.置标题 (表项位置, 1, 到文本 (循环变量1)) 显示结果列表框.置标题 (表项位置, 2, 到文本 (循环变量2)) 显示结果列表框.置标题 (表项位置, 3, 到文本 (循环变量3)) .如果真结束 .变量循环尾 () .如果真结束 .变量循环尾 () .变量循环尾 () ' 显示方案总数 方案数目编辑框.内容 = 到文本 (方案个数)