[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[数值计算] 【以解决】批处理怎样总结概括规律txt分别列出?

本帖最后由 ads350668398 于 2014-10-23 18:17 编辑

157
156
159
157
159
156
156
158
155
136
159
151
159
158
158
137
137
157
152
143
158
158
148
158
159
157
151
151
157
158
159
157
155
147
137
159
156
152
152
159
160
157
156
157
161
156
156
163
159
156
163
161
160
159
157
160
137
137
137
137
137
151
160
161
138
162
163
162
160
159
152
161
158
136
156
156
154
154
162
146
146
155
156
142
162
161
162
153
163
153
155
155
144
144
161
160
162
149
154
163
162
162
149
156
156
156
153
161
146
156
142
162
159
161
161
155
160
142
163
152
157
158
154
161
163
160
147
147
151
155
155
161
160
163
138
161
162
160
158
139
160
141
162
158
158
158
163
137
163
144
161
153
163
137
161
144
163
160
147
163
151
155
155
161
161
160
160
152
160
162
162
163
161
160
146
145
161
146
163
153
158
166
156
146
162
162
161
163
148
148
148
148
166
155
137
159
165
166
166
154
154
所见即所得。
这里就是服务器在一段时间分配给我的外网IP段
我想用批处理来找出最大的 最小的 输出
最多 最少输出
还有什么战士没有想到
以15大头有多少和以13大头和16大头和17和18.。。有多少个
偶数几个
骑术几个
被三整除几个
和的
反正就是所有规律

  1. gawk "NR==1{max=min=$1}NR>1{max=max>$1?max:$1;min=min>$1?$1:min;}END{print \"Max: \"max,\"Min: \"min}" a.txt
复制代码
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

难道楼主在研究 WOW 刷机练级, 一帖总共才一百多字, 错别字一共 5 个词 10 个字
高阶督军的大头棒ID:18866
物品等级: 78
拾取后绑定
单手         单手锤
146 - 220 伤害        速度 2.90
(+ 63.1357 伤害 / 每秒)
+7 耐力
+14 爆击
+28 攻击强度

闪!
1

评分人数

    • CrLf: 想想也是醉了技术 + 1

TOP

借用 neorobin 的算法:
  1. @echo off & setlocal enabledelayedexpansion
  2. set /a "M=1<<31^-1"
  3. for /f "tokens=1-3 delims=. " %%a in (a.txt) do (
  4.     set /a "#奇数-=~%%a%%2,#偶数+=%%a%%2,#除三+=%%a%%3,#和+=%%a,x=%%a,t=x-#最大,#最大=x-(t&t>>31),p=#最小,p=p+(p-1>>31&M),t=p-x,#最小=x+(t&t>>31)"
  5. )
  6. set #
  7. pause
复制代码

TOP

呃, 那个 31?????

假设 8 bits == 1 byte 没有变哈(谁知道会不会变呢),  也假设 CPU 也蛮喜欢 1 就是 1 哈(执行算术右移)
其实我(只是我)也没见过 64 位整数的 cmd,  还是想把这个 31 FIND 出来, 肯定会有更短更好更直接的召唤咒语~~~

命令行敲入
  1. for /l %i in (7 8 127) do set /a "_=1<<%i>>%i+1, IMSB=_&%i|~_&IMSB"
  2. set IMSB
复制代码

TOP

回复 5# neorobin


    木看懂,这是什么意思

TOP

回复 6# CrLf

MSB (Most significant bit)  在大端序中,是最左端的位, 对于有符号整数, 它 是符号位;
把 最右端的 LSB (Least Significant Bit) 编号为第 0 位, MSB 的位编号就是 存储尺寸位数 - 1
对 32 位整数, MSB 的编号就是 32 - 1 = 31

如果并不知道是多少位的整数, 但是知道是 大端序 和 算术右移, 那么下面的式子
T =  1 << n >> (n + 1)        也可以写成这样: 1<<n>>n>>1
仅在 n == 存储尺寸位数 - 1 时, T 的结果才会是 -1, 而 n 取其他任何值时, T 都将得到 0.
可以将 n 的值在一个范围内测试, 当 T 的值得到 -1 时, 就把对应的 n 值保留下来, 这个保留的值就是 MSB 的编号.

TOP

回复 7# neorobin


    好吧,原来 MSB 是这个意思,我原以为 IMSB 是 I'm SB,呃

TOP

回复 8# CrLf

我猜 XX拼音 可能不懂那个吧
祖国语言就是强
1

评分人数

    • CrLf: 世界语言哪家强?技术 + 1

TOP

本帖最后由 ads350668398 于 2014-10-23 07:21 编辑
借用 neorobin 的算法:
CrLf 发表于 2014-10-22 15:42


运行结果

    #偶数=185
#和=56821
#奇数=178
#最大=167
#最小=136
#除三=379
请按任意键继续. . .

怎么11打头有几个12打头有几个13打头有几个。。。。(错别字是输入法不好用 不够智能 也侧面反映了 网友是智能的#17)

TOP

回复 3# neorobin

歌玩的不是 WOW(至今不知道那是个什么游戏 是不是就是魔兽争霸啊)
歌玩的是BAT的总结和概括

TOP

回复 7# neorobin


    怎么高深的的东东 俺 俺不会这是头一次听说
方便的话给 普及下 顺便 解决下 俺这难题 谢谢

TOP

本帖最后由 neorobin 于 2014-10-23 14:15 编辑

回复 12# ads350668398

呃, 我可不会什么高深的东东, 只是存储方面的东东, 以及位运算, 学习这些, 你最好找专门的书籍, 诸如贴吧, 网帖教程类的通常都是粗糙且极片面甚至充斥作者的错误理解于其中的.

下面的代码假设所有的变量名你都是知道是什么意思的~~,  并且是以你给出的一个数字一行的文本文件来处理的
  1. @echo off & setlocal enabledelayedexpansion
  2. set /a "_min = 255, _min_cnt = 1 << 31 ^ -1"
  3. for /f %%a in (a.txt) do (
  4.     set /a "x = %%a"
  5.     set /a "_cnt_!x:~0,2! += 1"
  6.     set /a "_sum += x"
  7.     set /a "_cnt_odd += x & 1"
  8.     set /a "_cnt_even += ~x & 1"
  9.     set /a "_cnt_triple += ^!(x %% 3)"
  10.     set /a "t = _max - x >> 31, _max = t & x | ~t & _max"
  11.     set /a "t = x - _min >> 31, _min = t & x | ~t & _min"
  12.     if not defined @%%a (
  13.         for /f "tokens=2 delims=:" %%c in ('find /c "%%a" a.txt') do (
  14.             set /a "x = %%c, # = %%a"
  15.             set /a "t = _max_cnt - x >> 31, _max_cnt = t & x | ~t & _max_cnt, _max_cnt# = t & # | ~t & _max_cnt#"
  16.             set /a "t = x - _min_cnt >> 31, _min_cnt = t & x | ~t & _min_cnt, _min_cnt# = t & # | ~t & _min_cnt#"
  17.         )
  18.         set "@%%a=."
  19.     )
  20. )
  21. set _
  22. pause
复制代码
1

评分人数

    • CrLf: x &amp; 1技术 + 1

TOP

回复  ads350668398

呃, 我可不会什么高深的东东, 只是存储方面的东东, 以及位运算, 学习这些, 你最好找 ...
neorobin 发表于 2014-10-23 13:57


高手终于吃线了#24

TOP

本帖最后由 ads350668398 于 2014-10-23 18:21 编辑

@echo off & setlocal enabledelayedexpansion

set /a "_min = 255, _min_cnt = 1 << 31 ^ -1" ::说明255到1之间【1 << 31 ^ -1】括号里面的不知道求指教?
for /f %%a in (a.txt) do (                                                      

    set /a "x = %%a"                                     这个指到是吧数据GEI X 的意思
    set /a "_cnt_!x:~0,2! += 1"                      这里cnt是什么意思?好像是现实前2为数?
    set /a "_sum += x"                                  sum+=x?????
    set /a "_cnt_odd += x & 1"                   ?????????
    set /a "_cnt_even += ~x & 1"          ?????????
    set /a "_cnt_triple += ^!(x %% 3)"   我才是除于3吗
    set /a "t = _max - x >> 31, _max = t & x | ~t & _max"      什么31是什么意思给我说庆祝
    set /a "t = x - _min >> 31, _min = t & x | ~t & _min"        ????????

    if not defined @%%a (   ????
        for /f "tokens=2 delims=:" %%c in ('find /c "%%a" a.txt') do (   ????
            set /a "x = %%c, # = %%a"    ????
            set /a "t = _max_cnt - x >> 31, _max_cnt = t & x | ~t & _max_cnt, _max_cnt# = t & # | ~t & _max_cnt#"???、
            set /a "t = x - _min_cnt >> 31, _min_cnt = t & x | ~t & _min_cnt, _min_cnt# = t & # | ~t & _min_cnt#"  ????
        )
        set "@%%a=."   ????
    )
)

set _        ????
pause


烦请 高手 写完天数 也学学 我的注释 说明省的给一些 新人造成疑惑 在学习的时候打了退堂鼓 好不好吗 【表情:/害羞】

TOP

返回列表