我是靠谱客的博主 土豪麦片,最近开发中收集的这篇文章主要介绍不用随机函数rand(),给定特定随机函数f,设计如何生成其他的随机函数g不用随机函数rand(),给定特定随机函数f,设计如何生成其他的随机函数g?题目设计g,它能产生1–10内的随机数设计g,它能产生30–35内的随机数总结,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

不用随机函数rand(),给定特定随机函数f,设计如何生成其他的随机函数g?

提示:技巧性很强,二进制编码的问题


文章目录

  • 不用随机函数rand(),给定特定随机函数f,设计如何生成其他的随机函数g?
    • @[TOC](文章目录)
  • 题目
  • 设计g,它能产生1--10内的随机数
  • 设计g,它能产生30--35内的随机数
  • 总结

题目

不用随机函数rand(),给定特定随机函数f,设计如何生成其他的随机函数g
比如:
(1)f可以生成1–7的随机数,请你设计g,它能产生1–10内的随机数
(2)f可以生成20–25内的随机数,请你设计g,它能产生30–35内的随机数


设计g,它能产生1–10内的随机数

(1)f可以生成1–7的随机数,请你设计g,它能产生1–10内的随机数

原本呢?
咱们可用Math.rand()产生0–1之间的随机小数,乘10就是0–9之间的数字,可以代表1–10

那么现在不让用了

不过咱们有f,它可以产生1–7之间的数,如何对应随机生成0–9呢???

咱们这一次学完你就能理解,这样搞:
(1)将f产生的数中,123当做0,456当做1,7不要了
(2)f随机生成3次,如果数为abcd,自然可以当初是0000–1111的随机数,咱们只用其中的0–9就行了
这样g就设计出来了
是不是很妙?
在这里插入图片描述
这里不要的那些,不要认为是缺失了,咱就是不要,反正f就是随机出1–7
遇到123咱当0,遇到456当1,遇到7当没干,重新来过
每次都是随机搞abcd,一定是等概率出0–15,咱们遇到0–9要了,否则重新来过。

设计g,它能产生30–35内的随机数

(2)f可以生成20–25内的随机数,请你设计g,它能产生30–35内的随机数
好说,f+10=g完事

另外,也可以这么搞
20 21 22当0
23 24 25当1

f每次随机出3个abc
组合000—111
那只要0–5,把67扔掉
然后让abc+30就是g了
30–35
是不是也很巧
在这里插入图片描述


总结

提示:重要经验:

(1)f可以生成1–7的随机数,请你设计g,它能产生1–10内的随机数
(2)f可以生成20–25内的随机数,请你设计g,它能产生30–35内的随机数
3)笔试求AC,可以不考虑空间复杂度,但是面试既要考虑时间复杂度最优,也要考虑空间复杂度最优。

最后

以上就是土豪麦片为你收集整理的不用随机函数rand(),给定特定随机函数f,设计如何生成其他的随机函数g不用随机函数rand(),给定特定随机函数f,设计如何生成其他的随机函数g?题目设计g,它能产生1–10内的随机数设计g,它能产生30–35内的随机数总结的全部内容,希望文章能够帮你解决不用随机函数rand(),给定特定随机函数f,设计如何生成其他的随机函数g不用随机函数rand(),给定特定随机函数f,设计如何生成其他的随机函数g?题目设计g,它能产生1–10内的随机数设计g,它能产生30–35内的随机数总结所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(47)

评论列表共有 0 条评论

立即
投稿
返回
顶部