我想知道如何从数组大小为10的随机生成的数组中打印重复数字的数量,以及从1到10的数字。
实施例: Array1:1 7 6 5 6 7 8 10 9 8
模式数量:3
(因为它包括; 2个6个,2个7个,2个8个)
到目前为止,我的代码已经完成了这个
- (UIViewController *)currentTopViewController
{
UIViewController *topVC = [[[[UIApplication sharedApplication] delegate] window] rootViewController];
while (topVC.presentedViewController)
{
topVC = topVC.presentedViewController;
}
return topVC;
}
答案 0 :(得分:1)
有一种非常简单的模式。您可以使用大小等于可能随机数范围的数组(我将使用向量)
//creates a vector ArraySize big with all elements initialized to 0
std::vector<int> results(ArraySize, 0);
然后,遍历循环并使用随机数作为索引并递增值
for(int i = 0; i < 10; i++)
results[(rand() % 10)]++;
最后,计算有多少种模式
std::cout << "Number of patterns: ";
std::cout << std::count_if(results.begin(), results.end(), [](int i){return i > 1;});
std::cout << std::endl;