标题: [数值计算] 【已解决】批处理怎样随机输出双精数? [打印本页]
作者: ads350668398 时间: 2014-12-5 12:49 标题: 【已解决】批处理怎样随机输出双精数?
本帖最后由 ads350668398 于 2014-12-6 11:13 编辑
- @echo off&setlocal enabledelayedexpansion
-
-
- set r=01
-
- ::for /l %%a in (101,1,105) do (
- for /l %%a in (101,01,105) do (
-
- set /a "r=(r-01+03*04/02)%%34"
-
- echo !r!>>随机数.txt
-
- )
复制代码
输出结果为:
6
11
16
21
26
我想要的是:
06
11
16
21
26
************
以上我是想把输出的结果 变为06 而不是6怎么办到啊???
作者: DAIC 时间: 2014-12-5 13:41
- @echo off
- setlocal enabledelayedexpansion
- set r=101
- (for /l %%a in (101,1,105) do (
- set /a "r=(r-1+3*4/2)%%134"
- echo !r:~1!
- ))>随机数.txt
复制代码
作者: ads350668398 时间: 2014-12-5 15:11
for /l %%a in (1,1,5) do (
set /a "r=(r-01+03*04/02)%%34"
echo !r!>>随机数.txt
)
这样不改变01为101有方法吗?
作者: ads350668398 时间: 2014-12-5 18:17
set r=101
当101的值大道一定的时候 输出错误
比如111结果:
16
21
26
31
ECHO 处于关闭状态。
作者: 523066680 时间: 2014-12-5 22:20
少年,头像不错
作者: CrLf 时间: 2014-12-6 06:03
2 楼方案应该是最好的了,不过楼主如果不想设置百位,也可以这样:- @echo off
- setlocal enabledelayedexpansion
- set r=101
- (for /l %%a in (101,1,105) do (
- set /a "r=(r-1+3*4/2)%%34,r1=r%%10,r2=r/10"
- echo !r1!!r2!
- ))>随机数.txt
复制代码
作者: ads350668398 时间: 2014-12-6 08:09
回复 5# 523066680
呵呵#24
作者: ads350668398 时间: 2014-12-6 08:22
CrLf
6楼
的确属没有错误
101输出结果:
40
90
41
91
42
这一样就 不在01-33以内了,烦请大侠坐下 小修改#17
作者: amwfjhh 时间: 2014-12-6 09:11
如果不嫌麻烦的话,可以增添个临时变量用于存储数字前置0的字符串,然后对字符串进行截取输出。- @echo off&setlocal enabledelayedexpansion
-
-
- set r=1
-
- for /l %%a in (1,1,5) do (
-
- set /a "r=(r-1+3*4/2)%%34"
- set strR=0000!r!
-
- echo !strR:~-2!>>随机数.txt
-
- )
-
- pause
复制代码
作者: ads350668398 时间: 2014-12-6 10:31
本帖最后由 ads350668398 于 2014-12-6 10:33 编辑
r=33 【01-33的任意数值】
时候 输出10行 为什么有00出现!!! :
04
09
14
19
24
29
00
05
10
15
**********
输出结果为01-33
作者: amwfjhh 时间: 2014-12-6 10:36
(29-1+3*4/2)%34=0
作者: DAIC 时间: 2014-12-6 10:39
回复 10# ads350668398
谁告诉你 set /a "r=(r-1+3*4/2)%%34" 这个算法可以生成1~33的随机数?或者是你自己瞎想出来的?有什么数学依据吗?
作者: ads350668398 时间: 2014-12-6 11:13
回复 12# DAIC
是的 我瞎想的#17 我的算法有问题 00是我造成的 这个啊
当r=【01-33】
当 r=r-1
输出结果必然有00的出现然后循环 虽然我的问题解决了 但是新的问题出现了 。。只是我还不知道什么是新的问题#17
作者: amberhill 时间: 2014-12-6 12:07
本帖最后由 amberhill 于 2014-12-6 12:09 编辑
- IF !r! LSS 10 (set r=0!r!)
复制代码
小于10的数字前加0
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |