返回列表 发帖
本帖最后由 老刘1号 于 2017-7-20 20:59 编辑

回复 101# 523066680


    emmmm,我好像发现什么
如果是能整除10的数的话,我的脚本不如你的快
如果是不能整除10的数,如果接近10,2分确实不如你的快

TOP

回复 105# bbaa


    你把数据采样存数据库里。这样能浏览各个时间段的数据变化。这样对用户更好一些。
去学去写去用才有进步。安装python3代码存为xx.py 双击运行或右键用IDLE打开按F5运行

TOP

本帖最后由 老刘1号 于 2017-7-20 21:46 编辑

真·一个都抢不到……
5230兄的速度要逆天啊……

bbaa兄的随机法好评

TOP

回复 107# codegay


    在建表我就要挂了...
    不想在弄个表了...

TOP

回复 109# bbaa

    采样的数据量不大,又是线性的,放内存、文件也行啊。

新的赛跑进度显示:
codegay    28121 + 5     0.3/min
vic2       13098 + 192   12.9/min
老刘        4927 + 0     0.0/min
bbaa         227 + 0     0.0/min
vic3         127 + 0     0.0/minCOPY
代码
=info
    Auth: 523066680
    Date: 2017-07
=cut
use JSON;
use Encode;
use Try::Tiny;
use Time::HiRes qw/time sleep/;
use IO::Handle;
STDOUT->autoflush(1);
use LWP::Simple;
use LWP::UserAgent;
our $user    = "vic3";
our $website = 'http://bbaass.tk/math/';
our ($user, $website, $headers);
our $ua = LWP::UserAgent->new( agent => 'Mozilla/5.0', timeout => 5 );
my %ever;
my %current;
getData( \%ever );
my $count = 0;
my $delta;
my $speed;
my $time_a = time();
while (1)
{
    getData(\%current);
    $count = 0;
    for my $k (reverse sort { $ever{$a} <=> $ever{$b} } keys %ever)
    {
        $delta = $current{$k} - $ever{$k};
        $speed = $delta / (time() - $time_a) * 60.0;
        printf "%-10s %5d + %-5d %.1f/min\n",
            encode('gbk',  $k),
            $ever{$k},
            $delta,
            $speed
            ;
        last if ($count++ > 3);
    }
    print "\n";
    sleep 10.0;
}
sub getData
{
    my $href = shift;
    my $res;
    my $data;
    while (1)
    {
        $res = $ua->post( $website, [ username => $user, send => 'reg' ] );
        $res = $ua->post( $website, [ username => $user, send => 'user' ] );
        try { $data = decode_json( $res->content ); last; }
        catch { sleep 2.0; printf "repeat\n" }
    }
    for my $e ( @{$data->{'user'}} )
    {
        ( $times, $name, $state ) = @$e;
        $href->{$name} = $times;
    }
}COPY
[url=][/url]

TOP

回复 110# 523066680


    后面的速度监测加出来了...
    要不要加个历史记录.................

TOP

本帖最后由 523066680 于 2017-7-21 12:09 编辑

回复 111# bbaa


    最好还是有图表,24小时 或 60分钟 的折线图,不同 ID 不同颜色

现在bbaa速度飙升,10秒3个
[url=][/url]

TOP

回复 112# 523066680


    60分钟的折线图对我来说是个挑战啊.....
    收集数据可能做不到整分
    还是做24小时的
    用下第三方库........

TOP

回复 110# 523066680


    username 除了reg 和Answer外是可选项
主要是在线监测..

TOP

本帖最后由 523066680 于 2017-7-21 12:25 编辑

回复 114# bbaa


    咦 重置了?
repeat
codegay    28209 + -28209 -871.6/min
vic2       14805 + -14802 -457.3/min
老刘        4983 + -4983 -154.0/min
bbaa         458 + -458  -14.2/min
vic3         127 + -127  -3.9/min

一大波负数,哈哈。

PHP JS HTML 不太懂,本地动态折线图我可以用 Perl+OpenGL 做。
[url=][/url]

TOP

