小编use*_*460的帖子

进行数学运算以保持数字不小于零

在编程中,模数可用于将数字保持在不超过上限的范围内。

例如:

int value = 0;
for (int x=0; x<100; x++)
    cout << value++%8 << " "; //Keeps number in range 0-7
Run Code Online (Sandbox Code Playgroud)

输出: 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7...


现在考虑这种情况:

int value = 5;
for (int x=0; x<100; x++)
    cout << value-- << " ";
Run Code Online (Sandbox Code Playgroud)

输出: 5 4 3 2 1 0 -1 -2 -3 -4 -5 -6 -7...

我的问题是:如何使用任何条件语句(如if或switch case)将下限限制设置为0,而无 …

c++ math numbers operation limit

5
推荐指数
1
解决办法
1631
查看次数

概率程序

在我们需要生成概率的情况下,例如具有 75% 的抛头和 25% 的抛尾的偏置硬币。按照惯例,我会这样做:

#include <cstdlib>
#include <iostream>
#include <ctime>
using namespace std;

int main()
{
    int heads=0, tails=0;
    srand(time(NULL));
    number = rand() % 100 + 1;  //Generate random number 1 to 100
          if (number <= 75) //75% chance
                heads++; //This is head
          else
                tails++; //This is tail
}
Run Code Online (Sandbox Code Playgroud)

这是一个可以运行的代码,但是当我为另一个用户回答关于偏置币的类似问题时,一些用户提到了 100 的倍数。由于随机函数生成均匀分布,我觉得上面的代码已经足够了用于模拟概率事件。

在过去的 SO 帖子中,用户 Bathsheba 提到了一些关于 100 的倍数的内容:用偏置硬币模拟抛硬币的程序 我想知道我的代码中与此相关的可能问题是什么。

我的问题是:上面的代码是一个可接受的代码来创建一个概率模拟吗?或者这些代码中是否有任何缺陷会影响模拟结果的准确性。如果上述代码有缺陷,那么实现概率模拟的正确方法是什么?

