Swift   发布时间:2022-03-31  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了[Swift]LeetCode470. 用 Rand7() 实现 Rand10() | Implement Rand10() Using Rand7()大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

Given a function rand7 which generates a uniform random Integer in the range 1 to 7, write a function rand10 which generates a uniform random Integer in the range 1 to 10. Do NOT use system‘s Math.ran

Given a function rand7 which generates a uniform random Integer in the range 1 to 7,write a function rand10 which generates a uniform random Integer in the range 1 to 10.

Do NOT use system‘s @H_818_19@math.random(). 

Example 1:

Input: 1
Output: [7] 

Example 2:

Input: 2
Output: [8,4] 

Example 3:

Input: 3
Output: [8,1,10] 

Note:

  1. rand7 is predefined.
  2. Each TESTCase has one argument: n,the number of times that rand10is called. 

Follow up:

  1. what is the expected value for the number of calls to rand7()@R_724_3816@?
  2. @R_404_1793@ you minimize the number of calls to rand7()?

已有方法 rand7 可生成 1 到 7 范围内的均匀随机整数,试写一个方法 rand10 生成 1 到 10 范围内的均匀随机整数

不要使用系统的 @H_818_19@math.random() 方法。 

示例 1:

输入: 1
输出: [7]

示例 2:

输入: 2
输出: [8,4]

示例 3:

输入: 3
输出: [8,10] 

提示:

  1. rand7 已定义。
  2. 传入参数: n 表示 rand10 的调用次数。 

进阶:

  1. rand7()调用次数的 期望值 是多少 ?
  2. 你能否尽量少调用 rand7() ?
Runtime: 44 ms
Memory Usage: 5.9 MB
 1 @H_489_138@/*@H_489_138@*
 2 @H_489_138@ * The rand7() API is already defined in the parent class SolBase.
 3 @H_489_138@ * func rand7() -> Int = {}
 4 @H_489_138@ * @return a random Integer in the range 1 to 7
 5  @H_489_138@*/
 6 class Solution : SolBase {
 7     func rand10() -> Int {
 8         while(true)
 9         {
10             var a:Int = rand7()
11             var b:Int = rand7()
12             var num:Int = (a - 1) * 7 + b
13             if num <= 40 {return num % 10 + 1}
14             a = num - 40
15             b = rand7()
16             num = (a - 1) * 7 + b
17             if num <= 60 {return num % 10 + 1}
18             a = num - 60
19             b = rand7()
20             num = (a - 1) * 7 + b
21             if num <= 20 {return num % 10 + 1}
22         }
23     }
24 }
@H_618_288@44ms
 1 @H_489_138@/*@H_489_138@*
 2 @H_489_138@ * The rand7() API is already defined in the parent class SolBase.
 3 @H_489_138@ * func rand7() -> Int = {}
 4 @H_489_138@ * @return a random Integer in the range 1 to 7
 5  @H_489_138@*/
 6 class Solution : SolBase {
 7     func rand10() -> Int {
 8         var a,b,no: Int?
 9         repeat {
10             a = rand7() - 1
11             b = rand7() - 1
12             no = 7 * a! + b!
13         } while (no! > 39)
14         
15         return (no! % 10) + 1
16     }
17 }

 48 ms

 1 @H_489_138@/*@H_489_138@*
 2 @H_489_138@ * The rand7() API is already defined in the parent class SolBase.
 3 @H_489_138@ * func rand7() -> Int = {}
 4 @H_489_138@ * @return a random Integer in the range 1 to 7
 5  @H_489_138@*/
 6 class Solution : SolBase {
 7     func rand10() -> Int {
 8         var num:Int = (rand7() - 1) * 7 + rand7()
 9         return (num <= 40) ? (num % 10 + 1) : rand10()        
10     }
11 }
@H_674_449@

大佬总结

以上是大佬教程为你收集整理的[Swift]LeetCode470. 用 Rand7() 实现 Rand10() | Implement Rand10() Using Rand7()全部内容,希望文章能够帮你解决[Swift]LeetCode470. 用 Rand7() 实现 Rand10() | Implement Rand10() Using Rand7()所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。