题目意思很简单。就是洗牌,抽出奇数和偶数,要么奇数放前面,要么偶数放前面。总共2^N张牌。需要问的是,给了A X B Y 问经过若干洗牌后,第A个位置是X,第B个位置是Y 是不是可能的。Jason is not only an ACMer, but also a poker nerd. He is ...
分类:
其他好文 时间:
2015-09-03 15:12:54
阅读次数:
290
题目地址:POJ 3087
题意:已知两堆牌数均为n的纸牌堆a和b的初始状态, 按给定规则能将他们相互交叉组合成一堆牌str,再将str的最底下的n张牌归为a,最顶的n张牌归为b,依此循环下去。现在输入a和b的初始状态 以及 预想的最终状态c,问a, b经过多少次洗牌之后,最终能达到状态c,若永远不可能相同,则输出”-1”。
思路:用map记录一下当前str出现的状态,如果当前的str在前面出现...
分类:
其他好文 时间:
2015-08-16 18:26:16
阅读次数:
166
问题定义:给定有序序列1-n,要求将其打乱,使得每个元素在任意位置出现的概率均为1/n。程序实现:void shuffle(int *arr, int n) // n为序列中元素总数{ int idx; for(int i = 0; i < n; i++) { ...
分类:
编程语言 时间:
2015-08-16 16:39:28
阅读次数:
174
序列化(serialization)是指将结构化的对象转化为字节流,以便在进程间通信或者写入硬盘永久存储。相对的反序列化(deserialization)是指将字节流转回到结构化对象的过程。需要注意的是,能够在网络上传输的只能是字节流。所以,Map的中间结果在不同主机间Shuffle洗牌时,结构化对...
分类:
其他好文 时间:
2015-08-15 13:23:34
阅读次数:
114
在互联网更加深入的发展推动下,如同互联网电视机(苹果、乐视、小米等)撼动僵化保守的电视机市场一样,企业软件市场正在经历新一代的产品洗牌,传统软件在逐渐向定制化软件和个性化服务转变。 但大...
分类:
其他好文 时间:
2015-08-10 15:01:31
阅读次数:
195
1.给N张扑克牌和一个随机函数,设计一个洗牌算法关键点:如何保证每张牌等概率地出现在每个位置伪码如下for i in 1…n: randomly select a card j from [1,i] swap card i with card j用数学归纳法证明其正确性:1. 当N=1时...
分类:
其他好文 时间:
2015-08-06 14:54:18
阅读次数:
230
//经典的洗牌算法,数组中随机抽一个元素与最后一个进行交换,下次在前n-1个元素中随机抽,依次类推直到最后一个
void shuffle(CREC *array, long n) {
long i, j;
CREC tmp;
for (i = n - 1; i > 0; i--) {
j = rand_long(i + 1);
tmp = a...
分类:
编程语言 时间:
2015-08-04 17:22:49
阅读次数:
149
C++1. 实现memcpyfollow up:如何优化?拓展:strcpy2.STL中vector的实现原理拓展: map,set,deque...概率题1.给N张扑克牌和一个随机函数,设计一个洗牌算法操作系统1.进程和线程有什么区别和联系海量数据1.100亿个整数,如何找到中位数网络TCP/IP...
分类:
其他好文 时间:
2015-08-02 16:36:26
阅读次数:
121
最近做一个程序要实现一个Shake手机的特性。
想到这个功能可能应用广泛,比如摇晃手机换图片、截图、洗牌、结束当前程序等,所以找了些资料,并加以改进,将此功能封装成类(ShakeDetector),方便今后使用。...
分类:
移动开发 时间:
2015-07-30 00:52:15
阅读次数:
139
牌放到一个数组中,这里采用随机取下标的方式,交换两张牌。将数组分为两个部分,一个部分为洗好的牌,和没有洗好的牌。从没有洗好的牌中随机选一张和没有洗好的第一张牌进行交换。这样洗好的牌数量加1,没有洗好的牌数量减1时间复杂度O(n),空间复杂度O(1) 1 import java.util.Date; ...
分类:
编程语言 时间:
2015-07-29 22:38:43
阅读次数:
186