回复 115# 523066680


    为了竞争的公平性 集体清0... 才不会告诉你Sql语句打错了.........
靠- -

TOP

回复 116# bbaa


    你的是用多线程以外的方案吗?好快。
[url=][/url]

TOP

本帖最后由 bbaa 于 2017-7-21 13:31 编辑

回复 117# 523066680


    是啊
Const [宿主] = "CSCRIPT.EXE" 'WSCRIPT
If Not UCase(Right(WScript.FullName,11)) = UCase([宿主]) Then
Dim Args,Arg
For Each Arg in Wscript.Arguments
Args=Args&Chr(&H20)&Chr(&H22)&Arg&Chr(&H22)
Next
CreateObject("Wscript.Shell").Run _
[宿主]&Chr(&H20)&Chr(&H22)&WScript.ScriptFullName&Chr(&H22)&Args
WScript.Quit
End If
on error resume next
If MsgBox("是否查看原贴?",1) = 1 Then CreateObject("Wscript.Shell").run "http://www.bathome.net/thread-44616-1-1.html"
With CreateObject("MSXML2.XMLHTTP")
.Open "POST", "http://bbaass.tk/math/", False
.setRequestHeader "CONTENT-TYPE","application/x-www-form-urlencoded"
.Send "send=reg&username=bbaa"
End With
dim tokens,[大鱼小鱼或等鱼?],[Arr返回的数据]
High = 10001
Low = -1
Do
Do
'Randomize()
Mid_=Fix((High - Low + 1) * Rnd + Low)
[Arr返回的数据] = Math(Mid_)
[大鱼小鱼或等鱼?] = [Arr返回的数据](0)
if tokens<>[Arr返回的数据](1) then
If [大鱼小鱼或等鱼?] = "=" then
wscript.echo "Win!The number is "&Mid_
Else
Wscript.echo "The token has changed"
'Wscript.echo [Arr返回的数据](1)
End if
tokens=[Arr返回的数据](1)
High = 10001
Low = -1
Exit do
Else
Select Case [大鱼小鱼或等鱼?]
Case ">"
WScript.Echo ">,so try "&Low&","&Mid_
High = Mid_
Case "<"
WScript.Echo "<,so try "&Mid_&","&High
Low = Mid_
End Select
End if
Loop
Loop
Function Math(num)
dim [返回数据]
With CreateObject("MSXML2.XMLHTTP")
.Open "POST","http://bbaass.tk/math/", False
.setRequestHeader "CONTENT-TYPE","application/x-www-form-urlencoded"
.send "send=Answer&math=" & num & "&username=bbaa"
[返回数据] = .responseText
Math = Split(Split(Split([返回数据],",")(2),"""")(3) & " "&Split([返回数据],"""")(13)," ")
End With
End FunctionCOPY
基于老刘修改的随机摸鱼
一个用老刘的二分同时开

TOP


TOP

本帖最后由 bbaa 于 2017-7-21 18:09 编辑


根据@老刘的代码基础上修改
添加了
1.Token改变后的赢家显示
修改了@老刘用Split取得数组改成Array
2.经测试双开速度能勉强达到与523066680的分段多线程方法不相上下
二分法:
Const [宿主] = "CSCRIPT.EXE" 'WSCRIPT
If Not UCase(Right(WScript.FullName,11)) = UCase([宿主]) Then
Dim Args,Arg
For Each Arg in Wscript.Arguments
Args=Args&Chr(&H20)&Chr(&H22)&Arg&Chr(&H22)
Next
CreateObject("Wscript.Shell").Run _
[宿主]&Chr(&H20)&Chr(&H22)&WScript.ScriptFullName&Chr(&H22)&Args
WScript.Quit
End If
on error resume next
If MsgBox("是否查看原贴?",1) = 1 Then CreateObject("Wscript.Shell").run "http://www.bathome.net/thread-44616-1-1.html"
With CreateObject("MSXML2.XMLHTTP")
.Open "POST", "http://bbaass.tk/math/", False
.setRequestHeader "CONTENT-TYPE","application/x-www-form-urlencoded"
.Send "send=reg&username=老刘"
End With
dim tokens,[大鱼小鱼或等鱼?],[Arr返回的数据]
High = 10001
Low = -1
Do
Do
Mid_=(High+Low)\2
[Arr返回的数据] = Math(Mid_)
[大鱼小鱼或等鱼?] = [Arr返回的数据](0)
if tokens<>[Arr返回的数据](1) then
If [大鱼小鱼或等鱼?] = "=" then
wscript.echo "Win!The number is "&Mid_
Else
Wscript.echo "The token has changed By:"&[Arr返回的数据](2)
End if
tokens=[Arr返回的数据](1)
High = 10001
Low = -1
Exit do
Else
Select Case [大鱼小鱼或等鱼?]
Case ">"
WScript.Echo ">,so try "&Low&","&Mid_
High = Mid_
Case "<"
WScript.Echo "<,so try "&Mid_&","&High
Low = Mid_
End Select
End if
Loop
Loop
Function Math(num)
dim [返回数据]
With CreateObject("MSXML2.XMLHTTP")
.Open "POST","http://bbaass.tk/math/", False
.setRequestHeader "CONTENT-TYPE","application/x-www-form-urlencoded"
.send "send=Answer&math=" & num & "&username=老刘"
[返回数据] = .responseText
Math = Array(Split(Split([返回数据],",")(2),"""")(3),Split([返回数据],"""")(13),Split(Split([返回数据],",")(1),"""")(3))
End With
End FunctionCOPY
随机摸鱼法:
Const [宿主] = "CSCRIPT.EXE" 'WSCRIPT
If Not UCase(Right(WScript.FullName,11)) = UCase([宿主]) Then
Dim Args,Arg
For Each Arg in Wscript.Arguments
Args=Args&Chr(&H20)&Chr(&H22)&Arg&Chr(&H22)
Next
CreateObject("Wscript.Shell").Run _
[宿主]&Chr(&H20)&Chr(&H22)&WScript.ScriptFullName&Chr(&H22)&Args
WScript.Quit
End If
on error resume next
If MsgBox("是否查看原贴?",1) = 1 Then CreateObject("Wscript.Shell").run "http://www.bathome.net/thread-44616-1-1.html"
With CreateObject("MSXML2.XMLHTTP")
.Open "POST", "http://bbaass.tk/math/", False
.setRequestHeader "CONTENT-TYPE","application/x-www-form-urlencoded"
.Send "send=reg&username=老刘"
End With
dim tokens,[大鱼小鱼或等鱼?],[Arr返回的数据]
High = 10001
Low = -1
Do
Do
Randomize()
Mid_=Fix((High - Low + 1) * Rnd + Low)
[Arr返回的数据] = Math(Mid_)
[大鱼小鱼或等鱼?] = [Arr返回的数据](0)
if tokens<>[Arr返回的数据](1) then
If [大鱼小鱼或等鱼?] = "=" then
wscript.echo "Win!The number is "&Mid_
Else
Wscript.echo "The token has changed By:"&[Arr返回的数据](2)
End if
tokens=[Arr返回的数据](1)
High = 10001
Low = -1
Exit do
Else
Select Case [大鱼小鱼或等鱼?]
Case ">"
WScript.Echo ">,so try "&Low&","&Mid_
High = Mid_
Case "<"
WScript.Echo "<,so try "&Mid_&","&High
Low = Mid_
End Select
End if
Loop
Loop
Function Math(num)
dim [返回数据]
With CreateObject("MSXML2.XMLHTTP")
.Open "POST","http://bbaass.tk/math/", False
.setRequestHeader "CONTENT-TYPE","application/x-www-form-urlencoded"
.send "send=Answer&math=" & num & "&username=老刘"
[返回数据] = .responseText
Math = Array(Split(Split([返回数据],",")(2),"""")(3),Split([返回数据],"""")(13),Split(Split([返回数据],",")(1),"""")(3))
End With
End FunctionCOPY
1

评分人数

TOP

返回列表