标题:问个数字问题
只看楼主
yz1025
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:6
帖 子:473
专家分:915
注 册:2012-10-26
结帖率:97.67%
已结贴  问题点数:20 回复次数:11 
问个数字问题
S0                                                                                S1......   
    G0        G1        G2        G3        G4        G5        G6        G7   
    0        16        32        48        64        80        96        112   
    1        17        33        49        65        81        97        113   
    2        18        34        50        66        82        98        114   
    3        19        35        51        67        83        99        115   
    4        20        36        52        68        84        100        116   
    5        21        37        53        69        85        101        117   
    6        22        38        54        70        86        102        118   
    7        23        39        55        71        87        103        119   

    8        24        40        56        72        88        104       120    
    9        25        41        57        73        89        105       121   
    10        26        42        58        74        90        106       122   
    11        27        43        59        75        91        107        123   
    12        28        44        60        76        92        108        124   
    13        29        45        61        77        93        109        125   
    14        30        46        62        78        94        110        126   
    15        31        47        63        79        95        111        127   

0-127为S0,128-255为S1....一直到S20...
0-127每16为1组,从G0-G7,之后G8-G15.....
随机取个数字,该数字必须不属于S(N)的最后一组G7*N,也不属于S(N)前G0*N-G6*N组内前8个数字,这个计算公式要怎么写?
还要取得该数字是踩到G7的16位,或前几组的前8位。

[此贴子已经被作者于2022-12-9 17:48编辑过]

搜索更多相关主题的帖子: 数字 随机 公式 属于 计算 
2022-12-09 17:33
yz1025
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:6
帖 子:473
专家分:915
注 册:2012-10-26
得分:0 
有没有比较恰当的写法?我现在事先把S(N)的最后一组取出,然后再做else ....,之后就还在想。

不要投我
2022-12-09 17:42
yuma
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:银河系
等 级:贵宾
威 望:33
帖 子:1883
专家分:2904
注 册:2009-12-22
得分:0 
每行的第一个数字 +16  +16*2 +16*3.... 而已。

心生万象,万象皆程序!
本人计算机知识网:http://bbs.为防伸手党,本站已停止会员注册。
2022-12-09 17:44
yz1025
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:6
帖 子:473
专家分:915
注 册:2012-10-26
得分:0 
以下是引用yuma在2022-12-9 17:44:08的发言:

每行的第一个数字 +16  +16*2 +16*3.... 而已。



公司网路无法贴图,简单说应该就是检查一大堆数字,再把踩到条件的数字记录下来
程序代码:
            ElseIf Temp1 = "FRC" And Check2(3).Value = 1 Then ' 以片内指定群组为单位 TS.TS_CH(TSNum).TS_PE (同一片PE Slot)_(同一组)_(Channel)
                If Temp = "KD" Then
                    If .iTitle(index2).FRC(index1) = "" Then
                        .iTitle(index2).FRC(index1) = CStr(TempCode1) & "_" & CStr(TempCode2 \ 8) & "_" & CStr(TempCode2)
                    Else
                        .iTitle(index2).FRC(index1) = .iTitle(index2).FRC(index1) & "," & CStr(TempCode1) & "_" & CStr(TempCode2 \ 8) & "_" & CStr(TempCode2)
                    End If
'问题是以下这部分
                ElseIf Temp = "ED" Then
                    If .iTitle(index2).FRC(index1) = "" Then
                        .iTitle(index2).FRC(index1) = CStr(TempCode1) & "_" & CStr(TempCode2 \ 16) & "_" & CStr(TempCode2)
                    Else
                        .iTitle(index2).FRC(index1) = .iTitle(index2).FRC(index1) & "," & CStr(TempCode1) & "_" & CStr(TempCode2 \ 16) & "_" & CStr(TempCode2)
                    End If
                End If

            ElseIf ...

不要投我
2022-12-09 18:01
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4912
专家分:29900
注 册:2008-10-15
得分:15 
不贴代码了,自己看。



条件取数.rar (1.92 KB)

授人于鱼,不如授人于渔
早已停用QQ了
2022-12-09 22:40
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4912
专家分:29900
注 册:2008-10-15
得分:0 
我的算法是先把数据扔到结构里去,并且对结构分好组,定好位置来,
然后再生成位置,每一步都根据条件去判断生成的位置是否符合条件,
当所生成的数据的位置符合条件时,自然而然的就取到的数据。

数组结构,不使用 结构体,而使用 三维数组也是可以的,看每个人的习惯而以。

授人于鱼,不如授人于渔
早已停用QQ了
2022-12-09 22:44
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4912
专家分:29900
注 册:2008-10-15
得分:0 
范围限制加二条限制,前三条是代码里有的,再加二条,防止报错。

If i1 < 0 Or i1 > 7 Then Exit Sub   '超范围不执行,下同
If m1 < 0 Or m1 > 16 Then Exit Sub
If m2 < 0 Or m2 > 16 Then Exit Sub
If m2 - m1 > 8 Then Exit Sub         '限定排除范围最多一半
If m1 > m2 Then Exit Sub             '起始值大于终止值


授人于鱼,不如授人于渔
早已停用QQ了
2022-12-09 22:49
jklqwe111
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:35
帖 子:335
专家分:1125
注 册:2014-4-13
得分:5 
a=(N\8) mod 16
(a and 1)<>0   and a<>15

2022-12-09 23:45
clyfd
Rank: 2
等 级:论坛游民
帖 子:16
专家分:38
注 册:2020-7-11
得分:0 
正好需要,学习了
2022-12-11 14:03
yz1025
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:6
帖 子:473
专家分:915
注 册:2012-10-26
得分:0 
公司網路不能看,只能回家再看看

不要投我
2022-12-12 15:15



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-510909-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.573978 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved