#5 Kit
Tam mala byt ciarka za tym nie, sry. Hej napisal si to iste. Ja som len odpisoval lebo stale z toho bol zrejme zmateny.
#6 filip212
Ano, to je jeden sposob.
Dalsie su napr. (De)Serialization a reflection (za toto ta ziadny programator nepochvali), clone.
#1 Pavel
Vyuziti je vela, Kit dobre pripomenul "zabranis vzniku nevalidnych objektov". Okrem toho vies zabranit programatorovi instanciovaniu objektu priamo (zmneou accessoru, to je vhodne pri singletonoch, faktoriach, builderoch). Inicializovanie final fieldov. Vies objekt urobit immutable, vhodne pri multithreadingu. Vsetko co som napisal sa da zhrnut do jedneho slova "restrictions".
100 riadkov to je dost malo. To musi byt okamzite. Skusal si uz preindexovat polia v db. http://www.djangorocks.com/snippets/indexing-your-django-models.html
Btw. zoradenie pola je O(n log(n)) taketo prehladavanie je so zlozitostou O(n).
#10 Míša
Ako ti vravi KIIV:
class MinMaxNumber {
private int min = Integer.MAX_VALUE; // toto musi byt na zaciatku max
private int max = Integer.MIN_VALUE; // toto musi byt na zaciatku min
public void addNumber(int number) {
if ((1 - number % 2) % 2 == 0) { // vyhnutie sa pouzitiu Math.abs
min = Math.min(min, number);
}
if (number % 2 == 0) {
max = Math.max(max, number);
}
}
public int getMaxEvenNumber() {
return max;
}
public int getMinOddNumber() {
return min;
}
}
// niekde kde mas objekt butonu
private MinMaxNumber minmax = new MinMaxNumber();
//v handleri:
int number = ... // nacitas cislo
minmax.addNumber(number)
// niekde kde zobrazujes
minmax.getMinEvenNumber();
minmax.getMaxOddNumber();
ak sa ti to podari este nastavit ze min zacina ako parne (sude, even) cislo max zacina ako neparne (liche, odd) cislo, tak mozes overit ci je to co mas na vystupe korektny vysledok. Cize ak max zostane (odd) tak zrejme v nebolo zadane ziadne parne cislo inak by bolo max, to iste pre min.
Hmm to je troska problem, ale mozes checknut ci na danom riadku nie su ciarky co by znamenalo ze sa jedna o dalsie pole. Potom poterebujes zistit ci sa jedna o string, int, float alebo boolean to mozes bud regularnymi vyrazmi alebo try-exceptnut castnutie pomocou classov: bool(), float(), int(). Tu je problem hlavne v rozdiele medzi int a float, pouzil by som regex: \d+ => ide o int.
def read_file(file_name):
lines = []
with open(file_name) as f:
for line in f:
lines.append(cast(line))
def cast(value):
if is_array(line):
b = []
for v in value.split(','):
b.append(cast(v))
try:
b = bool(value)
except:
try:
if re.match(r'\d+', value): # treba upravit vstupny string mozno aj regex
b = int(value)
else:
b = float(value)
except:
b = value
return b
def is_array(line):
return ',' in line # ak sa nachadzaju ciarky ide o pole
Tento kod nie je kompletny, treba ho opravit. Ale myslienka tam je.
pouzivaj Lock a Condition na synchronizaciu, to sa potom riesi samo.
Ano. Rovnica kuzelosecky v kart. sur. Ax^2 + Bxy + Cy^2 + Dx + Ey + F = 0. http://en.wikipedia.org/wiki/Conic_section. Funkcia je definovana implicitne: http://en.wikipedia.org/wiki/Implicit_function
Prejdi si tutorial a potom dokumentaciu. Je priamo na strankach: https://docs.djangoproject.com/en/1.7/
#2 Kit
On asi myslel instanciu.
#1 SVKSuli
Predpokladam ze vies co je to konstruktor a settery. Ak nie tu je ukazka:
class Sample {
private int foo;
public Sample(int f) {
foo = f;
}
public int getFoo() {
return foo;
}
public void setFoo(int f) {
foo = f;
}
}
// A niekde v kode kde mas ten int a vytvaras objekt tak ho predas cez konstruktor:
int myInt = ...
Sample s = new Sample(myInt);
// Alebo ak mas objekt uz vytvoreny a chces v nom len nastavit int:
s.setFoo(myInt);
public class Sklep {
private Krabice[] krabice;
public Sklep(int pocetKrabic) {
krabice = new Krabice[pocetKrabic];
rnd = new Random();
}
void rozmistiNahodne() {
Random random = new Random();
// Krabice[] choices = Krabice.values();
for (int i = 0; i <= krabice.lenght; i++) {
krabice[i] = Krabice.CHOICES(random.nextInt(CHOICES.size()));
// staci aj values()
// krabice[i] = choices[random.nextInt(choices.length)];
}
}
}
public enum Krabice {
CERVENA ,MODRA,ZELENA;
public static final List<Krabice> CHOICES = Collections.unmodifiableList(Arrays.asList(values()));
}
Na toto su cele api, preco to chces pisat na novo? Ak tak chces skus reflexiu. https://docs.oracle.com/javase/7/docs/api/ . Vytiahni si fieldy, zmen im acessibility a zapisuj do nich, alebo z nich citaj. Ale ako hovorim pisat si to sam je uplne zbytocne.
log_{a}(b) = log_{c}(b) / log_{c}(a) a teda aj ln(b)/ln(a) ak toto pouzijes mas vysledok. Staci za a a b dosadit to co tam patry a vysetrit.
a nepotrebuje GnuPlot este nejake dalsie atributy na spustenie? Inak v pythone je kniznica na vykreslovanie grafov `matplotlib`
YouTube API si skusal? https://developers.google.com/youtube/v3/live/code_samples/python
Neviem ci vobec pri floate ma zmysel c++, ked uz tak c+=1f. To co ti ten kod bude robit je ze 20 krat za sebou napise povedlo se lebo rozdiel je konstantny.
Predpokladam ze take ako: [g(h(x))]'_x = g'(h(x)) * h'(x) poznas tak to pouzi. f = exp, g = -7 tanh, h = -6x. G(x) = g(h(x)) => [f(G(x))]' = f'(G(x)) G'(x) = f'(g(h(x))) [g(h(x))]' = f'(g(h(x))) g'(h(x)) h'(x).