Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

184
Views
How to get Random numbers to test math equation?

I have trouble with this equation: E * cotangent((q * E)/(k * t)) = nkT/q.

I'm looking for the values of E for the equality can be achieved knowing that: q and k are constants, t and n are variables.
For that I tried this code but apparently is failed:

public class Equation {
    public static double q = 1.6E-19;
    public static double k = 1.38E-23;

    //double y = E * 1/Math.tan(E*q/k*t);
    //DecimalFormat df = new DecimalFormat("#.#####");
    public static double[] nktq = new double[]{0.02857,0.02674,0.03118,0.02829,0.02976,0.02898,0.03001,0.02953,0.032};
    public static double[] t = new double[]{80,100,150,200,250,280,300,320,350};
    public static double[] n = new double[]{4.14,3.1,2.41,1.64,1.38,1.20,1.16,1.07,1.06};
    private static DecimalFormat df2 = new DecimalFormat(".##");

    public static double genE(){
       double start = 0;
       double end = 30;
       double random = new Random().nextDouble();
       // DecimalFormat df = new DecimalFormat("#.##");
       // df.setRoundingMode(RoundingMode.FLOOR);
        double E = start + (random * (end - start));

        //double E = new Double(df.format(result));
        System.out.println(df2.format(E));
    return E;
    }



    public static void main(String[] args) {
        //double y = E * 1/Math.tan(E*q/k*t);
        //DecimalFormat df = new DecimalFormat("#.#####")
        double E = 0;
        while ( Math.round(E *  1/Math.tan((q * E)/(k * t[0]))*100000)!= nktq[0]){
             genE();
        }
    } 
}

Any help is appreciated!

over 4 years ago · Santiago Trujillo
1 answers
Answer question

0

You create a new Random instance for each value. That's wrong.

Here's what I'd recommend you try:

public class Equation {
    private Random random;

    public Equation() { this(null); }

    public Equation(Long seed) {
        this.random = (seed == null) ? new Random() : new Random(seed.longValue());
    }

    public double nextConst() { return this.random.nextDouble(); }

    public double nextConst(double start, double end) {
        return start + (end-start)*this.random.nextDouble();
    }

    // Add the rest of your stuff here.
}
over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!