社区
数据结构与算法
帖子详情
一个数组,随机抽取的两个数,请问是哪两个?
youzelin
2010-11-03 05:04:49
题目:有 100 个数,值为 1 - 100,现在随机抽取其中
两个
,将剩余的数次序打乱放入数组 a 中。
问题:请问抽取的是哪两个数?
要求:1. 数组 a 只能遍历一次。
2. 自定义的变量个数不能超过 5 个。
3. 不能另外自定义数组变量。(即:整个算法中只有一个数组 a)
请问这个如何解决?谢谢
...全文
414
16
打赏
收藏
一个数组,随机抽取的两个数,请问是哪两个?
题目:有 100 个数,值为 1 - 100,现在随机抽取其中两个,将剩余的数次序打乱放入数组 a 中。 问题:请问抽取的是哪两个数? 要求:1. 数组 a 只能遍历一次。 2. 自定义的变量个数不能超过 5 个。 3. 不能另外自定义数组变量。(即:整个算法中只有一个数组 a) 请问这个如何解决?谢谢
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
16 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
zhouzhanglong
2010-11-04
打赏
举报
回复
位图与求平方和,都不错
zhangyilina1987
2010-11-04
打赏
举报
回复
恩,都很好,
showjim
2010-11-04
打赏
举报
回复
[Quote=引用 11 楼 michael122 的回复:]
就是拿100个bit出来(4个int就够了),每个bit对应1-100中的数i是否在数组中,存在就设为1,不存在就是0.这样扫描一遍就可以把这100个bit设置完,最后看看哪两个数对应的bit是0就行了
当然,如果这样算扫描两遍的话,就用3楼的方法吧
[/Quote]
第二次不用扫描,用位运算与模运算可以找到那两个1的位置。
showjim
2010-11-04
打赏
举报
回复
[Quote=引用 3 楼 litaoye 的回复:]
求和与平方和,然后解方程就可以
[/Quote]
开平方用快速算法或查表还可以,否则位图效率高
牛海朋
2010-11-04
打赏
举报
回复
你看这样行吗
double s=100+99;
double m=100*99;
for(int i=0;i<98;i++){
s=s+i+1-a[i];//两数之和
m=m*(i+1)/a[i];//两数之积
}
//求的两个数
int n1=(int) ((Math.sqrt(s*s-4*m)+s)/2);
int n2=(int) (s-n1);
michael122
2010-11-04
打赏
举报
回复
就是拿100个bit出来(4个int就够了),每个bit对应1-100中的数i是否在数组中,存在就设为1,不存在就是0.这样扫描一遍就可以把这100个bit设置完,最后看看哪两个数对应的bit是0就行了
当然,如果这样算扫描两遍的话,就用3楼的方法吧
[Quote=引用 9 楼 youzelin 的回复:]
引用 1 楼 michael122 的回复:
才100个数,用位图就搞定了
一个int 32位,4个int变量就够了
michael122, 不要说一半可以吗?如果有位图算法,能否说说,或者给个和此问题相关的位图算法链接也行!谢谢!
[/Quote]
youzelin
2010-11-04
打赏
举报
回复
[Quote=引用 7 楼 litaoye 的回复:]
平方和公式(2n+1)*(n+1)*n/6,100个数不会溢出
引用 6 楼 youzelin 的回复:
引用 3 楼 litaoye 的回复:
求和与平方和,然后解方程就可以
1^2 + 2^2 + 3^2 + ...... + n^2 平方和怎么求?求和公式是什么?循环平方累加不会溢出吗?
[/Quote]
多谢!
youzelin
2010-11-04
打赏
举报
回复
[Quote=引用 1 楼 michael122 的回复:]
才100个数,用位图就搞定了
一个int 32位,4个int变量就够了
[/Quote]
michael122, 不要说一半可以吗?如果有位图算法,能否说说,或者给个和此问题相关的位图算法链接也行!谢谢!
houjin_cn
2010-11-03
打赏
举报
回复
[Quote=引用 6 楼 youzelin 的回复:]
1^2 + 2^2 + 3^2 + ...... + n^2 平方和怎么求?求和公式是什么?循环平方累加不会溢出吗?
[/Quote]
1*1 + 2*2 + 3*3 + 4*4 + .....100*100 总值不超过 100*100*100,不会溢出
绿色夹克衫
2010-11-03
打赏
举报
回复
平方和公式(2n+1)*(n+1)*n/6,100个数不会溢出
[Quote=引用 6 楼 youzelin 的回复:]
引用 3 楼 litaoye 的回复:
求和与平方和,然后解方程就可以
1^2 + 2^2 + 3^2 + ...... + n^2 平方和怎么求?求和公式是什么?循环平方累加不会溢出吗?
[/Quote]
youzelin
2010-11-03
打赏
举报
回复
[Quote=引用 3 楼 litaoye 的回复:]
求和与平方和,然后解方程就可以
[/Quote]
1^2 + 2^2 + 3^2 + ...... + n^2 平方和怎么求?求和公式是什么?循环平方累加不会溢出吗?
youzelin
2010-11-03
打赏
举报
回复
[Quote=引用 1 楼 michael122 的回复:]
才100个数,用位图就搞定了
一个int 32位,4个int变量就够了
[/Quote]
请问位图这个方法怎么实现?能不能说一下?谢谢
houjin_cn
2010-11-03
打赏
举报
回复
[Quote=引用 3 楼 litaoye 的回复:]
求和与平方和,然后解方程就可以
[/Quote]
Very Good
绿色夹克衫
2010-11-03
打赏
举报
回复
求和与平方和,然后解方程就可以
houjin_cn
2010-11-03
打赏
举报
回复
1)先数组求和,得到那两个数的和;
2)循环搜索出其中一个数;
3)用和减去这个数得到另外一个数;
没有使用新数组,使用的变量: 两个循环下标 + 一个总和 + 两个结果 = 5个变量
michael122
2010-11-03
打赏
举报
回复
才100个数,用位图就搞定了
一个int 32位,4个int变量就够了
java源码包---java 源码 大量 实例
Java波浪文字,
一个
利用Java处理字符的实例,可以设置运动方向参数,显示文本的字符
数组
,高速文本颜色,显示字体的 FontMetrics对象,得到Graphics实例,得到Image实例,填充颜色
数组
数据,初始化颜色
数组
。...
java
随机
抽
两
个
数_java 从
数组
中
随机
抽取
两
个
不相同的字符组合
展开全部要
随机
去的话还是有点复杂。我给你做出62616964757a686964616fe58685e5aeb931333337383334来了。你这
个数
据太多了。有40320种情况。你可以把数据元素弄少点,试试。packagea;importjava.util.HashSet;import...
JavaScript
随机
抽取
不重复的
数组
元素,你真的会吗?
码匠 2017-05-14 11:54 HTML5学堂-码匠:从JavaScript
数组
(Array)中
随机
抽取
不重复的元素,构成新
数组
(Array),...从
一个
JavaScript
数组
当中,
随机
抽取
数个元素,构成新
数组
,要求这些元素不能重复。(即随
js 从
一个
数组
中
随机
抽取
元素
需求 从长度为20的
数组
中
随机
取出3个元素,且不能重复 如果使用生成
随机
数取值的方法 可能会取到重复值 因为
随机
数可能重复 如果每次生成
随机
数都记录下来,再取的时候判断是否重复又太过麻烦 可以使用
随机
打乱
数组
...
数组
随机
抽取
一个
值放到
一个
数组
中(不重复)
这里是在vue中的data中的
两
个
数组
进行交互的 // 列表渲染定时添加方法 list() { let index = this.listOne.length - 1; let arr = this.listOne; setInterval(() => { //
随机
数处理 let item = this.listTwo[ ...
数据结构与算法
33,008
社区成员
35,326
社区内容
发帖
与我相关
我的任务
数据结构与算法
数据结构与算法相关内容讨论专区
复制链接
扫一扫
分享
社区描述
数据结构与算法相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章