Kopiowanie po przerwie na poprawki
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package pierwsze;
/**
*
* @author student
*/
public class Sito {
int N;
byte T[];//=new byte[N];
int prime[];
public Sito(int N) {
//jest to konstruktor
this.N = N;
byte[] T = new byte[N];
//odsiewanie
for (int q = 2; q * q < N; q++) {
if (T[q] == 0) {
//wykreślamy krotności liczby pierwszej q
for (int k = q * q; k < N; k += q) {
T[k] = 1;
}
}
}
//koniec odsiewania
int ileP = 0;
for (int q = 2; q < N; q++)
if (T[q] == 0)
ileP++;
prime = new int[ileP];
//przepisywanie z T do pierwsze
int nrP = 0;
for (int q = 2; q < N; q++)
if (T[q] == 0) {
prime[nrP] = q;
nrP++;
}
// prime = getpierwsze();
T = null; //opróżniamy pamięć zarezerwowany dla tablicy
}
@Override
public String toString() {
StringBuilder s = new StringBuilder("Sito{" + "N=" + N + "}\n2");
// for (int q = 3; q < N; q++) {
// if (T[q] == 0) {
// s.append(',').append(q);
// s = s + ',' + q;
for (int i = 1; i < prime.length; i++)
s.append(',').append(prime[i]);
return s.toString();
}
public static void main(String[] args) {
Sito s100 = new Sito(100);
System.out.println(s100);
Sito s5M = new Sito(5000000);//konstruktor...
//System.out.println(s5M); - tracimy czas na tą funkcję
//uporządkujemy tablicę
int[] pierwsze5M = s5M.getpierwsze();
int ileLiczbP = pierwsze5M.length;//rozmiar tablicy
System.out.println("Znaleziono " + ileLiczbP + " liczb(y)");
for (int i = 0; i < ileLiczbP; i += 10000) {
System.out.printf("%8d: %8d\n", i, pierwsze5M[i]);
}
}
private int[] getpierwsze() {
// throw new UnsupportedOperationException("Not yet implemented");
// int[] pierwsze=null;
//ile znaleziono
return prime ;
}
}
Kolejne kroki podczas kolejnej przerwy
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package pierwsze;
/**
*
* @author student
*/
public class Sito {
private int N;
byte T[];//=new byte[N];
int prime[];
public Sito(int N) {
//jest to konstruktor
this.N = N;
byte[] T = new byte[N];
//odsiewanie
for (int q = 2; q * q < N; q++) {
if (T[q] == 0) {
//wykreślamy krotności liczby pierwszej q
for (int k = q * q; k < N; k += q) {
T[k] = 1;
}
}
}
//koniec odsiewania
int ileP = 0;
for (int q = 2; q < N; q++) {
if (T[q] == 0) {
ileP++;
}
}
prime = new int[ileP];
//przepisywanie z T do pierwsze
int nrP = 0;
for (int q = 2; q < N; q++) {
if (T[q] == 0) {
prime[nrP] = q;
nrP++;
}
}
// prime = getpierwsze();
T = null; //opróżniamy pamięć zarezerwowany dla tablicy
}
@Override
public String toString() {
StringBuilder s = new StringBuilder("Sito{" + "N=" + N + "}\n2");
// for (int q = 3; q < N; q++) {
// if (T[q] == 0) {
// s.append(',').append(q);
// s = s + ',' + q;
for (int i = 1; i < prime.length; i++) {
s.append(',').append(prime[i]);
}
return s.toString();
}
public static void main(String[] args) throws Exception {
Sito s100 = new Sito(100);
System.out.println(s100);
int pierwsze100[] = s100.getpierwsze();
pierwsze100[1] = 123456;
System.out.println(s100);
int n=1234;
System.out.println("Dzielnik liczby "+n+": ");
System.out.println(s100.minDzielnik(n));
Sito s5M = new Sito(500000);//konstruktor...
//System.out.println(s5M); - tracimy czas na tą funkcję
//uporządkujemy tablicę
int[] pierwsze5M = s5M.getpierwsze();
int ileLiczbP = pierwsze5M.length;//rozmiar tablicy
System.out.println("Znaleziono " + ileLiczbP + " liczb(y)");
for (int i = 0; i < ileLiczbP; i += 10000) {
System.out.printf("%8d: %8d\n", i, pierwsze5M[i]);
}
}
private int[] getpierwsze() {
// throw new UnsupportedOperationException("Not yet implemented");
int[] pierwsze = new int[prime.length];
System.arraycopy(prime, 0, pierwsze, 0, prime.length);
return pierwsze;
}
public int getIlośćP() {
return prime.length;
}
//napisać własną metodę, wynik->pojedyncza liczba całkowita getPierwszą
//n int
private int getPierwszaNr(int n) {
return prime[n];
}
public int minDzielnik(int n) throws Exception {
if (n < N * N) {
for (int i = 0; i < getIlośćP(); i++) {
if (n % prime[i] == 0) {
return prime[i];
}
}
return 1;
}
throw new Exception("Za duża liczba!!!");
}
}
Kolejna przerwa?
A to już do SieciBayesa
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package siecibayesa;
import java.util.Arrays;
import weka.classifiers.bayes.BayesNet;
import weka.core.Instances;
import weka.core.converters.ConverterUtils.DataSource;
/**
*
* @author student
*/
public class SieciBayesa {
/**
* @param args the command line arguments
*/
public static void main(String[] args) throws Exception {
Instances dane = DataSource.read(
"C:/Program Files (x86)/Weka-3-7/data/weather.nominal.arff");
System.out.println("dane:");
System.out.println(dane);
BayesNet bayesNet = new BayesNet();
System.out.println("\nSieć-bez danych:" + bayesNet);
//ustawic atrybut klasowy
dane.setClassIndex(4);
System.out.println("liczba instancji:" + dane.numInstances());
System.out.println("wiersz nr 5:" + dane.instance(5));
System.out.println("atrybuty:");
for (int i = 0; i < dane.numAttributes(); i++) {
System.out.println(dane.attribute(i).name());
}
System.out.println("Opcje:");
String[] opcje = bayesNet.getOptions();
for(String s:opcje)
System.out.println(s);
bayesNet.buildClassifier(dane);
System.out.println("\nSieć-z danymi:" + bayesNet);
//zajmujemy się wierszem nr 5
double[] rozkład = bayesNet.distributionForInstance(dane.instance(5));
System.out.println("Rozkład:"+Arrays.toString(rozkład));
}
}