精华内容
下载资源
问答
  • 考虑一下下面的的问题:你有一浮点类型的数字。这绝不是令人讨厌恶作剧----没有无穷个数字或无限大的数字,仅仅只是正常“简单”浮点型的数字。现在:计算其平均值。你能做到吗?事实证明这是一个很困难...

    考虑一下下面的的问题:

    你有一列浮点类型的数字。这绝不是令人讨厌的恶作剧----没有无穷个数字或无限大的数字,仅仅只是正常的“简单的”浮点型的数字。

    现在:计算其平均值。你能做到吗?

    事实证明这是一个很困难的问题,想要得到该平

    使用Hypothesis库来考虑以下的测试案列:

    481a0aa222a385be32ce174097f151fd.png

    这并不是关于正确性的测试,只是测试平均值是否在列表的合理的限制范围内:在不作为平均值的情况下,有许多函数可以满足这个要求。最小值和最大值函数都满足这个要求,中值函数也是如此。

    然而,几乎没有人的平均值计算方法满足这个要求。

    为了理解其中的原因,写下了我们自己的平均值计算方法:

    32350ba263e1b5eaac02dc7352a0c4b9.png

    这看起来十分合理--它正是平均值的定义--但是,它是错误的:

    9bffc2922699b32de0903abcb1dde216.png

    其问题在于有限的浮点数可能足够大,以至于它们的和溢出到无穷大。然后当你用无穷大除以一个有限的数时,你仍然会得到无穷大,这就意味着超出了范围。

    所以,为了阻止有限的浮点数之和的溢出,我们尝试通过列表的长度来限制我们的数字大小:

    714d0030f11800d6992250935ea35c89.png
    8ef345f0c178e2525682d991e94dbd29.png

    在这种情况下,你遇到的问题不是溢出,而是浮点数的精度不够:浮点数只能精确到一个整数的2次幂,因此除以3会导致舍入错误。在这种情况下我们有一个问题,就是(x/3)* 3一般不等于x本身。

    所以,现在我们理解了为什么求平均值可能非常困难。让我们看看现有的方法是如何满足这个测试的。

    首先,我们尝试使用numpy库:

    5e049464b765b43b179a8547a9d513db.png

    这遇到了我们在第一次实验中遇到的问题:

    0e8683f4ffab34f7382cdeb679ae3fa3.png

    Python3.4还提供了新的统计模块。糟糕的是,这个模块也出现了问题(在Python3.5.2中得到了修复):

    91c00f6a09e88ee8fbe511d768492a98.png

    在之前溢出到无穷大的情况下,这反而会产生一个错误。该错误产生的原因是统计模块在内部将所有数字都转化成Fraction类型,这是一种任意精度的有理数类型。由于一些细节,即在何时何地被转化为浮点数,这就产生了一个不容易被转化为浮点数的有理数。

    编写一个通过测试的方法相对容易,仅仅需要简单的作弊,而不需要实际计算出其平均值:

    70c10cbd098e65cb015b82319171db7a.png

    也就是说,将值限制在期望的范围内。

    然而,编写一个真正地,正确的平均值计算方法(可以通过测试的)是相当困难的:

    为了理解其困难程度,这里有一篇30页的关于计算两个数的平均值的论文。

    如果我是你,我就不会去看那篇论文。我已经阅读过这篇论文了,但我并没有记得很多细节。

    这个测试是一个很好的实例:一旦你编写的代码没有崩溃,测试工作正常进行,就可以开始在结果值上添加额外的约束。正如本例所示,即使你添加的约束非常宽松,它也常常会捕获到一些有趣的bug。

    它还证明了一个问题:浮点数运算非常困难,这使得它不太适合用Hypothesis库进行验证。

    这并不是因为Hypothesis库不擅长测试浮点代码,而是因为它善于向人们展示编程的实际难度,而浮点编码比人们所预想的要难得多。

    因此,你或许并不会在意它将发现的一些bug:一般来说,大多数人对于浮点数错误的态度是,”那些数字好奇怪,我们并不真的在意它们。或许已经足够好了“。如果你希望你的浮点代码是正确的,那么数值敏感度分析工作是必不可少的,但是很少有人能够完成这种高要求的工作。

    我过去经常用这个例子来向人们演示Hypothesis库,但由于这些问题,我不会再这样做了:告诉人们他们并不想要修复的bug,既不会修复bug,也不会得到朋友。

    但是,值得知道的是,这是一个问题:编程是非常困难的,而忽略这些问题并不会使它变得容易。你可以忽略正确性问题,直到它们真正给你造成麻烦为止,但是当它们给你带来麻烦时,最好不要感到惊讶。

    而且,一些通用的技术也值得被牢记,因为这不仅仅是对浮点数有用:大多数的代码可以从中受益,而且大多数时候它告诉你的bug不会那么令人不快。

    英文原文:https://hypothesis.works/articles/calculating-the-mean/ 译者:Lyx
    展开全文
  • 考虑一下下面的的问题:你有一浮点类型的数字。这绝不是令人讨厌恶作剧----没有无穷个数字或无限大的数字,仅仅只是正常“简单”浮点型的数字。现在:计算其平均值。你能做到吗?事实证明这是一个很困难...

    6cb9fc1e8309ec515fb1778ab7cfdc82.png

    考虑一下下面的的问题:

    你有一列浮点类型的数字。这绝不是令人讨厌的恶作剧----没有无穷个数字或无限大的数字,仅仅只是正常的“简单的”浮点型的数字。
    现在:计算其平均值。你能做到吗?

    事实证明这是一个很困难的问题,想要得到该平

    使用Hypothesis库来考虑以下的测试案列:

    8960dc00b6d0374e46b5b4fd0b812d0f.png

    这并不是关于正确性的测试,只是测试平均值是否在列表的合理的限制范围内:在不作为平均值的情况下,有许多函数可以满足这个要求。最小值和最大值函数都满足这个要求,中值函数也是如此。

    然而,几乎没有人的平均值计算方法满足这个要求。

    为了理解其中的原因,写下了我们自己的平均值计算方法:f82f9856c020934ec0886f7ee835ae96.png

    这看起来十分合理--它正是平均值的定义--但是,它是错误的:fe7cd824332e15dc305d0b4b8ce5f060.png

    其问题在于有限的浮点数可能足够大,以至于它们的和溢出到无穷大。然后当你用无穷大除以一个有限的数时,你仍然会得到无穷大,这就意味着超出了范围。

    所以,为了阻止有限的浮点数之和的溢出,我们尝试通过列表的长度来限制我们的数字大小:28d03c257e5e18f9145f13bd2c19244a.png012e1cba093384e081c4495dd16010d5.png

    在这种情况下,你遇到的问题不是溢出,而是浮点数的精度不够:浮点数只能精确到一个整数的2次幂,因此除以3会导致舍入错误。在这种情况下我们有一个问题,就是(x/3)* 3一般不等于x本身。

    所以,现在我们理解了为什么求平均值可能非常困难。让我们看看现有的方法是如何满足这个测试的。

    首先,我们尝试使用numpy库:

    741e5c1fe0e5a7b24b3e253b20494a13.png

    这遇到了我们在第一次实验中遇到的问题:

    140903506e68ad2d048d51d79e8de6b3.png

    Python3.4还提供了新的统计模块。糟糕的是,这个模块也出现了问题(在Python3.5.2中得到了修复):

    254e653d88776db0e2a23d1f551f688e.png

    在之前溢出到无穷大的情况下,这反而会产生一个错误。该错误产生的原因是统计模块在内部将所有数字都转化成Fraction类型,这是一种任意精度的有理数类型。由于一些细节,即在何时何地被转化为浮点数,这就产生了一个不容易被转化为浮点数的有理数。

    编写一个通过测试的方法相对容易,仅仅需要简单的作弊,而不需要实际计算出其平均值:

    2b1fdf0a1774c174c9a6f3fd1b2d838c.png

    也就是说,将值限制在期望的范围内。

    然而,编写一个真正地,正确的平均值计算方法(可以通过测试的)是相当困难的:

    为了理解其困难程度,这里有一篇30页的关于计算两个数的平均值的论文。

    如果我是你,我就不会去看那篇论文。我已经阅读过这篇论文了,但我并没有记得很多细节。

    这个测试是一个很好的实例:一旦你编写的代码没有崩溃,测试工作正常进行,就可以开始在结果值上添加额外的约束。正如本例所示,即使你添加的约束非常宽松,它也常常会捕获到一些有趣的bug。

    它还证明了一个问题:浮点数运算非常困难,这使得它不太适合用Hypothesis库进行验证。

    这并不是因为Hypothesis库不擅长测试浮点代码,而是因为它善于向人们展示编程的实际难度,而浮点编码比人们所预想的要难得多。

    因此,你或许并不会在意它将发现的一些bug:一般来说,大多数人对于浮点数错误的态度是,”那些数字好奇怪,我们并不真的在意它们。或许已经足够好了“。如果你希望你的浮点代码是正确的,那么数值敏感度分析工作是必不可少的,但是很少有人能够完成这种高要求的工作。

    我过去经常用这个例子来向人们演示Hypothesis库,但由于这些问题,我不会再这样做了:告诉人们他们并不想要修复的bug,既不会修复bug,也不会得到朋友。

    但是,值得知道的是,这是一个问题:编程是非常困难的,而忽略这些问题并不会使它变得容易。你可以忽略正确性问题,直到它们真正给你造成麻烦为止,但是当它们给你带来麻烦时,最好不要感到惊讶。

    而且,一些通用的技术也值得被牢记,因为这不仅仅是对浮点数有用:大多数的代码可以从中受益,而且大多数时候它告诉你的bug不会那么令人不快。

    英文原文:https://hypothesis.works/articles/calculating-the-mean/  

    译者:Lyx

    展开全文
  • 考虑一下下面的的问题:你有一浮点类型的数字。这绝不是令人讨厌恶作剧----没有无穷个数字或无限大的数字,仅仅只是正常“简单”浮点型的数字。现在:计算其平均值。你能做到吗?事实证明这是一个很困难...

    考虑一下下面的的问题:

    你有一列浮点类型的数字。这绝不是令人讨厌的恶作剧----没有无穷个数字或无限大的数字,仅仅只是正常的“简单的”浮点型的数字。

    现在:计算其平均值。你能做到吗?

    事实证明这是一个很困难的问题,想要得到该平

    使用Hypothesis库来考虑以下的测试案列:

    db4faf5f3d0a165bacceb825696e2004.png

    这并不是关于正确性的测试,只是测试平均值是否在列表的合理的限制范围内:在不作为平均值的情况下,有许多函数可以满足这个要求。最小值和最大值函数都满足这个要求,中值函数也是如此。

    然而,几乎没有人的平均值计算方法满足这个要求。

    为了理解其中的原因,写下了我们自己的平均值计算方法:

    1f83c54596ccae53b8a2a386d64ad956.png

    这看起来十分合理--它正是平均值的定义--但是,它是错误的:

    1a3f3edad4b77cfb5f4d7410214be65d.png

    其问题在于有限的浮点数可能足够大,以至于它们的和溢出到无穷大。然后当你用无穷大除以一个有限的数时,你仍然会得到无穷大,这就意味着超出了范围。

    所以,为了阻止有限的浮点数之和的溢出,我们尝试通过列表的长度来限制我们的数字大小:

    402103ab14882cd9aeed48078123141f.png
    30f6d956caaf489b705e3aba6592afdf.png

    在这种情况下,你遇到的问题不是溢出,而是浮点数的精度不够:浮点数只能精确到一个整数的2次幂,因此除以3会导致舍入错误。在这种情况下我们有一个问题,就是(x/3)* 3一般不等于x本身。

    所以,现在我们理解了为什么求平均值可能非常困难。让我们看看现有的方法是如何满足这个测试的。

    首先,我们尝试使用numpy库:

    92590e3ec39a40a95f12fa77e4366373.png

    这遇到了我们在第一次实验中遇到的问题:

    b11104a5331f16e20d5ecd144b658adb.png

    Python3.4还提供了新的统计模块。糟糕的是,这个模块也出现了问题(在Python3.5.2中得到了修复):

    7f4e97d7a719c74fe495efcd0c7a5d82.png

    在之前溢出到无穷大的情况下,这反而会产生一个错误。该错误产生的原因是统计模块在内部将所有数字都转化成Fraction类型,这是一种任意精度的有理数类型。由于一些细节,即在何时何地被转化为浮点数,这就产生了一个不容易被转化为浮点数的有理数。

    编写一个通过测试的方法相对容易,仅仅需要简单的作弊,而不需要实际计算出其平均值:

    572e4955b3e85bb3c1067a8e2c0cf6e0.png

    也就是说,将值限制在期望的范围内。

    然而,编写一个真正地,正确的平均值计算方法(可以通过测试的)是相当困难的:

    为了理解其困难程度,这里有一篇30页的关于计算两个数的平均值的论文。

    如果我是你,我就不会去看那篇论文。我已经阅读过这篇论文了,但我并没有记得很多细节。

    这个测试是一个很好的实例:一旦你编写的代码没有崩溃,测试工作正常进行,就可以开始在结果值上添加额外的约束。正如本例所示,即使你添加的约束非常宽松,它也常常会捕获到一些有趣的bug。

    它还证明了一个问题:浮点数运算非常困难,这使得它不太适合用Hypothesis库进行验证。

    这并不是因为Hypothesis库不擅长测试浮点代码,而是因为它善于向人们展示编程的实际难度,而浮点编码比人们所预想的要难得多。

    因此,你或许并不会在意它将发现的一些bug:一般来说,大多数人对于浮点数错误的态度是,”那些数字好奇怪,我们并不真的在意它们。或许已经足够好了“。如果你希望你的浮点代码是正确的,那么数值敏感度分析工作是必不可少的,但是很少有人能够完成这种高要求的工作。

    我过去经常用这个例子来向人们演示Hypothesis库,但由于这些问题,我不会再这样做了:告诉人们他们并不想要修复的bug,既不会修复bug,也不会得到朋友。

    但是,值得知道的是,这是一个问题:编程是非常困难的,而忽略这些问题并不会使它变得容易。你可以忽略正确性问题,直到它们真正给你造成麻烦为止,但是当它们给你带来麻烦时,最好不要感到惊讶。

    而且,一些通用的技术也值得被牢记,因为这不仅仅是对浮点数有用:大多数的代码可以从中受益,而且大多数时候它告诉你的bug不会那么令人不快。

    英文原文:https://hypothesis.works/articles/calculating-the-mean/ 译者:Lyx
    展开全文
  • Java语言输出5x5矩阵,用1-25填充,要求每一行每一以及对角线上的数字和相等,所有的数字不重复。
  • 考虑一下下面的的问题:你有一浮点类型的数字。这绝不是令人讨厌恶作剧----没有无穷个数字或无限大的数字,仅仅只是正常“简单”浮点型的数字。现在:计算其平均值。你能做到吗?事实证明这是一个很困难...

    65c28b194b48b05733d288777969c4f5.png

    考虑一下下面的的问题:

    你有一列浮点类型的数字。这绝不是令人讨厌的恶作剧----没有无穷个数字或无限大的数字,仅仅只是正常的“简单的”浮点型的数字。
    现在:计算其平均值。你能做到吗?

    事实证明这是一个很困难的问题,想要得到该平

    使用Hypothesis库来考虑以下的测试案列:

    eb87d982110d03e79d4021a7de5a10bf.png

    这并不是关于正确性的测试,只是测试平均值是否在列表的合理的限制范围内:在不作为平均值的情况下,有许多函数可以满足这个要求。最小值和最大值函数都满足这个要求,中值函数也是如此。

    然而,几乎没有人的平均值计算方法满足这个要求。

    为了理解其中的原因,写下了我们自己的平均值计算方法:febf0fea77021a7bf894c8065ae0950e.png

    这看起来十分合理--它正是平均值的定义--但是,它是错误的:c09cc883bdf63b991cb8949c669f669a.png

    其问题在于有限的浮点数可能足够大,以至于它们的和溢出到无穷大。然后当你用无穷大除以一个有限的数时,你仍然会得到无穷大,这就意味着超出了范围。

    所以,为了阻止有限的浮点数之和的溢出,我们尝试通过列表的长度来限制我们的数字大小:78b4eb4600caf0c0e3939cc0f2201a1b.png1dad767ed9ffa248c289549fab7295c1.png

    在这种情况下,你遇到的问题不是溢出,而是浮点数的精度不够:浮点数只能精确到一个整数的2次幂,因此除以3会导致舍入错误。在这种情况下我们有一个问题,就是(x/3)* 3一般不等于x本身。

    所以,现在我们理解了为什么求平均值可能非常困难。让我们看看现有的方法是如何满足这个测试的。

    首先,我们尝试使用numpy库:

    28bbf75890587ac2b00e893c423623ee.png

    这遇到了我们在第一次实验中遇到的问题:

    a4e0767581c7aa751c7d5c73daf0a92b.png

    Python3.4还提供了新的统计模块。糟糕的是,这个模块也出现了问题(在Python3.5.2中得到了修复):

    c69f3e808fa27feddd5b838c442cfb08.png

    在之前溢出到无穷大的情况下,这反而会产生一个错误。该错误产生的原因是统计模块在内部将所有数字都转化成Fraction类型,这是一种任意精度的有理数类型。由于一些细节,即在何时何地被转化为浮点数,这就产生了一个不容易被转化为浮点数的有理数。

    编写一个通过测试的方法相对容易,仅仅需要简单的作弊,而不需要实际计算出其平均值:

    46287d38e611571f97296ecbb783db8e.png

    也就是说,将值限制在期望的范围内。

    然而,编写一个真正地,正确的平均值计算方法(可以通过测试的)是相当困难的:

    为了理解其困难程度,这里有一篇30页的关于计算两个数的平均值的论文。

    如果我是你,我就不会去看那篇论文。我已经阅读过这篇论文了,但我并没有记得很多细节。

    这个测试是一个很好的实例:一旦你编写的代码没有崩溃,测试工作正常进行,就可以开始在结果值上添加额外的约束。正如本例所示,即使你添加的约束非常宽松,它也常常会捕获到一些有趣的bug。

    它还证明了一个问题:浮点数运算非常困难,这使得它不太适合用Hypothesis库进行验证。

    这并不是因为Hypothesis库不擅长测试浮点代码,而是因为它善于向人们展示编程的实际难度,而浮点编码比人们所预想的要难得多。

    因此,你或许并不会在意它将发现的一些bug:一般来说,大多数人对于浮点数错误的态度是,”那些数字好奇怪,我们并不真的在意它们。或许已经足够好了“。如果你希望你的浮点代码是正确的,那么数值敏感度分析工作是必不可少的,但是很少有人能够完成这种高要求的工作。

    我过去经常用这个例子来向人们演示Hypothesis库,但由于这些问题,我不会再这样做了:告诉人们他们并不想要修复的bug,既不会修复bug,也不会得到朋友。

    但是,值得知道的是,这是一个问题:编程是非常困难的,而忽略这些问题并不会使它变得容易。你可以忽略正确性问题,直到它们真正给你造成麻烦为止,但是当它们给你带来麻烦时,最好不要感到惊讶。

    而且,一些通用的技术也值得被牢记,因为这不仅仅是对浮点数有用:大多数的代码可以从中受益,而且大多数时候它告诉你的bug不会那么令人不快。

    英文原文:https://hypothesis.works/articles/calculating-the-mean/  

    译者:Lyx

    展开全文
  • 我们可以发现杨辉三角第row行col列数字满足公式,C(row,col)(注意这里是从0开始,而我们给行列是从1开始,计算时行列要减1),而又能发现当 col == row || col == 1 时它值为1。 C(row - 1,col - 1) = ...
  • #include <stdio.h> void main() { int i,j,k,l,m,n; for(i=1;i<=6;i++) for(j=1;j<=6;j++) for(k=1;k<=6;k++) for(l=1;l<=6;l++) for(m=1;m<=6;m++) ...n...
  • 请问使用MySQL,如何在其中一自动填上递增的数字? 例如将表中id列的值,修改为递增序号。 要求一步到位,不需要手动逐行进行修改。 效果如图: ![图片说明]...
  • 如下所示自然数递增,且每行数字的列数也递增,第一行 1 个数字 (1),第二行 2 个数 字 (2 ,3 ),以此类推,试编程找出规律、输出第 66 行的后 10 个数字内容。要求输出项保 持原顺序。
  • 从一列数字中随机找出几个使得和等于10 ,要求存储过程能返回被选取出来数据序列号,找出序列数不能超过4条。 比如从下表中number(数量)字段之和等于10,算法举例:2+3+5=10 返回序列号:1,3,4 | id | ...
  • 一个二维数组,但行递增、单列递增,编写程序,在数组中查找某个数字(key),要求时间复杂度小于O(N)。 示例数组 1 3 4 2 4 5 4 5 6分析: 对这个问题,首先想到就是二分查找,对一位数组效率最高...
  • HDU - 1716 Ray又对数字的列产生了兴趣: 现有四张卡片,用这四张卡片能排列出很多不同的4位数,要求按从小到大的顺序输出这些4位数。 Input 每组数据占一行,代表四张卡片上的数字(0&amp;lt;=数字&amp;lt;...
  • 那么这些数字的和为23。要求计算得出任意正整数n以内中3或5的倍数的自然数之和。 输入格式: 一个正整数n。 输出格式: n以内中3或5的倍数的自然数之和。 输入样例: 10 输出样例: 23 def numble(x): sum_1 = 0 ...
  • 对每组卡片按从小到大顺序输出所有能由这四张卡片组成4位数,千位数字相同在同一行,同一行中每个四位数间用空格分隔。 每组输出数据间空一行,最后一组数据后面没有空行。 Sample Input 1 2 3 4 1 1 2 ...
  • 2.求4行5矩阵中最大值行列数 3.使用while语句求用户输入的数字区间奇数和 要求: 用户选择指定功能进行实现,例如:用户键入2,选择求最大值行列功能,那么只实现该功能,实现后返回选择功能界面,按特定键...
  • 现在有一个表Table1进行随机查询, 检索结果记录条数不限, 但是要求Num求和结果为一个固定值,如结果为15 ID NUM 1 5 2 3 3 2 4 5 5 4 6 5 7 3 8 2 9 4 10 3 IF OBJECT_ID([tb]) IS NOT NULL DROP TABLE ...
  • 应用场景如下: ...这里需要分割字符串,前面中文后面是数字,并且数字的长度不同,分别为6位于7位。需要按照6位7位分别切割。 解决思路: 这里我们要清楚这样的数据的分界线在哪,首先我看到前...
  • 在图中,A1:O1单元格区域为随机数字要求在A3:O3单元格区域将A1:O1单元格区域中所有连续5个大于10的数字都标记出来。例如,E1单元格的数字为11,E1:I1单元格区域5个数字都大于10,因此E1单元要标记。D1单元格的数字...
  • 点击上方蓝字关注我们小编最近参加了几个公司暑期实习在线笔试,发现SQL数据库技能或多或少都是被要求的,因此接下来会更新一下学习专题(恶补技能)。小编安装了mysql数据库,为了方便操作,安装一个数据库客户端...
  • * 在一数中寻找第k大数,使用快排思想,一趟快排后会返回一个基准点位置,如果该位置loc正好处于 * 要求的第k个数位置,则该位置数即为所求;如果loc&gt;k,说明要求的第k大数,在左边子数组中,...
  • 给定如下n*n的数字矩阵,每行从左到右是严格递增, 每列的数据也是严格递增 1 2 3 3 5 6 4 8 9 现在要求设计一个算法, 给定一个数k 判断出k是否在这个矩阵中。描述算法并且给出时间复杂度(不考虑载入矩阵消耗...
  • 任务: 在不同的列右侧插入指定数量空白(本例是要求在每右侧插入第2行数字对应空白) 插入空白前 插入空白后 vba代码如下: Sub 在不同的列右侧插入指定数量空白() Dim m, n, i As Integer For n...
  • 任务: 在不同的列左侧插入指定数量空白(本例是要求在每左侧插入第2行数字对应空白) 插入空白前 插入空白后 vba代码如下: Sub 在不同的列左侧插入指定数量空白() Dim m, n, i As Integer For n...
  • 一、需求一个字段有多行记录,查询结果为去重排序一行记录,例如记录值为:1,2,41,4,52,323,56,673,4要求查询结果为:1,2,3,4,5,23,56,67二、方案使用数字辅助表实现-- 建立数字辅助表 create table nums ( a ...
  • 如果有多对数字的和等于输入的数字,输出任意一对即可。 例如输入数组1、2、4、7、11、15和数字15。由于4+11=15,因此输出4和11。 分析:如果我们不考虑时间复杂度,最简单想法的莫过去先在数组中固定一个...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 3,530
精华内容 1,412
关键字:

列数字的要求