我正在研究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.由于我超出了限制,因此局域网中的每台设备都受此限制吗?.另外,速率限制的非认证端点还有哪些其他方式?
我刚开始学习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?这看起来似乎微不足道,但我已经考虑过了,无法弄明白.谢谢您的帮助!
做以下事情的"红宝石"方式是什么?我仍然在考虑更多命令式的风格编程,而不是真正适应红宝石的思考.我想要做的是找到与数组平均值最接近的元素,例如,考虑以下数组
[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) 我刚开始学习函数式编程,我发现自己对模式匹配的概念非常困惑(我使用的是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)
谢谢您的帮助!
我正在尝试编写一个算法来将十六进制数转换为浮点数,反之亦然.这是一个赋值的一部分,该程序应该接收一个以'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) 我对以下代码的输出感到困惑:
float a = 1.32;
int* b;
b= &a;
printf("%d", *b);
Run Code Online (Sandbox Code Playgroud)
这段代码将float转换为int,但我得到的输出是:1068037571
这与计算机的IEEE 754转换功能有关吗?谢谢!