JAVA BigInteger, jaką liczbę maksymalnie pomieści
Ostatnio zmodyfikowano 2011-11-14 19:59
DejaVu |
» 2011-08-01 16:48:03 Nawet w bazach danych nie ma typu danych, który umożliwiałby wykonywanie obliczeń na liczbach dowolnej długości - po co coś takiego implementować? Do domowych zastosowań się to nie przyda :) |
|
markon Temat założony przez niniejszego użytkownika |
» 2011-08-01 17:00:34 mi tu chodzi bardziej o zadania algorytmiczne |
|
zot0 |
» 2011-11-14 19:59:46 Ja robiłem wyliczanie ilości mozliwych bindów pod wybraną ilością klawiszy w Javie 2 klawisze = 3 możliwe bindy 3 klawisze = 7 możliwych bindów itd. do 5 klawiszy dało się policzyć a co np dla 5000 klawiszy ? do tego użyłem własnie BigInteger. normalnie wyliczam z nich silnie mnoże dziele i odejmuje. zamieszczam kod służący do wyliczania Owych kombinacji: import javax.swing.*; import java.math.*; public class hx extends Object { public static void main (String args[]) { int k=0; System.out.println("Wyliczanie ilosci kombinacji"); String wejscie = JOptionPane.showInputDialog("Podaj ilosc elementow"); int n = Integer.parseInt(wejscie); BigInteger silnia = BigInteger.valueOf(1); BigInteger temp = BigInteger.valueOf(1); BigInteger wynik = BigInteger.valueOf(0); BigInteger N= BigInteger.valueOf(1); BigInteger K= BigInteger.valueOf(1); BigInteger NK= BigInteger.valueOf(1); System.out.println("Obliczanie prosze czekac!!!"); for (k=1;k<=n;k++) { silnia = BigInteger.valueOf(1); for(int i=1;i<=n;i++)/*silnia n*/ { silnia=silnia.multiply(BigInteger.valueOf(i)); } N=silnia; silnia = BigInteger.valueOf(1); for(int i=1;i<=k;i++)/*silnia k*/ { silnia=silnia.multiply(BigInteger.valueOf(i)); } K=silnia; silnia = BigInteger.valueOf(1); for(int i=1;i<=n-k;i++)/*silnia n-k*/ { silnia=silnia.multiply(BigInteger.valueOf(i)); } NK=silnia; temp = N.divide((K.multiply(NK))); wynik = wynik.add(temp); System.out.println("wyliczono "+ k+"/"+n); }
System.out.println("Ilosc kombinacji dla "+n+" wynosi "+wynik ); System.exit(0); }
}
Prosze o nie krytykowanie formy zapisu i braku optymalizacji (skracanie silni) gdyż jest to mój pierwszy program jaki zrobiłem w javie po Hello World. Tak więc jak widać Dzialania artmetyczne i logiczne da się spokojnie wykonywać tyle , że służa do tego odpowiednie metody. Co do ich wielkości myślę , że ile kto ma ramu tyle będzie mógł wypisać tych cyfr i wykonywać na nich działań. |
|
1 « 2 » |