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


    晕,早说啊
算了,就酱紫吧~
懒得动手了~

TOP

回复 19# 老刘1号


    添加tokens具体看 1#

TOP

本帖最后由 老刘1号 于 2017-7-2 17:55 编辑

回复 20# happy886rr


    嗯,猜20多次是因为服务端数字变更了(正常最多7次)
下标越界是服务器没返回JSON,导致无法分割得到符号
尴尬的是,0和100不在范围里面(失误,已修正)……
总之就是递归然后除2取整
当时一脑抽就用的递归而不是循环╮(╯_╰)╭
算是自己研发的变种了吧
感谢大佬鼓励<v<

TOP

回复 19# 老刘1号
不过偶尔还会出现下标越界。而且有几次计算了20多次才猜中正确的数,你的算法还不是标准二分,比较费内存。如果是猜测1到10000之内的数,你的程序就非常缓慢。 把那个递归取消了,有递归的都不是标准二分。

TOP

本帖最后由 老刘1号 于 2017-7-2 18:02 编辑

回复 1# bbaa
回复 18# codegay
回复 15# happy886rr
取平均数递归法,最多计算6次就可得出结果
欢迎测试~(存Bat)
  1. '&cls&@echo off&cscript -nologo -e:vbscript "%~0"&pause&exit
  2. With CreateObject("MSXML2.XMLHTTP")
  3. .Open "POST", "http://bbaass.tk/math/", False
  4. .setRequestHeader "CONTENT-TYPE","application/x-www-form-urlencoded"
  5. .Send "send=reg&username=老刘"
  6. End With
  7. Do
  8. Bisection -1,101,0
  9. Loop
  10. Sub Bisection(low,high,s)
  11. Mid_=(High+Low)\2
  12. if s<=7 then
  13. Select Case Cstr(Math(Mid_))
  14. Case "="
  15. wscript.echo "Win!The number is "&Mid_
  16. Case ">"
  17. WScript.Echo ">,so try "&Low&","&Mid_
  18. Bisection Low,Mid_,s+1
  19. Case "<"
  20. WScript.Echo "<,so try "&Mid_&","&High
  21. Bisection Mid_,High,s+1
  22. End Select
  23. end if
  24. End Sub
  25. Function Math(num)
  26. With CreateObject("MSXML2.XMLHTTP")
  27. .Open "POST","http://bbaass.tk/math/", False
  28. .setRequestHeader "CONTENT-TYPE","application/x-www-form-urlencoded"
  29. .send "send=Answer&math=" & num & "&username=老刘"
  30. Math = Split(Split(.responseText,",")(2),"""")(3)
  31. End With
  32. End Function
复制代码
1

评分人数

TOP

回复 17# bbaa


    举手,我干过。
去学去写去用才有进步。安装python3代码存为xx.py 双击运行或右键用IDLE打开按F5运行

TOP

本帖最后由 bbaa 于 2017-7-2 14:07 编辑

回复 14# 老刘1号


    之前崩的原因是有个空用户名的家伙........
  1. unset($json["Username"][""]);
复制代码

TOP

回复 15# happy886rr


    排查完毕

TOP

本帖最后由 happy886rr 于 2017-7-2 15:08 编辑

回复 11# codegay
在你的requests.Session()基础上改的。(外链效果图)
  1. import requests
  2. # 用户信息
  3. userNAMZE='Psaa'
  4. # 主机地址
  5. hostURL='http://bbaass.tk/math/'
  6. # 提交数据
  7. postDATA={'send':'Answer', 'username':userNAMZE, 'math':50}
  8. # 注册用户名
  9. requests.Session().post(hostURL, {'send':'reg', 'username':userNAMZE})
  10. # 辗转移位
  11. def GuessFun(mathMIN, mathMAX):
  12. # 搜索次数
  13. searchTIMES=0
  14. while mathMAX-mathMIN >1:
  15. postDATA['math'] = (mathMAX+mathMIN)>>1
  16. searchTIMES +=1
  17. print("The %d times"%(searchTIMES))
  18. r = requests.Session().post(hostURL, postDATA).json()
  19. ret = r['re']
  20. if ret == '=':
  21. break
  22. elif ret == '<':
  23. mathMIN=postDATA['math']
  24. else:
  25. mathMAX=postDATA['math']
  26. return searchTIMES
  27. # 打印结果
  28. if __name__ == "__main__":
  29. searchTIMES = GuessFun(-1, 101)
  30. print("Search times: %d\nGuess the number: %d"%(searchTIMES, postDATA['math']))
复制代码
3

评分人数

TOP

回复 13# codegay


    确实崩了,楼主说的……
vbs表示下标越界

TOP

程序是不是崩了。一直返回500
去学去写去用才有进步。安装python3代码存为xx.py 双击运行或右键用IDLE打开按F5运行

TOP

本帖最后由 老刘1号 于 2017-7-2 17:57 编辑

回复 10# happy886rr


    改进了下,欢迎测试

TOP

回复 10# happy886rr


   有空来写一个看看。我不会写呢。
去学去写去用才有进步。安装python3代码存为xx.py 双击运行或右键用IDLE打开按F5运行

TOP

回复 9# 老刘1号
算法有问题,这不是正宗的二分,是递归。

TOP

本帖最后由 老刘1号 于 2017-7-2 17:56 编辑

取平均数递归法
在19楼是最新的防溢出与更改的版本:http://www.bathome.net/redirect.php?goto=findpost&ptid=44616&pid=200845

TOP

返回列表