编辑:通过 10,000,000 次抛掷的模拟测试。它总是以大约 75.01%-75.07% 的概率产生抛头。那么当它生成看似准确的结果时会出现什么问题。(生成的结果似乎没有倾斜

c++ random algorithm math probability

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

C++数组是通过引用还是通过指针传递的?

在学校,我们的讲师告诉我们,当我们将它传递给函数时,整个数组都通过引用传递.

但是,最近我读了一本书.它表示在将整个数组传递给函数时,默认情况下会通过指针传递数组.书中进一步提到" 通过指针传递非常类似于通过引用传递 ",这意味着通过指针传递和通过引用传递实际上是不同的.

看来不同来源的说法不同.

所以我的问题是:在C++中,当我们将整个数组传递给函数时,是通过引用还是通过指针传递的数组

例如:

void funcA(int []); //Function Declaration

int main()
{
    int array[5];
    funcA(array); //Is array passed by ref or by pointer here?
}
Run Code Online (Sandbox Code Playgroud)

c++ arrays pointers reference function

5
推荐指数
1
解决办法
7328
查看次数

如何使用AffineTransform的翻译?

我不是问AffineTransform如何工作,而是问如何使用它的translate方法。

我读了很多次API,但仍然不明白它是如何工作的。

公共无效翻译(双tx,双ty)

将此转换与翻译转换连接起来。这相当于调用 concatenate(T),其中 T 是由以下矩阵表示的 AffineTransform:

      [   1    0    tx  ]
      [   0    1    ty  ]
      [   0    0    1   ]
Run Code Online (Sandbox Code Playgroud)

问题:

  1. affineTransform.translate(100, 0) 以某种方式将图像向右移动 +100 像素,向底部移动 +100 像素。为什么会这样呢?

  2. 如果我需要经常移动图像,我是否可以使用translate()来移动图像?如果没有,在框架中移动旋转图像的推荐方法是什么?

java swing awt affinetransform

5
推荐指数
1
解决办法
3165
查看次数

如何从Java获取字体名称列表

在Java中,我们可以创建一个Font对象:

new Font("Helvetica", Font.PLAIN, 12);
Run Code Online (Sandbox Code Playgroud)

我的问题是如何从Java中获取整个字体名称列表,例如"Helvetica",我们可以将它作为Font构造函数的参数使用?

我尝试了以下方法,但我找不到所有列表中的"Helvetica".

    GraphicsEnvironment ge;  
    ge = GraphicsEnvironment.getLocalGraphicsEnvironment();  

    String[] names = ge.getAvailableFontFamilyNames();
    Font[] allFonts = ge.getAllFonts();

    for(int x=0; x<names.length; x++)
        System.out.println(names[x]);

    for(int x=0; x<allFonts.length; x++){           
        System.out.println(allFonts[x].getName());
        System.out.println(allFonts[x].getFontName());
        System.out.println(allFonts[x].getFamily());
        System.out.println(allFonts[x].getPSName());
    }
Run Code Online (Sandbox Code Playgroud)

编辑:更重要的是,我还想知道Font构造函数中的第一个属性调用是什么new Font("What attribute is this?", Font.PLAIN, 12)

问:它是fontName,family,fontFace,name还是什么?

java fonts awt

5
推荐指数
1
解决办法
5839
查看次数

如何从Visual Studio中下载的包中查看源代码

我正在使用TOTP,并通过以下方式在Visual Studio 2013中下载了软件包:

Tools --> Library Package Manager --> Manage Nuget Package Packages
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

但是,似乎没有有关此下载程序包的文档。因此,无论如何,我是否可以查看此程序包中的所有代码和实现,以便让我知道如何使用程序包中的类?

包含包装后:

using Albireo.Otp;
using Albireo.Base32;
Run Code Online (Sandbox Code Playgroud)

我可以从包中的类转到定义

right clicking the class --> Go To Definition.
Run Code Online (Sandbox Code Playgroud)

但是,有没有办法查看此下载包中的所有文件和实现?

c# asp.net package nuget-package visual-studio-2013

5
推荐指数
1
解决办法
1847
查看次数

在这种情况下,我需要"默认"声明吗?

通常在学校,我们的讲师会告诉我们Default在转换案例陈述的最后总是包含一个陈述.但是,我一直想知道所有(或大多数)场景是否必要?

考虑C++中的以下示例:

int num = rand()%3;
switch (num)
{
   case 0: methodOne();
           break;
   case 1: methodTwo();
           break;
   case 2: methodThree();
           break;
}
Run Code Online (Sandbox Code Playgroud)

在上面的例子中,我觉得不可能有一个> 2或<0的情况,所以我还需要包含一个Default声明吗?

在SO中有类似的问题,需要Default在switch-case中.那里的回复表明我们几乎可以在任何时候包括一个Default.但在我个人遇到的所有情况中,它似乎是多余的,因为Default永远无法达到.

编辑:此外,在防御性编程方面,这种情况需要一个Default声明吗?如果我要添加一个Default声明.这只是一个error-handling声明,我说得对吗?

c++ default case switch-statement

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

C中unsigned int的行为

C中unsigned int的大小是0 to 65,535 or 0 to 4,294,967,295.

我用C中的以下代码进行了测试:

unsigned int number = 0;
number -= 300;
printf("%d\n", number);
Run Code Online (Sandbox Code Playgroud)

输出:-300

我记得如果unsigned int变量的值低于0,它应该环绕并且我期待输出类似于4294966996.但是从控制台打印的输出是-300.

我在C++中测试了类似的语句,它确实给了我4294966996.

我的问题是:为什么输出-300尽管它是一个unsigned int


PS:我查看了几个标题相似的帖子,但他们没有解决同样的问题:

在C中签名vs unsigned int

无符号整数差异的意外结果

c int unsigned

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

如何在ASP.NET中将下拉列表与字符串数组绑定?

我能够通过这样做将下拉列表与字符串数组绑定(不确定这是否是正确的实现方式):

string[] items = { "111", "222", "333" };
ddlSearch.DataSource = items;
ddlSearch.DataBind();
Run Code Online (Sandbox Code Playgroud)

但是,我真正想要的是:当我点击下拉列表时,列表中显示的第一个项目111后面跟着222333.

当我单击下拉列表按钮时,如何添加要在下拉列表中显示的文本字符串?

Java有一种简单的方法来添加要在列表中显示的项目,但是我们如何在C#中实现呢?(顺便说一句,我对C#很新.)

c# asp.net drop-down-menu

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

在Java中,super.getClass()打印"Child"而不是"Parent" - 为什么会这样?

在Java类和对象中,我们使用"this"关键字来引用类中的当前对象.从某种意义上说,我相信"这个"实际上会回归自身的对象.

示例:

class Lion
{
    public void Test()
    {
        System.out.println(this);  //prints itself (A Lion object)
    }
}
Run Code Online (Sandbox Code Playgroud)

在超类和子类的场景中.我认为"超级"关键字会返回超类的对象.但是这次我似乎弄错了:

例:

class Parent
{
    public Parent(){
    }
}

class Child extends Parent
{
    public Child(){
        System.out.println(super.getClass()); //returns Child. Why?
    }
}
Run Code Online (Sandbox Code Playgroud)

我的问题:在上面的例子中,我期待编译器打印出来class Parent,但它打印出来class Child.为什么会这样?什么超级实际返回?

java super

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