2019年4月16日

洗牌算法(随机数生成)总结

摘要: 1. 背景 笔试时,遇到一个算法题:差不多是 在n个不同的数中随机取出不重复的m个数。洗牌算法是将原来的数组进行打散,使原数组的某个数在打散后的数组中的每个位置上等概率的出现,刚好可以解决该问题。 2. 洗牌算法 由抽牌、换牌和插牌衍生出三种洗牌算法,其中抽牌和换牌分别对应Fisher-Yates 阅读全文

posted @ 2019-04-16 22:41 爱装逼的书呆子 阅读(3124) 评论(0) 推荐(1) 编辑

转(排序算法总结)

摘要: Java常用的八种排序算法与代码实现 排序问题一直是程序员工作与面试的重点,今天特意整理研究下与大家共勉!这里列出8种常见的经典排序,基本涵盖了所有的排序算法。 1.直接插入排序 我们经常会到这样一类排序问题:把新的数据插入到已经排好的数据列中。将第一个数和第二个数排序,然后构成一个有序序列将第三个 阅读全文

posted @ 2019-04-16 21:31 爱装逼的书呆子 阅读(216) 评论(0) 推荐(0) 编辑

(转)几道概率题

摘要: 1、考虑一个特殊的hash函数h,能将任一字符串hash成一个整数k,其中概率P(k)=2^(-k),k=1,2,…∞。对一个未知大小的字符串集合S中的每一个元素取hash值所组成的集合为h(S)。若h(S)中最大的元素max h (S) = 10,那么S的大小的期望是_______。 先来一个简单 阅读全文

posted @ 2019-04-16 10:03 爱装逼的书呆子 阅读(971) 评论(0) 推荐(0) 编辑

(转)一个骰子,6面,1个面是 1, 2个面是2, 3个面是3,问平均掷多少次能使1、2、3都至少出现一次。

摘要: 题目:一个骰子,6面,1个面是 1, 2个面是2, 3个面是3,问平均掷多少次能使1、2、3都至少出现一次。 解法一:(没学过《组合数学》的请略过) 设P(N=n)表示第n次(n>2)抛出后1,2,3都出现的概率,问题要求n的期望E(N=n).掷1的概率p=1/6,掷2的概率q=1/3,掷3的概率r 阅读全文

posted @ 2019-04-16 09:58 爱装逼的书呆子 阅读(940) 评论(0) 推荐(0) 编辑

概率面试题

摘要: 1、给你一个数组,设计一个既高效又公平的方法随机打乱这个数组(此题和洗牌算法的思想一致) 方法比较简单,基本思想是每次随机取一个数,然后把它交换到最后的位置。然后对前(n-1)个数使用递归的算法。 递归实现: 非递归实现 2、有一苹果,两个人抛硬币来决定谁吃这个苹果,先抛到正面者吃。问先抛这吃到苹果 阅读全文

posted @ 2019-04-16 09:45 爱装逼的书呆子 阅读(794) 评论(0) 推荐(0) 编辑

导航