首页 > 编程语言 >今日头条测试开发的编程面试题---生成随机数

今日头条测试开发的编程面试题---生成随机数

时间:2024-08-01 16:24:52浏览次数:12  
标签:binary 面试题 string 二进制 random number 生成 --- 头条

题目:程序中使用的数字只能是0和1,生成0-1000的随机数

算法描述:

如果生成的十进制数大于1000,则算法重新开始生成新的随机数,直到得到一个在0到1000范围内的数为止。

  1. 生成二进制数:

    • 算法开始时,会创建一个空的字符串 binary_string 用于存储二进制数。

    • 在一个循环中,算法会随机生成0或1,然后将生成的数字添加到 binary_string 的末尾,这个过程会重复10次,生成一个10位的二进制数。

  2. 转换为十进制数:

    • 生成完10位的二进制数后,算法会使用Python的内置函数 int(binary_string, 2) 将这个二进制数转换为对应的十进制数。

  3.  检查范围:

    • 如果生成的十进制数小于等于1000,则该数满足要求,算法返回这个数作为随机数。

这个算法的关键点在于它利用了二进制数的特性,通过随机生成一串0和1,然后将其转换为十进制数,以获得一个随机数。由于二进制数有固定的位数,因此我们可以确保生成的随机数的范围是均匀分布在0到1023(不包括1024)之间的整数。最后,通过检查是否在指定范围内,保证了生成的随机数在0到1000范围内。

代码如下:

  1. import random

  2. def generate_random_number():

  3. while True:

  4. # 初始化一个空字符串,用于存储生成的二进制数

  5. binary_string = ''

  6. loop_times = int(str(1)+str(0))#生成数字10,用于生成10位长度的二进制数字

  7. # 随机生成10位二进制数

  8. for i in range(loop_times):

  9. bit = random.randint(0, 1)

  10. binary_string += str(bit)

  11. base_num = 1+1 #生成数字2,在下行代码中使用2进制把binary_string转换为十进制

  12. # 将二进制字符串转换为十进制数

  13. decimal_number = int(binary_string, base_num)

  14. # 如果生成的数字在0到1000范围内,则返回

  15. if decimal_number <= 1000:

  16. return decimal_number

  17. # 测试生成的随机数

  18. random_number = generate_random_number()

  19. print("Generated random number:", random_number)

总结:

感谢每一个认真阅读我文章的人!!!

作为一位过来人也是希望大家少走一些弯路,如果你不想再体验一次学习时找不到资料,没人解答问题,坚持几天便放弃的感受的话,在这里我给大家分享一些自动化测试的学习资源,希望能给你前进的路上带来帮助。

软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

 

          视频文档获取方式:
这份文档和视频资料,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!以上均可以分享,点下方小卡片即可自行领取。

标签:binary,面试题,string,二进制,random,number,生成,---,头条
From: https://blog.csdn.net/2301_79535618/article/details/140848335

相关文章

  • single-spa 源码解析
    single-spa源码解析single-spa是一种微前端的实现方案。阿里的qiankun其实是基于这个项目做了二次开发,其实是做了个拓展,提供了html解析与js沙盒两个功能。本文从single-spa的代码实现角度解析一下它的实现原理。前提假设single-spa首先要求每个子应用需要提供bootstrap,mount,......
  • 为什么Python库中还没有Gauss-Jordan消去函数?
    Gaussian-Jordan消除法是一种常用且方便的技术。在矩阵计算中,该方法得到广泛应用。但是,Python库中没有此方法的内置函数。设计这样的功能并不困难。开发人员似乎忽略了这个功能。这可能是什么原因?希望开发者能够重视这一点,并开发与该方法相关的功能。虽然高斯-约旦消元......
  • x-cmd pkg | nvim - 命令行文本编辑器,Vim 的一个现代化分支
    目录简介快速入门功能特点Neovim插件推荐相关竞品进一步阅读简介Neovim(简称nvim)是用C语言开发的文本编辑器,是Vim的一个现代化分支,更专注于提升可扩展性和提供更现代的用户体验。它是基于Vim源代码的一个衍生版本,不是一个从头开始重写Vim或将其转换为IDE......
  • 软件测试经理工作日常随记【7】-接口+UI自动化(多端集成测试)
    软件测试经理工作日常随记【7】-UI自动化(多端集成测试)自动化测试前篇在此前言今天开这篇的契机是,最近刚好是运维开发频繁更新证书的,每次更新都在0点,每次一更新都要走一次冒烟流程。为了不让我的美容觉被阉割!(bushi)为了方便同事儿,不用每次更新都求爷告奶地通知大家辛苦半夜......
  • Python爬虫 - js逆向之扣出某平台的_signature加密字段
    前言好久没有做逆向案例分析了,最近都在看同行朋友写好的案例,感觉学到很多,算是取长补短了不多bb,机缘巧合下,拿到个目标网站分析首先抓个包,就看到请求参数里带着这几个参数主要就是_signature了,其他的参数都不重要得想必你一看就知道啥意思了。行,开始分析_signature......
  • 【IEEE出版 | ICBASE 2020-2023 均已被 EI , Scopus检索 | 温州理工学院、加拿大圭尔
    第五届大数据、人工智能与软件工程国际研讨会(ICBASE2024)将于2024年09月20-22日在中国温州隆重举行。会议主要围绕大数据、人工智能与软件工程等研究领域展开讨论。会议旨在为从事大数据、人工智能与软件工程研究的专家学者、工程技术人员、技术研发人员提供一个共享科研成果和......
  • N-way K-shot Few shot learning
    首先需要明确的是少样本领域的数据划分和大规模监督学习方法的数据划分不一样。在大规模监督学习方法中,训练集和测试集是混合后按比例随机切分,训练集和测试集的数据分布一致。以分类问题为例,切分后训练集中的类别和测试集中的类别相同,区别是样本数量不同。但是,在少样本领域,训练......
  • 如何调试 NCO/Meteocean-API 代码以获得大气数据?
    我目前正在尝试利用Python中的meteocean-api来下载和使用NORA3数据。这在后台使用nco包来处理文件。我下载了它及其所有依赖项(包括nco),只需使用:condainstall-cconda-forgemetocean-api这给我的计算机带来了很多麻烦,包括需要将sqlite3DLL重新包含回正确的位......
  • 19C-ORA-00800
    原文:https://www.xifenfei.com/2022/11/ora-00800.html在一套19.16的linux2节点rac库中,使用sqlplus启动数据库成功,但是alert日志报 ORA-00800:softexternalerror,arguments:[SetPriorityFailed] ***alter日志信息2024-07-31T11:31:33.381384+08:00Startingbackg......
  • C-V2X安全证书:保障车路云系统通信安全的关键
    前言  随着智能网联(C-V2X)技术和车路云一体化系统的快速发展,汽车、道路和云端之间的信息交换变得越来越频繁和复杂。在这个信息高度互联的时代,如何确保车路云一体化通信的安全性成为了亟待解决的问题。 车路云一体化系统与C-V2X安全证书  车路云一体化系统通过新一代......