小编mac*_*aca的帖子

速率限制基于公共IP地址的API

我正在研究Github API并在其速率限制部分中遇到以下内容

对于未经身份验证的请求,速率限制允许每小时最多60个请求.未经身份验证的请求与原始IP地址相关联,而不是与发出请求的用户相关联.

我很想知道哪些HTTP标头用于跟踪限制以及超出限制时会发生什么,所以我写了一些Bash来快速超过60个请求/小时限制:

for i in `seq 1 200`;
do   
  curl https://api.github.com/users/diegomacario/repos
done
Run Code Online (Sandbox Code Playgroud)

很快我收到了以下回复:

{
  "message": "API rate limit exceeded for 104.222.122.245. (But here's the good news: Authenticated requests get a higher rate limit. Check out the documentation for more details.)",
  "documentation_url": "https://developer.github.com/v3/#rate-limiting"
}
Run Code Online (Sandbox Code Playgroud)

似乎Github正在计算响应中提到的来自公共IP的请求数,以确定何时限制客户端.根据我对局域网的理解,有许多设备共享这个公共IP.由于我超出了限制,因此局域网中的每台设备都受此限制吗?.另外,速率限制的非认证端点还有哪些其他方式?

networking http rate-limiting github-api

7
推荐指数
0
解决办法
451
查看次数

从SML中的列表中删除重复项

我刚开始学习SML中的函数式编程,我想知道如何将以下两个函数组合成一个函数.函数isolate使用辅助函数'removed'删除任何类型列表('a)的重复项.

fun isolate [] = []
  | isolate (l as x::xs) = x::isolate(remove(x,xs))

fun remove (x,[]) = []
  | remove (x,l as y::ys) = if x = y then remove(x,ys) else y::remove(x,ys)
Run Code Online (Sandbox Code Playgroud)

因此,为了更好地理解SML中的构造,如何在isolate中包含函数remove?这看起来似乎微不足道,但我已经考虑过了,无法弄明白.谢谢您的帮助!

recursion functional-programming sml smlnj

6
推荐指数
1
解决办法
6407
查看次数

查找最接近数组平均值的元素

做以下事情的"红宝石"方式是什么?我仍然在考虑更多命令式的风格编程,而不是真正适应红宝石的思考.我想要做的是找到与数组平均值最接近的元素,例如,考虑以下数组

[1,2,3] 
Run Code Online (Sandbox Code Playgroud)

平均值是2.0.我想写的方法返回最接近平均值的元素,在这种情况下是1和3.

另一个例子将更好地说明这一点

[10,20,50,33,22] avg is 27.0 method would return 22 and 33.
Run Code Online (Sandbox Code Playgroud)

ruby arrays algorithm average

4
推荐指数
1
解决办法
879
查看次数

SML中的模式匹配 - 将列表表示为(x :: y)

我刚开始学习函数式编程,我发现自己对模式匹配的概念非常困惑(我使用的是SML).以下面的表达式为例,在有序列表中插入一个元素:

fun insert (n,nil) = [n]
  | insert (n, L as x::l) =
    if(n < x) then n::L
    else x::(insert(n,l))
Run Code Online (Sandbox Code Playgroud)

如何将列表L表示为x :: l?我知道x指的是列表的第一个元素,l指的是其余部分,但我不知道该怎么称呼它或如何使用它.我已经阅读了很多,但我找到的所有文档都没有提到这一点.这是另一个不使用'as'关键字的示例.

(*returns a list with the sum of each element added of two lists added together*)

fun addLists (nil,L) = L
| addLists (L,nil) = L
| addLists (x::xs,y::ys) =
  (x + y)::(addLists(xs,ys))
Run Code Online (Sandbox Code Playgroud)

谢谢您的帮助!

recursion functional-programming sml smlnj pattern-matching

3
推荐指数
1
解决办法
3636
查看次数

将十六进制转换为浮点数,反之亦然

我正在尝试编写一个算法来将十六进制数转换为浮点数,反之亦然.这是一个赋值的一部分,该程序应该接收一个以'0x'或浮点数开头的8位十六进制数,并使用计算机的'内置IEEE 754功能'将数字转换为十六进制或浮点数.代码应该在C中.

我的方法如下.将用户的输入存储为字符串.将输入char数组传递给一个方法,该方法通过检查数组的前两个位置来检查它是否是十六进制数,该位置应为0和X(假设所有十六进制数都以这种方式传递).如果是这种情况,那么我检查十六进制是否是适当的形式,即在0-15范围之外没有太多的数字或数字(也考虑到ABCDEF惯例).

所以,我的问题是,我不知道如何将此数组转换回我可用于转换为浮点数的数字.我想过使用sscanf把它变回浮点但是我不太了解C并且没有找到任何好的在线资源

有人能指出我正确的方向吗?我还想过将用户输入同时存储为字符串和数字,但我不确定这是否可行.

这是两个表单检查函数和不完整的main方法:

int is_hex(char arr[])
{
    if (arr[0] == '0' && (arr[1] == 'x' || arr[1] == 'X')) {
        return 1;
    }
    return 0;
}

int check_if_good(char arr[])
{
    if (is_hex(arr)) {
        int len = strlen(arr);
        for (int i = 2; i < len; i++) {
            if ((arr[i] > 'f' && arr[i] <= 'z') || (arr[i] > 'F' && arr[i] <= 'Z')) {
                return 0;
            }
        }
    }

    return 1;
}

int main(int argc, const char …
Run Code Online (Sandbox Code Playgroud)

c arrays floating-point hex

3
推荐指数
1
解决办法
3万
查看次数

这个int在C中浮动转换有什么问题?

我对以下代码的输出感到困惑:

float a  = 1.32;
int* b;
b= &a;
printf("%d", *b);
Run Code Online (Sandbox Code Playgroud)

这段代码将float转换为int,但我得到的输出是:1068037571

这与计算机的IEEE 754转换功能有关吗?谢谢!

c floating-point integer type-conversion

2
推荐指数
2
解决办法
2214
查看次数