Tag: 最小值

使用CUDA中的减少来查找数组中的最小值(但跳过某些元素)

我有一大堆浮点数,我想找出数组的最小值(忽略-1 s,无论在哪里)及其索引,使用CUDA中的减少。 我已经编写了以下代码来执行此操作,在我看来应该可以工作: __global__ void get_min_cost(float *d_Cost,int n,int *last_block_number,int *number_in_last_block,int *d_index){ int tid = threadIdx.x; int myid = blockDim.x * blockIdx.x + threadIdx.x; int s; if(result == (*last_block_number)-1){ s = (*number_in_last_block)/2; }else{ s = 1024/2; } for(;s>0;s/=2){ if(myid+s>=n) continue; if(tid<s){ if(d_Cost[myid+s] == -1){ continue; }else if(d_Cost[myid] == -1 && d_Cost[myid+s] != -1){ d_Cost[myid] = d_Cost[myid+s]; […]

(C)在矩阵中获取行的3个最小元素,并随机选择一个

我有一个8×8矩阵,在选择了我想要的行之后,我想得到它的三个最小元素,并随机选择这三个中的一个。 问题是我不知道如何处理这三个元素。 我只知道如何获得最小元素,即以下代码。 int piezas[8][8] = { 0, 2, 2, 5, 3, 2, 1, 1, 0, 4, 5, 2, 4, 3, 0, 0, 0, 4, 2, 2, 1, 2, 3, 2, 0, 3, 1, 5, 1, 2, 3, 4, 2, 5, 6, 5, 3, 1, 2, 7, 8, 2, 0, 0, 0, 2, 1, 1, […]

C宏至少有两个数字

我想用#define创建一个简单的宏来返回两个较小的数字。 我怎么能在C中这样做? 提出一些想法,看看你是否可以使它更加模糊。