首页 > 编程语言 >随机算法学习指南

随机算法学习指南

时间:2023-10-26 11:23:29浏览次数:27  
标签:学习指南 shuffle int 复杂度 算法 随机 datas

整数数组随机生成算法

[python]

#python
import random
array = [random.randint(-100, 100) for _ in range(1000)]
for i in array:
    print(i,end=" ")

随机抽取一组不重复的数

Fisher-Yates洗牌算法(Knuth洗牌算法)

时间复杂度优化到了O(n),空间复杂度优化到了O(1)。

void shuffle(int datas[],int length){
    for(int i=length-1;i>=0;i--){
        int j=rand()%(i+1);
        int temp=datas[i];
        datas[i]=datas[j];
        datas[j]=temp;
    }
}
void solve(){
    srand(time(0));
   int datas[]={1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11,12,  13, 14, 15, 16, 17, 18, 19, 20};
    shuffle(datas,20);
    for(int i=0;i<20;i++){
        cout<<datas[i]<<" ";
    }
} 

标签:学习指南,shuffle,int,复杂度,算法,随机,datas
From: https://www.cnblogs.com/taotao123456/p/17788988.html

相关文章

  • 【算法题】2525. 根据规则将箱子分类
    题目:给你四个整数length,width,height和mass,分别表示一个箱子的三个维度和质量,请你返回一个表示箱子类别的字符串。如果满足以下条件,那么箱子是“Bulky”的:箱子至少有一个维度大于等于104。或者箱子的体积大于等于109。如果箱子的质量大于等于100,那么箱子是......
  • 【算法题】2906. 构造乘积矩阵
    题目:给你一个下标从0开始、大小为n*m的二维整数矩阵grid,定义一个下标从0开始、大小为n*m的的二维矩阵p。如果满足以下条件,则称p为grid的乘积矩阵:对于每个元素p[i][j],它的值等于除了grid[i][j]外所有元素的乘积。乘积对12345取余数。返回grid的乘积矩......
  • 【算法题】2905. 找出满足差值条件的下标 II
    题目:给你一个下标从0开始、长度为n的整数数组nums,以及整数indexDifference和整数valueDifference。你的任务是从范围[0,n-1]内找出2个满足下述所有条件的下标i和j:abs(i-j)>=indexDifference且abs(nums[i]-nums[j])>=valueDifference返回整数数组a......
  • 【算法题】2530.执行 K 次操作后的最大分数
    题目:给你一个下标从0开始的整数数组nums和一个整数k。你的起始分数为0。在一步操作中:选出一个满足0<=i<nums.length的下标i,将你的分数增加nums[i],并且将nums[i]替换为ceil(nums[i]/3)。返回在恰好执行k次操作后,你可能获得的最大分数。向上取......
  • 【算法题】2899. 上一个遍历的整数
    题目:给你一个下标从0开始的字符串数组words,其中words[i]要么是一个字符串形式的正整数,要么是字符串“prev”。我们从数组的开头开始遍历,对于words中的每个“prev”字符串,找到words中的上一个遍历的整数,定义如下:k表示到当前位置为止的连续“prev”字符串数目(包含......
  • 【算法题】2903. 找出满足差值条件的下标 I
    题目:给你一个下标从0开始、长度为n的整数数组nums,以及整数indexDifference和整数valueDifference。你的任务是从范围[0,n-1]内找出2个满足下述所有条件的下标i和j:abs(i-j)>=indexDifference且abs(nums[i]-nums[j])>=valueDifference返回整数数组a......
  • 【算法题】只出现一次的数字 III
    题目:给你一个整数数组nums,其中恰好有两个元素只出现一次,其余所有元素均出现两次。找出只出现一次的那两个元素。你可以按任意顺序返回答案。你必须设计并实现线性时间复杂度的算法且仅使用常量额外空间来解决此问题。示例1:输入:nums=[1,2,1,3,2,5]输出:[3,5]解释:[5,3]也是......
  • # yyds干货盘点 # PD有随机填充的功能吗?有无什么随机填充的方法啊?
    大家好,我是皮皮。一、前言前几天在Python最强王者交流群【黑科技·鼓包】问了一个Pandas数据库数据处理的问题,一起来看看吧。PD有随机填充的功能吗?例如我有类似的第一列PD数据的话没有NA值,我希望在第二列生成指定数量例如300条(比左侧少)随机位置的固定字符串。有无什么随机填充的方......
  • APP渗透--magisk+LSPosed+算法助手环境安装
    安装mgisk1、先安装app-debug.apk首先设置好模拟器的设置设置为可写入开启root之后重启安装app-debug.apk然后点开这个面具给root权限点击安装勾选这个选项之后就重启然后点开面具之后点击下一步必须看到安装到系统分区之后点击开始等待安装直到这里出现alldon......
  • 电机模型预测控制算法
    电机模型预测控制(ModelPredictiveControl,简称MPC)是一种基于模型的先进控制算法,适用于电机矢量控制。与传统的比例积分控制(PI控制)相比,MPC算法能够更好地优化控制性能和动态响应。下面是电机模型预测控制算法的基本步骤:建立电机模型:首先,需要建立电机的动态数学模型。一般情况下,可以......