求一个面试算法题答案。

问题描述

求一个面试算法题答案。
已知函数f()以相同的概率返回0或者1,求一个函数g()以相同的概率返回0-7之间的任意一个数字。

解决方案

其实这个题不难,可以考虑用2进制的方式来做。
g()
{
return 4*f()+2*f()+f();
}

希望能帮到你。

解决方案二:
#include
int g()
{
srand(time(NULL));
ret = rand()%8;
return ret;
}

时间: 2024-09-08 23:20:11

求一个面试算法题答案。的相关文章

求一个程序算法,关于找出符合条件的操作符排列?

问题描述 求一个程序算法,关于找出符合条件的操作符排列? 给一个初始操作数a,然后对这个操作数执行n次加减乘余的计算操作[每次操作a自增1,而且不考虑运算符优先级,谁在前面先算谁],最后会得到一个结果数x,问如何求出这些操作符?? 重要:程序不能使用递归,最好只用一个主函数!! 比如,给你一个初始数3,执行7次加减乘余操作,最后得到结果147,那么有一种操作符序列满足条件:* + + - * + + 既:3*4+5+6-7*8+9+10=147 解决方案 亲测合格,请验证: #include #

求一个抽奖算法,最好java实现

问题描述 求一个抽奖算法,最好java实现 需求如下: 总共分四等奖, 1等奖名额2个,中奖概率2/10000 2等奖名额10个,中奖概率5/1000 3等奖名额100个,中奖概率10/100 4等奖名额880个,中奖概率25/100 求一个算法,算出用户单次抽奖中奖等级(1,2,3,3等奖或不中奖). 最好java实现. 解决方案 说个最简单的,用java的随机函数.用Random类生成随机数,也可以用Math类中的random生成 区别看这里:http://liukai.iteye.com/

求一个合理算法,比较两个数据量较大的集合

问题描述 求一个合理算法,比较两个数据量较大的集合 现有listA,数据库B,A中的数据如果与B中不同(包含不存在的情况), 则将不同或不存在的数据记录到B中, 现在问题是,listA和数据库B都有大量数据, 求一个合理的比较二者数据的算法 解决方案 先排序再比较啊. 比较的时候: 如果 A[i] == B[j],继续下一个比较 A[i+1] 和 B[j+1]: 如果 A[i]<B[j].或者B没有可以比较的数,就是不存在: 如果 A[i]>B[j],继续下一个比较 A[i] 和 B[j+1]

js算法-求一个JS算法,30s没执行成功,则1分钟后继续执行,。。。直到执行成功

问题描述 求一个JS算法,30s没执行成功,则1分钟后继续执行,...直到执行成功 执行一件事,如果没成功,则每过一段时间后自动执行,直到成功 解决方案 <script language=javascript> var int=self.setInterval("dothings()",1000)//1秒1次 function dothings() { if(true){//如果执行成功 clearInterval(int);//关闭定时执行 } } </script

求一道数据结构算法题的答案?

问题描述 把100元钱换成1元,2元,5元,10元的有多少种换法?麻烦大家都把你们的方式写下来我参考.参考?貌似可以用递归但是我没有写过,我写过四个嵌套循环,但是确实很不行那种方式.效率问题.希望大虾们把你们的方式写出来给小弟我参考参考. 解决方案 解决方案二:循环嵌套可以稍微优化一下,比如for(intcnt10=0;cnt10<=10;cnt10++)另外,如果到某个循环,发现总和已经>100,那么就可以break了解决方案三:这个google一下,应该有详细的答案解决方案四:递归做比较好

求一个抽奖算法......

问题描述 50%不中奖25%优惠卷(优惠有好几种这个可以直接随机的)25%红包其中红包在25%的的比例,不是整个比例1.90到100的红包6万分之一2.80到89.99的红包5万分之一3.50到79.99的红包4万分之一4.30到49.99的红包3万分之一5.20到29.99的红包2万分之一6.10到19.99的红包1万分之一7.5到9.99的红包五千分之一8.3到4.99的红包两千分之一9.2到2.99到红包五百分之一10.1到1.99的红包一百分之一11.其余都是0.99以下求大神.....

100分求一个随机数生成算法

问题描述 500000元分给1000000个人,每个人分0.18到88元,正好分完.请问如何使用算法实现? 解决方案 解决方案二:decimalsumMoney=500000m;//总金额intremainPerson=1000000;Dictionary<string,decimal>dicResult=newDictionary<string,decimal>();//存储分配结果voidPenny(){decimalmoney=0m;//每人分到的金额for(inti=0;i

java面试算法题之递增三元组子序列

给出一个无序的整数序列,返回是否存在递增的三元组子序列. 如果存在 i, j, k 使得 arr[i]即返回true:如果不存在则返回false. 解法一 public static void main(String[] args) {         int[] inputNums = { 6, 4, 3, 2, 4, 7, 1 };         System.out.println(isExist(inputNums));     } public static boolean isEx

求一个逼近算法java代码怎么写啊

问题描述 题目:发现一种混合金属含Ag为10mg/kg,已知此种混合金属由n(n是随机变量)种标准金属混合而成,标准金属中的Ag含量已知,请计算出组成此混合金属的n种标准金属的含量?没得啥思路,求高手帮忙 解决方案 解决方案二:没怎么看明白.已经Ag含量是10mg/kg,那么n种金属的含量不就是(1kg-10mg)/kg么?解决方案三:lz是想求n种标准金属每一种的含量吧.