博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
产生随机数
阅读量:4654 次
发布时间:2019-06-09

本文共 1781 字,大约阅读时间需要 5 分钟。

cuda产生随机数的程序为

#include 
#include
#include
#include
int n = 200; using namespace std; __device__ float generate( curandState* globalState, int ind ) { //int ind = threadIdx.x; curandState localState = globalState[ind]; float RANDOM = curand_uniform( &localState ); globalState[ind] = localState; return RANDOM; } __global__ void setup_kernel ( curandState * state, unsigned long seed ) { int id = threadIdx.x; curand_init ( seed, id, 0, &state[id] ); } __global__ void kernel(float* N, curandState* globalState, int n) { // generate random numbers for(int i=0;i<400;i++) { int k = generate(globalState, i) * 3; while(k > n*n-1) { k-=(n*n-1); } N[i] = k-1; } } int main() { int N=400; curandState* devStates; cudaMalloc ( &devStates, N*sizeof( curandState ) ); // setup seeds setup_kernel <<< 1, N >>> ( devStates,unsigned(time(NULL)) ); float N2[400]; float* N3; cudaMalloc((void**) &N3, sizeof(float)*N); kernel<<<1,1>>> (N3, devStates, n); cudaMemcpy(N2, N3, sizeof(float)*N, cudaMemcpyDeviceToHost); for(int i=0;i

其中400是产生随机数的个数

c++产生随机数的程序为

#include 
#include
#include
int main() { int i,k; srand( (unsigned)time( NULL ) ); int num_0=0,num_1=0,num_f1; for( i = 0; i < 500000;i++ ) { k=rand() % 3-1;; printf( " k=%d\n", k ); if(k==0){ num_0++; } else if(k==1){ num_1++; }else{ num_f1++; } } printf("%d\n",num_0); printf("%d\n",num_1); printf("%d\n",num_f1); return 0; }

转载于:https://www.cnblogs.com/hellokittyblog/p/9128364.html

你可能感兴趣的文章
SQL视频总结
查看>>
P4878 道路修建-美国
查看>>
dp练习
查看>>
vim
查看>>
maze_travel的隐私声明
查看>>
对正则表达式又重新学了一遍,笔记方便以后查阅
查看>>
UIKit应用 - Swift 版本: 3.让UITableViewCell的背景色渐变
查看>>
Java反射
查看>>
building tool
查看>>
JS中for循环输出三角形
查看>>
字节对齐2
查看>>
与Win8之磁盘活动时间100%斗争心得
查看>>
Matrix: android 中的Matrix (android.graphics.Matrix) (转)
查看>>
Android中处理崩溃异常
查看>>
Day7—socket进阶
查看>>
只读数据文件损坏恢复
查看>>
转过来的,可以看下
查看>>
windows搭建SVN服务MD版
查看>>
Java私塾的一些基础练习题(一)
查看>>
Shell 07 项目案例
查看>>