首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

随机产生和S的N个正整数

如果给你一个问题:“随机产生和S的N个正整数”, 你会如何做呢? 针对该问题,解决的方法有很多种。在这篇文章中,我将为大家给出两种比较好理解的解决方法:一个是“尺子法”;另外一个是“锯木头法”。...方法一:尺子法 将给定值S看成一个尺子的长度,那么,生成N个和S的正整数的问题就变成在尺子中寻找出N-1个不同的刻度,加上最小刻度0和最大刻度S, 一共有N+1个刻度。...验证参数S和N的正确性 尺子中产生N-1个不同刻度 计算相邻刻度之间的值 /** * * 随机产生和sum(如10)的num(如5)个正整数 * *...的N个正整数的问题转换成锯N-1次木头,将产生N段小木头,N段的小木头其长度和就是S。...有了上述思想,我们便可以通过如下几个步骤实现该方法: 验证参数S和N的正确性 锯N-1次木头 在锯木头的时候,需要考虑可锯的长度。

84720
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    2021-08-25:给定数组father大小N,表示一共有N个节点

    2021-08-25:给定数组father大小N,表示一共有N个节点,fatheri = j 表示点i的父亲是点j, father表示的树一定是一棵树而不是森林,queries是二维数组,大小M*2...,每一个长度2的数组都表示一条查询,4,9, 表示想查询4和9之间的最低公共祖先…,3,7, 表示想查询3和7之间的最低公共祖先…,tree和queries里面的所有值,都一定在0~N-1之间。...返回一个数组ans,大小M,ansi表示第i条查询的答案。 福大大 答案2021-08-25: 树链剖分。 代码用golang编写。...= make([]int, this.n) this.son = make([]int, this.n) this.siz = make([]int, this.n) this.top...= make([]int, this.n) this.n-- cnum := make([]int, this.n) for i := 0; i < this.n; i++ {

    25810
    领券