EXCEL中随机抽样,要求输入一个数字如256从中随机抽取百分之十的数字,即27个数字,在1-10中抽取1个
来源:学生作业帮 编辑:神马作文网作业帮 分类:综合作业 时间:2024/11/11 07:17:25
EXCEL中随机抽样,要求输入一个数字如256从中随机抽取百分之十的数字,即27个数字,在1-10中抽取1个
11-20抽一个,21-30抽一个依此类推,240-256中抽两个,要求抽取的数字不重复,有大侠会么?
11-20抽一个,21-30抽一个依此类推,240-256中抽两个,要求抽取的数字不重复,有大侠会么?
你输入的这个数字,跟你随机抽取的这个范围比如256有什么关系?是不是你输入10000,你就要从1到10000抽取1000个随机数字?还是每次不能重复?
再问: 从10000里抽1000个数字,1-10一个,11-20一个....9990-10000一个,,就是想平均点而且这样取肯定没重复的。上面那个是240-256中取两个所以要求不重复
再答: 相当有难度啊,我有空了帮你想想,因为你这个输入的数据不定,随机取的数字也就可能量很大
再问: (⊙o⊙)嗯,谢谢啊!
再答: 好了,你要抽入的范围如256写在 A1,把我的代码复制到VBA编辑器里,插入一个按钮指定代码,然后不停的点按钮就可以看见数字是随机变的,都显示在B列 从以10为单位的范围内返回 Sub rr() Dim i%, k%, j%, a%, arr() For i = 1 To Int(Range("a1") / 10) + 1 a = Int(Rnd() * 10 + 1) + (i - 1) * 10 ReDim Preserve arr(1 To i) arr(i) = a Next If arr(UBound(arr)) > Range("a1") Then arr(UBound(arr)) = Range("a1") Range("b1").Resize(UBound(arr), 1) = Application.Transpose(arr) End Sub
再问: 这个取数可以四舍五入么?就是300就是取的30个,306就是取31个,这个方法300也是取31个,请问要怎么修改呢?谢谢
再答: Sub rr() Dim i%, a%, arr() Range("b:b").ClearContents For i = 1 To Application.Round(Range("a1") / 10, 0) a = Int(Rnd() * 10 + 1) + (i - 1) * 10 ReDim Preserve arr(1 To i) arr(i) = a Next If arr(UBound(arr)) > Range("a1") Then arr(UBound(arr)) = Range("a1") Range("b1").Resize(UBound(arr), 1) = Application.Transpose(arr) End Sub
再问: 恩恩,,很好,问下如果要求进一怎么修改,就是300还是取30,,301就取31个,,大神,,快成功了- -求帮忙,再顺便问一下Range("b:b").ClearContents这一句是什么作用
再答: 只需要把round 改成roundup就行了嘛,那一句是清空B列的,如果没有这一句你第一A1的数字是300,下次变成100了,11行以后的数字还是300的,所以必须要运行程序的时候清空B列 Sub rr() Dim i%, a%, arr() Range("b:b").ClearContents For i = 1 To Application.RoundUp(Range("a1") / 10, 0) a = Int(Rnd() * 10 + 1) + (i - 1) * 10 ReDim Preserve arr(1 To i) arr(i) = a Next If arr(UBound(arr)) > Range("a1") Then arr(UBound(arr)) = Range("a1") Range("b1").Resize(UBound(arr), 1) = Application.Transpose(arr) End Sub
再问: 额,,试验了下,发现个小问题- -比如301的时候301必然出现- -能不能就是不能整除的时候是290-301取两个数,如你输入301-309的时候都是290-这个数之间取两个数- -话说能加下联系方式么?我QQ:523148248,求大神指导
再答: 你这样可能会取重复的,290-300是是一个段,300-301还是 290-301,有重复区域,我现在的程序是,当是301~309之间的时候 比如:306吧 ,上边算式取出的数字可能超过306,这个时候我就让大于306的数字返回306!我感觉比你所说的合理
再问: 额,,我是说本来290-300不是一个段么?如果输入的数不是整数如301,那前面都一样,280-290取一个然后290-301取两个,因为301就一个数这样出现的概率就是100%了,,所以我想把301放到前面一段然后直接从前面一段取两个数字。这样可以做到么?谢谢
再答: 你真是变化多端啊 Sub rr() Dim i%, a%, arr(), b%, c%, d% Range("b:b").ClearContents For i = 1 To Int(Range("a1") / 10) a = Int(Rnd() * 10 + 1) + (i - 1) * 10 ReDim Preserve arr(1 To i) arr(i) = a Next line: b = arr(UBound(arr)) Mod 10 c = (Range("a1") - (UBound(arr) - 1) * 10) * Rnd() + 1 d = (UBound(arr) - 1) * 10 If b = c Then GoTo line Else ReDim Preserve arr(1 To UBound(arr) + 1) arr(UBound(arr)) = c + d End If Range("b1").Resize(UBound(arr), 1) = Application.Transpose(arr) End Sub
再问: 从10000里抽1000个数字,1-10一个,11-20一个....9990-10000一个,,就是想平均点而且这样取肯定没重复的。上面那个是240-256中取两个所以要求不重复
再答: 相当有难度啊,我有空了帮你想想,因为你这个输入的数据不定,随机取的数字也就可能量很大
再问: (⊙o⊙)嗯,谢谢啊!
再答: 好了,你要抽入的范围如256写在 A1,把我的代码复制到VBA编辑器里,插入一个按钮指定代码,然后不停的点按钮就可以看见数字是随机变的,都显示在B列 从以10为单位的范围内返回 Sub rr() Dim i%, k%, j%, a%, arr() For i = 1 To Int(Range("a1") / 10) + 1 a = Int(Rnd() * 10 + 1) + (i - 1) * 10 ReDim Preserve arr(1 To i) arr(i) = a Next If arr(UBound(arr)) > Range("a1") Then arr(UBound(arr)) = Range("a1") Range("b1").Resize(UBound(arr), 1) = Application.Transpose(arr) End Sub
再问: 这个取数可以四舍五入么?就是300就是取的30个,306就是取31个,这个方法300也是取31个,请问要怎么修改呢?谢谢
再答: Sub rr() Dim i%, a%, arr() Range("b:b").ClearContents For i = 1 To Application.Round(Range("a1") / 10, 0) a = Int(Rnd() * 10 + 1) + (i - 1) * 10 ReDim Preserve arr(1 To i) arr(i) = a Next If arr(UBound(arr)) > Range("a1") Then arr(UBound(arr)) = Range("a1") Range("b1").Resize(UBound(arr), 1) = Application.Transpose(arr) End Sub
再问: 恩恩,,很好,问下如果要求进一怎么修改,就是300还是取30,,301就取31个,,大神,,快成功了- -求帮忙,再顺便问一下Range("b:b").ClearContents这一句是什么作用
再答: 只需要把round 改成roundup就行了嘛,那一句是清空B列的,如果没有这一句你第一A1的数字是300,下次变成100了,11行以后的数字还是300的,所以必须要运行程序的时候清空B列 Sub rr() Dim i%, a%, arr() Range("b:b").ClearContents For i = 1 To Application.RoundUp(Range("a1") / 10, 0) a = Int(Rnd() * 10 + 1) + (i - 1) * 10 ReDim Preserve arr(1 To i) arr(i) = a Next If arr(UBound(arr)) > Range("a1") Then arr(UBound(arr)) = Range("a1") Range("b1").Resize(UBound(arr), 1) = Application.Transpose(arr) End Sub
再问: 额,,试验了下,发现个小问题- -比如301的时候301必然出现- -能不能就是不能整除的时候是290-301取两个数,如你输入301-309的时候都是290-这个数之间取两个数- -话说能加下联系方式么?我QQ:523148248,求大神指导
再答: 你这样可能会取重复的,290-300是是一个段,300-301还是 290-301,有重复区域,我现在的程序是,当是301~309之间的时候 比如:306吧 ,上边算式取出的数字可能超过306,这个时候我就让大于306的数字返回306!我感觉比你所说的合理
再问: 额,,我是说本来290-300不是一个段么?如果输入的数不是整数如301,那前面都一样,280-290取一个然后290-301取两个,因为301就一个数这样出现的概率就是100%了,,所以我想把301放到前面一段然后直接从前面一段取两个数字。这样可以做到么?谢谢
再答: 你真是变化多端啊 Sub rr() Dim i%, a%, arr(), b%, c%, d% Range("b:b").ClearContents For i = 1 To Int(Range("a1") / 10) a = Int(Rnd() * 10 + 1) + (i - 1) * 10 ReDim Preserve arr(1 To i) arr(i) = a Next line: b = arr(UBound(arr)) Mod 10 c = (Range("a1") - (UBound(arr) - 1) * 10) * Rnd() + 1 d = (UBound(arr) - 1) * 10 If b = c Then GoTo line Else ReDim Preserve arr(1 To UBound(arr) + 1) arr(UBound(arr)) = c + d End If Range("b1").Resize(UBound(arr), 1) = Application.Transpose(arr) End Sub
EXCEL中随机抽样,要求输入一个数字如256从中随机抽取百分之十的数字,即27个数字,在1-10中抽取1个
excel随机抽样函数,将一个三位数如256拆分为2,5,6分别填入单元格中,要从0-256中随机抽取26个数字.
excel 随机函数问题,如何设置随机函数从1-10中随机抽取3个数字,不重复.请指教,麻烦说得详细一点,
EXCEL中怎样抽样能使抽样结果相对平均并且无重复?如从200个数字中随机抽取20个数字如何使抽样平均无重复
排列组合题求解求用排列组合解题~共8个数字,每次系统随机抽取3个作为幸运数字.若自己所选的3个数字有1个在幸运数字中即为
有000-999这1000个3位数,每次随机抽取1个,再从0-9这10个数字中随机抽取2个
excel 从数字中随机抽取一组数字
从数字1,2,3,4,5,中,随机抽取3个数字(允许重复)组成一个三位数,其各位数字之和等于9的概率为
从数字1,2,3,4中,随机抽取3个数字(允许重复)组成一个三位数,其各位数字之和等于9的概率为( )
将0,1……等10个数字中随机地有放回地连接抽取4个数字,则8至少出现一次的概率是多少?
从数字1,2,3,4,5中,随机抽取3个(可重复)组成一个三位数,其各位数字之和是九的概率
从220个数字中,每次随机抽取1个(可重复),共抽取250次.问:这250个数字中,有200个以上不同数字的概率是多少?