以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  如何计算任意位数的随机数  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=60415)

--  作者:rjh4078
--  发布时间:2014/11/24 16:16:00
--  如何计算任意位数的随机数

标题不一定正确,具体需求是这样的

比如一个数9

现在要用一种方法来表示:A36  A表示表达式整数起始位置,3+6表示9

比如12

表示为:A0111或A0102 或A1011或A1020

比如369

表示为A123327或者A124218

比如69.8

表示为A4227B26 B表示小数开始位置

总结来说就是用2个随机数的和来表达某个数的对应位置的数


--  作者:yan2006l
--  发布时间:2014/11/24 16:21:00
--  

用rank生成0到(x-1)之间随机的一个数,另外一个数就x-去这个随机数

 

比如你是8 ,你用随机生成一个小于8的数,也许是3.那么另外一个就是5(8-3)


--  作者:rjh4078
--  发布时间:2014/11/24 16:23:00
--  

谢谢  有思路了 不过想问下 如何判断这个数字有多少位呢,然后分别取到对应位置的整数?


--  作者:Bin
--  发布时间:2014/11/24 16:24:00
--  
tostring.length
--  作者:有点甜
--  发布时间:2014/11/24 16:26:00
--  

 自己扩展一下

 

Dim num As Double = 369
For Each n As String In cstr(num)
    Dim n1 As Integer = Rand.Next(n)
    Dim n2 As Integer = n - n1
    output.show(n1 & n2)
Next


--  作者:yan2006l
--  发布时间:2014/11/24 16:26:00
--  

Length

返回字符串的长度,不管是英文字符还是中文字符,在计算长度的时候都是1。

例如在命令窗口输入:

Dim s As String = "ABC中国DEF"
Output.show(s.Length)

执行之后,显示的结果为8。

再例如:

Dim s As String = "中国人"
For
i As Integer = 0 To s.Length - 1
    Output.Show(s.Chars(i))

Next

 

在命令执行上述代码后,会显示:




--  作者:rjh4078
--  发布时间:2014/11/24 17:34:00
--  

搞定了 谢谢各位