超递增数列是指这样一种数列,该数列的每一项都比它前面所有项加起来之和还要大。比如数列 1,2,5,10,20,50… 该数列每一项都大于前面所有项之和,因此是超递增数列。请编写一个函数,用于产生随机的超递增数列,每次产生的数列应该有8个项,它们是8个DWORD值。数列中的项最大不能超过DWORD类型所能表示的最大范围(即最后一个项数不能超过0xFFFFFFFF)。函数原型如下:
void MakeBagData(DWORD lpBuffer[8]);
lpBuffer 为输入/输出缓冲区,DWORD lpBuffer[8] 表示函数期待的缓冲区大小为8个DWORD值大小。缓冲区由调用方负责创建并传入,函数的实现需要产生8个DOWRD值,并填充到该缓冲区中。
要求:下面有一个该函数的实现,请理解该实现的意图,并补充完整空缺处的表达式。
注:rand() 或 ((double)rand()) / ((double)RAND_MAX) 可用于获取随机数。
void MakeBagData(DWORD dwValues[8])
{
DWORD dwSum = 0;
for (int i = 0 ; i < 8 ; i++)
{
dwValues[i] = __ ;
dwSum += dwValues[i];
}
}
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
等比数列 公比大于2 是符合条件的吗?
生成一个随机数 max尽量大>10^8,q尽量小< 10,然后每次让max / q 向下取整数,这样可以不?