iOS 生成随机数 重复 不重复
//编程的时候,有三条任选执行路径,都会显示一些图片,比如路径1显示的图片是一个人,路径2显示的是两个人,路径3显示任意人数的图片,要求每次进入该页面都不能重复初始的那张图片。 于是我想到了 运用随机生成数来解决。 网上搜搜 果然好多方法,有一点是很重要的,随机生成,不能保证是否有重复的,那么用户体验肯定不好,为了用户果断应该选择“不重复的随机生成数的方法”
以下是借鉴别人的好方法 留着备用。 、获取一个随机整数范围在:[,)包括0,不包括100 int x = arc4random() % ; 、 获取一个随机数范围在:[,),包括500,不包括1000 int y = (arc4random() % ) + ; /***********************/ //生成0~9 标记index 的数
-(NSMutableArray *)getRandomNumber:(NSArray * )temp
{
NSMutableArray *tempArray = [[NSMutableArray alloc] initWithArray:temp];
NSMutableArray *resultArray = [[NSMutableArray alloc] init];
int i;
int count = temp.count;
NSLog(@"count:%d",count);
for (i = ; i < count; i ++) {
int index = arc4random() % (count - i);
[resultArray addObject:[tempArray objectAtIndex:index]];
NSLog(@"index:%d,xx:%@",index,[tempArray objectAtIndex:index]);
[tempArray removeObjectAtIndex:index];
}
NSLog(@"resultArray is %@",resultArray);
return resultArray;
} 调用: NSArray* arrary_ScrollView_Single=[[NSArray alloc]initWithObjects:@"",@"",@"",@"",@"",@"",@"",@"",@"",nil]; NSMutableArray * arrary_moment=[selfgetRandomNumber:arrary_ScrollView_Single]; NSLog(@"%@",arrary_moment); resultArray is ( , , , , , , , , ) //原理
int index = arc4random() % (count - i);
//每取一个。减少一个。比如开始是从0~8 取一个后就少一个。
[tempArray removeObjectAtIndex:index];
//最重新的就是这句。它是把array 里的已取到的元素删掉,
iOS 生成随机数 重复 不重复的更多相关文章
- sql 生成随机数 以及不重复随机数
背景:想在表中随机取10条记录,让取出来的数据不重复(表中必须是有个递增列,且递增从1开始间隔为1). 数据表: CREATE TABLE testable ( id INT IDENTITY(1 ...
- java面试--(生成随机数,获取重复次数最多,并且数是最大的一个,打印出来)
import java.util.*; public class MaxRandom { public static void main(String[] args){ int[] num = new ...
- iOS 生成随机数
arc4random 1.获取一个随机整数范围在:[0,100)包括0,不包括100 int x = arc4random() % 100; 2. 获取一个随机数范围在:[500,1000],包括5 ...
- PHP函数:生成N个不重复的随机数
思路:将生成的随机数存入数组,再在数组中去除重复的值,即可生成一定数量的不重复随机数. 程序: <?php /* * array unique_rand( int $min, int $max, ...
- 生成N个不重复的随机数(转)
有25幅作品拿去投票,一次投票需要选16幅,单个作品一次投票只能选择一次.前面有个程序员捅了漏子,忘了把投票入库,有200个用户产生的投票序列为空.那么你会如何填补这个漏子? 当然向上级反映情况.但是 ...
- PHP CodeBase: 生成N个不重复的随机数
有25幅作品拿去投票,一次投票需要选16幅,单个作品一次投票只能选择一次.前面有个程序员捅了漏子,忘了把投票入库,有200个用户产生的投票序列为空.那么你会如何填补这个漏子? <?php /* ...
- java,url长链接生成短链接,短链接生成器,自定义字符串,对字符串md5混合KEY加密,根据短链接获得key值,不重复的随机数,不重复的随机字符串
java,url长链接生成短链接,短链接生成器,自定义字符串,对字符串md5混合KEY加密,根据短链接获得key值,不重复的随机数,不重复的随机字符串 package com.zdz.test; im ...
- C# Random循环生成随机数重复问题解决方案
C# Random循环生成随机数重复问题解决方案1.当我们通过Random生成随机数时,习惯的写法如下: int a=new Random().Next(0,100); 然后生成一个数据数没有任何问题 ...
- 使用C++生成1-33中的6个随机数,无重复
生成1-33中的6个随机数,无重复 ------------------------------------------------------------------------ 方法1.每生成 ...
随机推荐
- Unity3D Persistent Storage
[Unity3D Persistent Storage] 1.PlayerPrefs类以键值对的形式来提供PersistentStorage能力.提供小额存储能力.(做成sst可以提供大规模数据存储) ...
- Java中的BASE64
located in rt.jar... public class sun.misc.BASE64Encoder extends sun.misc.CharacterEncoder{ //.. } p ...
- hdoj 5417 Victor and Machine
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5417 水题,一开始题目读错了做了好久,每次停工以后都是重新计时. 需要注意的是,先除后乘注意加括号 # ...
- java设计模式(装饰模式)
装饰模式实现了可以动态地为原对象扩展方法 装饰对象与被装饰的都实现了同一个接口(或抽象类) 举个例子: 工作 可以边吃东西边工作,也可以边喝东西边工作,还可以工作的时候边吃边喝 创建共同接口 Work ...
- 结构类模式(二):桥接(Bridge)
定义 将抽象化(Abstraction)与实现化(Implementation)脱耦,使得二者可以独立地变化. 在软件系统中,某些类型由于自身的逻辑,它具有两个或多个维度的变化,那么如何应对这种“多维 ...
- mvc中ajax.beginform一次提交重复Post两次的问题解决
在MVC4中使用ajax.beginform来做添加商品到购物车中的提交操作,结果点击提交按钮后,出现两次post,这样导致商品的数量增加了一倍. 原因:@Scripts.Render("~ ...
- linux TCP数据包重传过程----小结
于TCP/IP协议栈的TCP协议的重传功能是由在linux内核源码(net/ipv4/tcp_output.c)中的函数tcp_retransmit_skb()实现的 代码如下: /* This re ...
- MFC中OnDraw()和OnPaint()的区别[转]
问题 问题:我在视图画的图象或者文字,当窗口改变后为什么不见了?OnDraw()和OnPaint()两个都是解决上面的问题,有什么不同? OnDraw()和OnPaint()好象兄弟俩,因为它们的工作 ...
- vector中的erase方法[转+补充]
注释如下: iterator erase(iterator it); // 删除指定元素,并返回删除元素后一个元素的位置(如果无元素,返回end())iterator erase(iter ...
- C#完成超酷的图像效果 (附demo)
如果您觉得C#制作的艺术字比较好玩, 但是还觉得没看够,不过瘾,那么我今天就让您一饱眼福, 看看C#如何制作的效果超酷的图像. (注: 我之前曾写过类似的文章, 但没有原理说明, 代码注释不够详细, ...