“隐式转换失去整数精度:’time_t’(又名’long’)到’unsigned int’” 您正在隐式丢失精度,因为 time() 返回一个 long 大于目标上的 unsigned int 。为了解决这个问题,您应该明确地转换结果(从而消除“隐式精度损失”): srand( static_cast<unsigned int>(time(nullptr))); 鉴于现在是 2017 年,我正在编...
最简单的方法就是使用 time(): int main() { srand(time(nullptr)); ... } 确保在程序开始时执行此操作,而不是每次调用 rand()! 边注: _注意_:下面的评论中讨论了这是不安全的(这是真的,但最终不相关(继续阅读))。因此,另一种方法是从随机设备 /dev/random (或其他一些安全的实数(er)随机数生成...
#include <iostream>#include <cstdlib>#include <ctime>voidprint_n_random_numbers(intn ) {while(n--) std::cout << rand() <<"\n"; }intmain() { srand( time(nullptr) ); print_n_random_numbers( 10 ); } Edit & run on cpp.sh ...
print_time(time,"# ... took :");std::vector<int> count(10); count=count_galaxies(Secret);printf(" Number of galaxies by type, QSO-Ly-a, QSO-tracers, LRG, ELG, fake QSO, fake LRG, SS, SF\n");for(inti=0;i<8;i++){if(count[i]>0)printf(" type %d number %d \n",i, ...
std::srand(static_cast<unsigned int>(std::time(nullptr))); for (int count=1; count <= 100; ++count) { std::cout << std::rand() << "\t"; // display 5 random numbers per row if (count % 5 == 0) std::cout << "\n"; ...