查找算法——俄罗斯轮盘赌算法(看谁运气不好)

简介: 查找算法——俄罗斯轮盘赌算法(看谁运气不好)

3a1f3c1c256487bd6633670ef83a22ae.png

俄罗斯轮盘赌的基本思想

俄罗斯轮盘赌(Russian roulette)是一种残忍的赌博游戏。俄罗斯轮盘赌的赌具是左轮手枪]和人的性命。俄罗斯轮盘赌的规则很简单:在左轮手枪的六个弹槽中放入一颗或多颗子弹,任意旋转转轮之后,关上转轮。游戏的参加者轮流把手枪对着自己的头,扣动板机;中枪的当然是自动退出,怯场的也为输,坚持到最后的就是胜者。

只要运气不好,每次都会第一次找到。

步骤

俄罗斯轮盘赌的核心在于装入子弹之后任意旋转转轮,增加了随机性。

  1. 根据随机数生成开始的下标,并进行标记。
  2. 从标记处开始循环顺序查找。
  3. 直到循环一遍还未找到则停止。

算法代码

#include<iostream>#include<cstdlib>#include<ctime>usingnamespacestd;
//俄罗斯轮盘赌算法 voidDrawAlgorithm(intnums[],intn,intbullet){
srand((int)time(0));
intbegin=rand()%n,mark=begin,count=0;      //利用随机数生成第一次比较的下标 begin,mark 对第一次比较的位置进行标记  do{
count++;
if(nums[begin]==bullet){        //查看当前位置的元素是否存在于 bullets 数组 cout<<bullet<<"已找到,查找次数为:"<<count<<endl;        //如果存在则命中 return;
        }
if(++begin==n){         //判断是否越界begin=0;
        }
    }while(mark!=begin);        //如果循环一遍代表没有找到 cout<<"没有找到"<<endl;
}
//打印数组 voidprintNum(intnumbers[],intn){
for(inti=0;i<n;i++){
cout<<numbers[i]<<" ";
    }
cout<<endl; 
}
intmain()
{
intnumbers[10]={3,44,38,5,47,15,99,32,66,100};
intn=sizeof(numbers)/sizeof(numbers[0]);       //数组长度 cout<<"序列为:";
printNum(numbers,n);
DrawAlgorithm(numbers,n,5);     //调用 DrawAlgorithm 函数在 numbers 序列中进行抽签查找 5 return0;
}

算法性能分析

image.png

目录
相关文章
|
存储 算法 NoSQL
【数据结构和算法】散列表的查找算法(开放地址法,链地址法)
【数据结构和算法】散列表的查找算法(开放地址法,链地址法)
356 0
【数据结构和算法】散列表的查找算法(开放地址法,链地址法)
|
13天前
|
算法 调度
【调度算法】关于轮盘赌和锦标赛两种选择算子的选用思考
【调度算法】关于轮盘赌和锦标赛两种选择算子的选用思考
22 1
|
24天前
|
算法 Java
JavaSE——算法(2/2):查找算法-二分查找(前言、详细图解、代码部分)
JavaSE——算法(2/2):查找算法-二分查找(前言、详细图解、代码部分)
34 2
|
11月前
|
算法
C++STL算法篇之查找算法(下)
C++STL算法篇之查找算法(下)
|
11月前
|
算法
C++STL算法篇之查找算法(上)
C++STL算法篇之查找算法
|
存储 算法
【数据结构和算法】树表的查找算法(二叉排序树与平衡二叉树)
【数据结构和算法】树表的查找算法(二叉排序树与平衡二叉树)
225 0
【数据结构和算法】树表的查找算法(二叉排序树与平衡二叉树)
|
存储 算法 索引
【数据结构和算法】线性表的查找算法(顺序查找,二分查找,插值查找,分块查找)
【数据结构和算法】线性表的查找算法(顺序查找,二分查找,插值查找,分块查找)
283 0
【数据结构和算法】线性表的查找算法(顺序查找,二分查找,插值查找,分块查找)
|
存储 算法
数据结构 查找 静态查找表算法 折半查找 二叉排序树查找算法 实验报告
数据结构 查找 静态查找表算法 折半查找 二叉排序树查找算法 实验报告
97 0
数据结构 查找 静态查找表算法 折半查找 二叉排序树查找算法 实验报告
|
存储 算法 搜索推荐
【算法社区】从零开始的DS学习之查找算法
本文从顺序查找->二分查找>hash查找->BST树->优先队列->堆,帮你打开查找算法的新世纪,深入浅出,适合各个阶段的人查阅与学习,本篇篇幅较长,适合点赞+收藏。有什么错误希望大家直接指出~
【算法社区】从零开始的DS学习之查找算法
|
算法
查找算法——抽签算法(假如我告诉你:不管多少元素,都只需要比对一次,你信还是不信?)
查找算法——抽签算法(假如我告诉你:不管多少元素,都只需要比对一次,你信还是不信?)
264 0
查找算法——抽签算法(假如我告诉你:不管多少元素,都只需要比对一次,你信还是不信?)