我的计算类中的任务是查找5个集合中的任何数字是否加起来为15,如果他们确实奖励了一个点。我无法弄清楚如何通过添加一组随机的5个数字来找出多个特定数字。它们是否是特定于此的算法?它也必须用visual basic编写。
答案 0 :(得分:1)
您要查找的算法称为BackTracking。由于这是家庭作业,我不打算提供代码。这个想法是这样的。
答案 1 :(得分:0)
在5个数字的情况下,我会强制它并尝试所有32种可能的组合。
以下是此任务的一些可能的伪代码:
input = Array of 5 random integers (starting with index 0)
onoff = new Array of 5 integers (starting with index 0), initialized to 0
loop
// Create all possible combinations of 0 and 1 in onoff Array
// Hint: This is the same as counting up a binary number and looking at the bits.
onoff[0] = onoff[0]+1
for i=0 to 3
if onoff[i] > 1
onoff[i] = 0
onoff[i+1] = onoff[i+1] + 1
if onoff[4] > 1
break loop
// Create sum for given combination
sum = 0
for i=0 to 4
sum = sum + onoff[i]*input[i]
if sum = 15
output "Found value set"
for i=0 to 4
if onoff[i] = 1
output " "+input[i]
翻译成VB仍然是作业: - )