希望这对你来说是有意义的,我很乐意更详细地解释这个问题。
import java.awt.Color;
import java.awt.EventQueue;
import java.awt.Font;
import java.util.ArrayList;
import java.util.List;
import java.util.Random;
import javax.swing.JFrame;
import javax.swing.JTextField;
import javax.swing.JTextPane;
import javax.swing.SwingConstants;
import javax.swing.JButton;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
public class Application {
private JFrame frame;
private JTextField pst;
private JTextField pg;
private JTextField sg;
private JTextField pf;
private JTextField C;
private JTextField sf;
private JTextField txtPlayerName;
private JTextField ED;
private JTextField CJ;
private JTextField SB;
private JTextField SW;
private JTextField JO;
private JTextField num;
private JTextField edNum;
private JTextField cjNum;
private JTextField sbNum;
private JTextField swNum;
private JTextField joNum;
private JTextField ppg;
private JTextField ppgED;
private JTextField ppgCJ;
private JTextField ppgSB;
private JTextField ppgJO;
private JTextField ppgSW;
private JButton btnPlay;
private List<Integer> ppgList;
private int sum;
private int counter;
// Launch the application.
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
Application window = new Application();
window.frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the application.
*/
public Application() {
initialize();
}
/**
* Initialize the contents of the frame.
*/
private void initialize() {
initComponenets();
createEvents();
}
////////////////////////////////////////////////////////////////////////
//Contains all of the code for creating events
private void createEvents() {
}
//Contains all of the code for creating and initializing components
private void initComponenets() {
////////////////////////////////////////////////////////////Frame
frame = new JFrame();
frame.setTitle("Title");
frame.setBounds(100, 100, 801, 450);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().setLayout(null);
////////////////////////////////////////////////////////////Title
JTextPane title = new JTextPane();
title.setBackground(Color.LIGHT_GRAY);
title.setEditable(false);
title.setFont(new Font("Tahoma", Font.PLAIN, 20));
title.setForeground(Color.DARK_GRAY);
title.setBounds(237, 11, 296, 50);
title.setText(" Basketball Simulation Game");
frame.getContentPane().add(title);
/////////////////////////////////////////////////////////// Position TextBox
pst = new JTextField();
pst.setHorizontalAlignment(SwingConstants.CENTER);
pst.setEditable(false);
pst.setFont(new Font("Tahoma", Font.BOLD, 14));
pst.setText("PST");
pst.setBounds(10, 64, 50, 35);
frame.getContentPane().add(pst);
pst.setColumns(10);
pg = new JTextField();
pg.setHorizontalAlignment(SwingConstants.CENTER);
pg.setText("PG");
pg.setFont(new Font("Tahoma", Font.BOLD, 14));
pg.setEditable(false);
pg.setColumns(10);
pg.setBounds(10, 99, 50, 50);
frame.getContentPane().add(pg);
sg = new JTextField();
sg.setHorizontalAlignment(SwingConstants.CENTER);
sg.setText("SG");
sg.setFont(new Font("Tahoma", Font.BOLD, 14));
sg.setEditable(false);
sg.setColumns(10);
sg.setBounds(10, 148, 50, 50);
frame.getContentPane().add(sg);
sf = new JTextField();
sf.setText("SF");
sf.setHorizontalAlignment(SwingConstants.CENTER);
sf.setFont(new Font("Tahoma", Font.BOLD, 14));
sf.setEditable(false);
sf.setColumns(10);
sf.setBounds(10, 196, 50, 50);
frame.getContentPane().add(sf);
pf = new JTextField();
pf.setText("PF");
pf.setHorizontalAlignment(SwingConstants.CENTER);
pf.setFont(new Font("Tahoma", Font.BOLD, 14));
pf.setEditable(false);
pf.setColumns(10);
pf.setBounds(10, 242, 50, 50);
frame.getContentPane().add(pf);
C = new JTextField();
C.setText("C");
C.setHorizontalAlignment(SwingConstants.CENTER);
C.setFont(new Font("Tahoma", Font.BOLD, 14));
C.setEditable(false);
C.setColumns(10);
C.setBounds(10, 291, 50, 50);
frame.getContentPane().add(C);
/////////////////////////////////////////////// PlayerName
txtPlayerName = new JTextField();
txtPlayerName.setText("Player Name");
txtPlayerName.setHorizontalAlignment(SwingConstants.CENTER);
txtPlayerName.setFont(new Font("Tahoma", Font.BOLD, 14));
txtPlayerName.setEditable(false);
txtPlayerName.setColumns(10);
txtPlayerName.setBounds(59, 64, 95, 35);
frame.getContentPane().add(txtPlayerName);
ED = new JTextField();
ED.setText("ED");
ED.setHorizontalAlignment(SwingConstants.CENTER);
ED.setFont(new Font("Tahoma", Font.BOLD, 14));
ED.setEditable(false);
ED.setColumns(10);
ED.setBounds(59, 99, 95, 50);
frame.getContentPane().add(ED);
CJ = new JTextField();
CJ.setText("CJ");
CJ.setHorizontalAlignment(SwingConstants.CENTER);
CJ.setFont(new Font("Tahoma", Font.BOLD, 14));
CJ.setEditable(false);
CJ.setColumns(10);
CJ.setBounds(59, 148, 95, 50);
frame.getContentPane().add(CJ);
SB = new JTextField();
SB.setText("SB");
SB.setHorizontalAlignment(SwingConstants.CENTER);
SB.setFont(new Font("Tahoma", Font.BOLD, 14));
SB.setEditable(false);
SB.setColumns(10);
SB.setBounds(59, 196, 95, 50);
frame.getContentPane().add(SB);
SW = new JTextField();
SW.setText("Swanigan");
SW.setHorizontalAlignment(SwingConstants.CENTER);
SW.setFont(new Font("Tahoma", Font.BOLD, 14));
SW.setEditable(false);
SW.setColumns(10);
SW.setBounds(59, 245, 95, 47);
frame.getContentPane().add(SW);
JO = new JTextField();
JO.setText("Jordan");
JO.setHorizontalAlignment(SwingConstants.CENTER);
JO.setFont(new Font("Tahoma", Font.BOLD, 14));
JO.setEditable(false);
JO.setColumns(10);
JO.setBounds(59, 291, 95, 50);
frame.getContentPane().add(JO);
/////////////////////////////////////////////Numbers
num = new JTextField();
num.setText("#");
num.setHorizontalAlignment(SwingConstants.CENTER);
num.setFont(new Font("Tahoma", Font.BOLD, 14));
num.setEditable(false);
num.setColumns(10);
num.setBounds(153, 64, 50, 35);
frame.getContentPane().add(num);
edNum = new JTextField();
edNum.setText("0");
edNum.setHorizontalAlignment(SwingConstants.CENTER);
edNum.setFont(new Font("Tahoma", Font.BOLD, 14));
edNum.setEditable(false);
edNum.setColumns(10);
edNum.setBounds(153, 99, 50, 50);
frame.getContentPane().add(edNum);
cjNum = new JTextField();
cjNum.setText("3");
cjNum.setHorizontalAlignment(SwingConstants.CENTER);
cjNum.setFont(new Font("Tahoma", Font.BOLD, 14));
cjNum.setEditable(false);
cjNum.setColumns(10);
cjNum.setBounds(153, 148, 50, 50);
frame.getContentPane().add(cjNum);
sbNum = new JTextField();
sbNum.setText("24");
sbNum.setHorizontalAlignment(SwingConstants.CENTER);
sbNum.setFont(new Font("Tahoma", Font.BOLD, 14));
sbNum.setEditable(false);
sbNum.setColumns(10);
sbNum.setBounds(153, 196, 50, 50);
frame.getContentPane().add(sbNum);
swNum = new JTextField();
swNum.setText("8");
swNum.setHorizontalAlignment(SwingConstants.CENTER);
swNum.setFont(new Font("Tahoma", Font.BOLD, 14));
swNum.setEditable(false);
swNum.setColumns(10);
swNum.setBounds(153, 245, 50, 47);
frame.getContentPane().add(swNum);
joNum = new JTextField();
joNum.setText("23");
joNum.setHorizontalAlignment(SwingConstants.CENTER);
joNum.setFont(new Font("Tahoma", Font.BOLD, 14));
joNum.setEditable(false);
joNum.setColumns(10);
joNum.setBounds(153, 291, 50, 50);
frame.getContentPane().add(joNum);
//////////////////////////////////Points per game
ppg = new JTextField();
ppg.setText("PPG");
ppg.setHorizontalAlignment(SwingConstants.CENTER);
ppg.setFont(new Font("Tahoma", Font.BOLD, 14));
ppg.setEditable(false);
ppg.setColumns(10);
ppg.setBounds(201, 64, 50, 35);
frame.getContentPane().add(ppg);
ppgED = new JTextField();
ppgED.setText("0.0");
ppgED.setHorizontalAlignment(SwingConstants.CENTER);
ppgED.setFont(new Font("Tahoma", Font.BOLD, 14));
ppgED.setEditable(false);
ppgED.setColumns(10);
ppgED.setBounds(201, 99, 50, 50);
frame.getContentPane().add(ppgED);
ppgCJ = new JTextField();
ppgCJ.setText("0.0");
ppgCJ.setHorizontalAlignment(SwingConstants.CENTER);
ppgCJ.setFont(new Font("Tahoma", Font.BOLD, 14));
ppgCJ.setEditable(false);
ppgCJ.setColumns(10);
ppgCJ.setBounds(201, 148, 50, 50);
frame.getContentPane().add(ppgCJ);
ppgSB = new JTextField();
ppgSB.setText("0.0");
ppgSB.setHorizontalAlignment(SwingConstants.CENTER);
ppgSB.setFont(new Font("Tahoma", Font.BOLD, 14));
ppgSB.setEditable(false);
ppgSB.setColumns(10);
ppgSB.setBounds(201, 196, 50, 50);
frame.getContentPane().add(ppgSB);
ppgJO = new JTextField();
ppgJO.setText("0.0");
ppgJO.setHorizontalAlignment(SwingConstants.CENTER);
ppgJO.setFont(new Font("Tahoma", Font.BOLD, 14));
ppgJO.setEditable(false);
ppgJO.setColumns(10);
ppgJO.setBounds(201, 291, 50, 50);
frame.getContentPane().add(ppgJO);
ppgSW = new JTextField();
ppgSW.setText("0.0");
ppgSW.setHorizontalAlignment(SwingConstants.CENTER);
ppgSW.setFont(new Font("Tahoma", Font.BOLD, 14));
ppgSW.setEditable(false);
ppgSW.setColumns(10);
ppgSW.setBounds(201, 245, 50, 47);
frame.getContentPane().add(ppgSW);
////////////////////////////////////////Play JButton
btnPlay = new JButton("PLAY");
btnPlay.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
getPPG(33, ppgED);
}
});
btnPlay.setFont(new Font("Tahoma", Font.PLAIN, 24));
btnPlay.setBounds(304, 344, 160, 56);
frame.getContentPane().add(btnPlay);
}
public void getPPG(int num, JTextField box){
Random rand = new Random();
String text;
ppgList = new ArrayList<Integer>();
for(int xy = 0; xy < 1; xy++){
num = num + rand.nextInt(10);
ppgList.add(num);
}
for(int i = 0; i < ppgList.size(); i++)
{
counter++;
sum = sum + ppgList.get(i) / counter;
}
Integer.toString(sum);
text = String.valueOf(sum);
box.setText(text);
}
}
当前的方法添加了一个除以当前计数器的项,这是不正确的。看看下面的例子:
values: 1, 2, 3, 4, 5
average: 3
your result: 1/1 + 2/2 + 3/3 + 4/4 + 5/5
= 1 + 1 + 1 + 1 + 1
= 5
正确的方法首先计算所有值的总和,然后除以项目的数量。
correct: (1 + 2 + 3 + 4 + 5) / 5
= 15 / 5
= 3
或者,您可以应用除法和加法的分配性质,得到等价的表达式:
1/5 + 2/5 + 3/5 + 4/5 + 5/5
// Setup the list
Random rnd = new Random();
int amount = 1_000;
int valueUpperBound = 10;
ArrayList<Integer> values = new ArrayList<>();
for(int i = 0; i < amount; i++){
values.add(rnd.nextInt(valueUpperBound));
}
// Compute the average
double avg = values.stream()
.mapToInt(Integer::intValue)
.average()
.getAsDouble();
private double calculateAverage(List<Integer> values) {
Integer sum = 0;
if(!values.isEmpty()) {
for (Integer value : values) {
sum += value;
}
return sum.doubleValue() / values.size();
}
return sum;
}
我正在尝试使用用户输入将数字放入一个数组,然后找到这些数字的平均值,也找到哪些数字大于平均值。这些数字进入一个数组,但当我试图求平均数时,我无法求出平均数,以及哪些数字大于平均数,因为对于试图求出大于平均数的数字的部分,并非所有变量都是可见的。但是,当我允许这个部分看到所有的变量(don't But{}围绕某些部分)时,它会找到每一个数的平均值。现在,它为每个数字打印平均值,而为大于平均值的数字打
正如标题所述,我一直在寻找创建一个程序,将循环在一个文本/输入文件(的数字),然后继续寻找平均奇数和偶数出现在该文件中。 我目前已经成功地创建了如下图所示的结果,能够找到奇数的平均值。然而,我似乎不明白如何能够得到偶数的平均值。 我试着关闭扫描仪,打开另一个扫描仪,再做一段时间,如果else像下面这样循环,并且几乎尝试了相反的方法,那么其他尝试获得偶数平均值的尝试结果是输出为NaN、0或有时停留在
问题内容: 我必须在Python中找到列表的平均值。到目前为止,这是我的代码 我已经知道了,所以它可以将列表中的值相加,但是我不知道如何将其划分为它们? 问题答案: 在Python 3.4+上,你可以使用 statistics.mean() 在旧版本的Python上,你可以执行 在Python 2上,你需要转换len为浮点数才能进行浮点数除法 无需使用。它慢得多,并已在Python 3 中删除。
我一直在寻找,没有找到一个简单的问题和答案堆栈溢出寻找一个数组的平均值。 这是我的阵列 我最初以为这个问题的答案是这样的: 然而,这给了我一个NaN的输出。 然后我尝试了这个: 这给了我68的输出。(我不知道为什么)。 所以我有两个问题。1。为什么我的输出是68?和2。有人能帮我找到数组的平均值吗?
问题内容: 我有一个大小为N *M的矩阵,我想找到每一行的平均值。值是从1到5,并且没有任何值的条目设置为0。但是,当我想使用以下方法查找均值时,它给了我错误的均值,因为它还计算了具有值的条目0。 如何获得仅非零值的均值? 问题答案: 获取每一行的非零计数,并将其用于平均每一行的总和。因此,实现看起来像这样- 如果您使用的是较旧版本的NumPy,则可以使用count的float转换来替换,例如,
我有3个非常大的有符号整数。 我想计算它们的截断平均值。预期平均值是,即。 不可能计算为: 注:我读了所有关于2个数字的平均值的问题,但我不知道该技术如何应用于3个数字的平均值。 使用BigInteger将非常容易,但假设我不能使用它。 如果我转换为双精度,那么,当然,我会失去精度: 如果我转换为,它可以工作,但也让我们假设我不能使用它。 问题:有没有一种方法可以仅使用长类型来计算3个非常大整数的