abonnement Unibet Coolblue Bitvavo
pi_83920564
quote:
Op zondag 11 juli 2010 11:07 schreef Diabox het volgende:
Uiteraard werkt het nog niet in de constructor, je scherm heeft dan in principe nog geen hoogte of breedte, want je venster bestaat nog niet.
Aaaaah
Die eerste 'if' was alleen om te testen hoe dat or precies werkte, en aan die += notatie moet ik idd nog wennen...
dus... aparte method maken dan maar...
Finally, someone let me out of my cage
pi_83978265
sorry als ik iemand irriteer met mijn vragen, maar het boek dat ik heb zuigt nogal, en ik weet niet echt hoe ik het anders te weten zou kunnen komen (google biedt ook geen uitkomst)...
Ik wil een string declareren in mijn klasse (het is dus een field), maar op de korte manier creëren:
String[] dagen = {"ma", "di", "wo", "do", "vr", "za", "zo"};
Probleem is dat, als ik deze code gebruik, de variable gelijk ook gedeclareerd wordt, waarbij deze in de plaats komt van het field dagen...
Finally, someone let me out of my cage
pi_83978767
Ik snap ik je probleem denk ik niet ?
  maandag 12 juli 2010 @ 22:49:46 #94
118585 Crutch
Filantroop || Taalzwengel
pi_83979198
quote:
Op maandag 12 juli 2010 22:30 schreef minibeer het volgende:
sorry als ik iemand irriteer met mijn vragen, maar het boek dat ik heb zuigt nogal, en ik weet niet echt hoe ik het anders te weten zou kunnen komen (google biedt ook geen uitkomst)...
Ik wil een string declareren in mijn klasse (het is dus een field), maar op de korte manier creëren:
String[] dagen = {"ma", "di", "wo", "do", "vr", "za", "zo"};
Probleem is dat, als ik deze code gebruik, de variable gelijk ook gedeclareerd wordt, waarbij deze in de plaats komt van het field dagen...
Ik snap je probleem niet, je roept ze toch gewoon aan met dagen[0] of dagen[1] of dagen[2] etc?
Je moeder is een hamster
pi_83980300
quote:
Op maandag 12 juli 2010 22:49 schreef Crutch het volgende:

[..]

Ik snap je probleem niet, je roept ze toch gewoon aan met dagen[0] of dagen[1] of dagen[2] etc?
Het aanroepen is ook geen probleem, ik ben alleen zo lui dat ik per se de kortere notatie wil gebruiken:
String[] dagen = {"ma", "di", "wo", "do", "vr", "za", "zo"};
ipv:
dagen[0] = "ma";
dagen[1] = "di";
etc...

maar met de verkorte versie declareer je ook gelijk de array dagen, waardoor, als je die verkorte notatie binnen een method gebruikt, de array opnieuw aangemaakt wordt, wat ik dus niet wil.
Blijkbaar moet je dan die array ook maar buiten de method creëren en initialiseren... (dus String[] dagen = {"ma", "di", "wo", "do", "vr", "za", "zo"}; gewoon helemaal buiten de method zetten)
Finally, someone let me out of my cage
  maandag 12 juli 2010 @ 23:14:07 #96
118585 Crutch
Filantroop || Taalzwengel
pi_83980499
quote:
Op maandag 12 juli 2010 23:10 schreef minibeer het volgende:

[..]

Het aanroepen is ook geen probleem, ik ben alleen zo lui dat ik per se de kortere notatie wil gebruiken:
String[] dagen = {"ma", "di", "wo", "do", "vr", "za", "zo"};
ipv:
dagen[0] = "ma";
dagen[1] = "di";
etc...

maar met de verkorte versie declareer je ook gelijk de array dagen, waardoor, als je die verkorte notatie binnen een method gebruikt, de array opnieuw aangemaakt wordt, wat ik dus niet wil.
Blijkbaar moet je dan die array ook maar buiten de method creëren en initialiseren... (dus String[] dagen = {"ma", "di", "wo", "do", "vr", "za", "zo"}; gewoon helemaal buiten de method zetten)
Dat is zowieso verstandig met al je vars tenzij je ze alleen in je method nodig hebt.
Je moeder is een hamster
pi_83983743
quote:
Op maandag 12 juli 2010 23:14 schreef Crutch het volgende:

[..]

Dat is zowieso verstandig met al je vars tenzij je ze alleen in je method nodig hebt.
das waar, maar je kan deze notatie dus niet binnen je method gebruiken voor een field? Ik kan me namelijk wel voorbeelden bedenken waarin dat handiger zou zijn...
Anyway, nog best lastige taal met al dat OOP-gedoe, en al die klassen en packages... maargoed het lukt wel steeds beter allemaal...
En bedankt voor de hulp trouwens
Finally, someone let me out of my cage
pi_86436336
Help, ik kom er niet uit :{

Mijn huidige code ziet er zo uit:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
public static int getNrOfUniqValues(int[] collection) { 
        int doubles = 0;

        for (int x = 0; x < collection.length; x++) {
            for (int y = 0; y < collection.length; y++) {
                if (x != y) {
                    if (collection[x] == collection[y]) {
                        doubles++;
                    }
                }
            }
        }

        System.out.println("\nOPDRACHT D");
        System.out.println("Het aantal dubbele getallen in het array is: " + doubles);
        System.out.println("Dus het aantal verschillende getallen zijn: " + (collection.length - doubles));
        return doubles;
    }
De grap is, ik moet het aantal dubbele waarden tellen en weergeven, want ik laat er een MainTest.java overheen gaan, en die zegt: FAILED, expected <5> but was <4>
Ik kan er gewoon met me kop niet bij hoe ik dat het beste kan aanpakken (chaos in het hoofd, jottem!)

code uit test file:
1
2
3
4
5
6
7
8
9
10
11
@Test
    public void getNrOfUniqValues() {
        System.out.println("getNrOfUniqValues");
        for (int test = 0; test < NR_TESTS; test++) {
            int[] arr = testArrays[test];
            int expResult = testResults[test][UNIQCOUNT];
            int result = Main.getNrOfUniqValues(arr); // TODO: change it for your project
            System.out.println("test "+test + " expect "+expResult + " result "+result);
            assertEquals(expResult, result);
        }   
    }
Array initialisatie test file:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
public class MainTest {   
    int [][] testArrays = {{ -99, -1, 0, 2, 2, -99, 10 }, //{ -99, -1, 0, 2, 2, -99, 10 },
                           {  },
                           { -3000, -200 }, //{ -3000, -200 }
                           { 0, 0, 0 }, //
                           { 3, 3000, 3000 }}; //
    // antwoorden opgaven a..f per testArray
    // excercise indexes 0..5
    final int POS=0, SUMPOS=1, BIGNUMCOUNT=2, UNIQCOUNT=3, HASDUPS=4, BIGGERNUMS=5;     
    // positives, sum, #biggestnum, #uniqs, hasduplicates, #biggerthanbefore
    int [][] testResults = {{ 3,    14,     1,  5,  1,  5 }, // testarray[0]
                           {  0,    0,      0,  0,  0,  0 },
                           {  0,    0,      1,  2,  0,  2 },
                           {  0,    0,      3,  1,  1,  1 },
                           {  3,    6003,  2,  2,  1,  2 }};
    int NR_TESTS = testArrays.length;          
Kan iemand hier een lichtje op schijnen? :)
Hoi, ik ben robuust89 en ik ben nieuw!
pi_86444607
Waarom doe je if(x != y)?
pi_86444731
quote:
Op dinsdag 14 september 2010 22:58 schreef SinofEnvy het volgende:
Waarom doe je if(x != y)?
Omdat ie toch het ene getal met het andere getal wil vergelijken van z'n collection? :') Als x == y, dan is ie uiteraard identiek :')
pi_86444936
-edit: hihi grapje verkeerd gelezen ik dacht dat je 2 collections had :*-
pi_86445031
quote:
Op dinsdag 14 september 2010 23:05 schreef SinofEnvy het volgende:
-edit: hihi grapje verkeerd gelezen ik dacht dat je 2 collections had :*-
Ha, homo. :(
pi_86726084
quote:
Op dinsdag 14 september 2010 20:17 schreef robuust89 het volgende:
Help, ik kom er niet uit :{

Mijn huidige code ziet er zo uit:
[ code verwijderd ]

De grap is, ik moet het aantal dubbele waarden tellen en weergeven, want ik laat er een MainTest.java overheen gaan, en die zegt: FAILED, expected <5> but was <4>
Ik kan er gewoon met me kop niet bij hoe ik dat het beste kan aanpakken (chaos in het hoofd, jottem!)

code uit test file:
[ code verwijderd ]

Array initialisatie test file:
[ code verwijderd ]

Kan iemand hier een lichtje op schijnen? :)
Hmm... wellicht heb je je probleem zelf opgelost, maar bij deze toch nog mijn bijdrage :).

Jouw code telt het aantal paren i,j met i != j waarvoor geldt collection[i] == collection[j]. Als er nu n dezelfde getallen in het array zitten geeft dit een totale bijdrage van n*(n-1) aan je variable 'doubles'. Jouw methode kan dus zelfs een negatief getal teruggeven :).
Elk groepje van n wil je precies een keer tellen. Dat zou je bijvoorbeeld kunnen doen door alleen het eerst voorkomende element te tellen. In pseudo code
1
2
3
4
5
6
7
int unique = 0;
for ( int i = 0; i < collection.length; i++) {
  boolean isFirstElement = true;
  for ( int j = 0; j < i; j++) isFirstElement &= collection[j] != collection[i]
  if ( isFirstElement ) unique++;
}
return unique;
De benodigde rekentijd voor dit algoritme is O(n^2) (n = collection.length). Dit kun je verbeteren naar O(n*log(n)) door eerst te sorteren en dan het element met zijn voorganger vergelijken. Nog nerdier is om de waarden in een hashmap op te slaan als je over het array loopt. En als je geen flauw idee hebt waar het voorgaande gewauwel over gaat is het leuk om de verschillende algoritmen op een array van zo'n 100000 elementen toe te passen. Oh, en je kunt je er natuurlijk ook heel makkelijk van af maken door een ingebouwde java collectie te gebruiken: java.util.TreeSet.
pi_86727002
quote:
Als er nu n dezelfde getallen in het array zitten geeft dit een totale bijdrage van n*(n-1) aan je variable 'doubles'. Jouw methode kan dus zelfs een negatief getal teruggeven
Hoe dan :P?
pi_86731726
quote:
Op woensdag 22 september 2010 21:05 schreef Diabox het volgende:

[..]

Hoe dan :P?
Ah, ik zie dat ik iets te enthousiast ben geweest. De methode zelf zal niet zo snel een negatief getal terug geven, maar de volgende regel drukt wel iets negatiefs af als bijvoorbeeld de invoer 10 dezelfde getallen is (-80 als ik goed gerekend heb).
1System.out.println("Dus het aantal verschillende getallen zijn: " + (collection.length - doubles));
Het is wel mogelijk om integer overflow te krijgen. Als je n dezelfde getallen hebt, is het antwoord n*(n-1). Het grootste integer is iets van 2.18 miljard. Als je dus bijvoorbeeld n = 50000 kiest, ga je over die limiet heen.
pi_86742285
quote:
Op woensdag 22 september 2010 20:47 schreef Wolfje het volgende:

[..]

Hmm... wellicht heb je je probleem zelf opgelost, maar bij deze toch nog mijn bijdrage :).

Jouw code telt het aantal paren i,j met i != j waarvoor geldt collection[i] == collection[j]. Als er nu n dezelfde getallen in het array zitten geeft dit een totale bijdrage van n*(n-1) aan je variable 'doubles'. Jouw methode kan dus zelfs een negatief getal teruggeven :).
Elk groepje van n wil je precies een keer tellen. Dat zou je bijvoorbeeld kunnen doen door alleen het eerst voorkomende element te tellen. In pseudo code
[ code verwijderd ]

De benodigde rekentijd voor dit algoritme is O(n^2) (n = collection.length). Dit kun je verbeteren naar O(n*log(n)) door eerst te sorteren en dan het element met zijn voorganger vergelijken. Nog nerdier is om de waarden in een hashmap op te slaan als je over het array loopt. En als je geen flauw idee hebt waar het voorgaande gewauwel over gaat is het leuk om de verschillende algoritmen op een array van zo'n 100000 elementen toe te passen. Oh, en je kunt je er natuurlijk ook heel makkelijk van af maken door een ingebouwde java collectie te gebruiken: java.util.TreeSet.
Held! Ik ben je eeuwig dankbaar _O_ :P Ik had idd lopen kutten met de hashmap, maar dat ging helemaal niet :')
Hoi, ik ben robuust89 en ik ben nieuw!
  donderdag 21 oktober 2010 @ 14:26:13 #107
118585 Crutch
Filantroop || Taalzwengel
pi_87792857
Ik snap er niks van; ik kan geen JDK voor Mac vinden. :?

Heb Netbeans geinstalleerd maar vindt de libraries niet.
Je moeder is een hamster
  donderdag 21 oktober 2010 @ 15:06:41 #108
118585 Crutch
Filantroop || Taalzwengel
pi_87794351
Nevermind, hij vond de Javadocs niet, die kon ik natuurlijk gewoon daownloaden bij Sun. :')
Je moeder is een hamster
pi_88146144
Wat is de grootste Variabele die je kan gebruiken voor getallen? de allergrootste?
ik zoek namelijk een manier om een gigantisch groot getal uit te rekenen :).
iemand tips ^^?

met double kreeg ik al bij de 2e poging;

Programma gestart.
Graham deel:0 :4
Graham deel:1 :4.434264882430415E38
Graham deel:2 :Infinity

ja ik wou eens kijken of ik het getal graham kon uitrekenen, daarvoor heb je toch computers ;)?
Redacted
pi_88147589
quote:
1s.gif Op zaterdag 30 oktober 2010 17:48 schreef cablegunmaster het volgende:
Wat is de grootste Variabele die je kan gebruiken voor getallen? de allergrootste?
ik zoek namelijk een manier om een gigantisch groot getal uit te rekenen :).
iemand tips ^^?

met double kreeg ik al bij de 2e poging;

Programma gestart.
Graham deel:0 :4
Graham deel:1 :4.434264882430415E38
Graham deel:2 :Infinity

ja ik wou eens kijken of ik het getal graham kon uitrekenen, daarvoor heb je toch computers ;)?
Toevallig zat ik daar laatst ook eens aan te denken. Het moet mogelijk zijn om dmv klassen zelf zo'n ding te maken. Ik vraag me alleen af of het dan mogelijk is om een heel groot getal toe te wijzen aan zo'n object/struct. Volgens mij als je de operator = gebruikt, converteert de compiler het getal rechts van = eerst naar een int ofzo, en daarvoor is het dus te groot.
Finally, someone let me out of my cage
pi_88147766
quote:
1s.gif Op zaterdag 30 oktober 2010 18:40 schreef minibeer het volgende:

[..]

Toevallig zat ik daar laatst ook eens aan te denken. Het moet mogelijk zijn om dmv klassen zelf zo'n ding te maken. Ik vraag me alleen af of het dan mogelijk is om een heel groot getal toe te wijzen aan zo'n object/struct. Volgens mij als je de operator = gebruikt, converteert de compiler het getal rechts van = eerst naar een int ofzo, en daarvoor is het dus te groot.
welke programmeer code gebruik jij? toch hopelijk niet PHP?
want Java kan je doubles en andere ongein gebruiken als je het maar google :). voor gebruikt.
van te voren aan geven wat alles is.

zit nu alleen met het probleem dat ik geen machten meer kan gebruiken :') en dus mijn eigen macht methode moet schrijven die redelijk omslachtig is.

ik mag ook geen While gebruiken omdat het formaat dat ik gebruik het niet toestaat :')!
terug transformeren naar int zal mijn getal verneuken. :( dus iemand een oplossing :)?

[ Bericht 15% gewijzigd door cablegunmaster op 30-10-2010 19:19:02 ]
Redacted
pi_88149140
quote:
1s.gif Op zaterdag 30 oktober 2010 18:45 schreef cablegunmaster het volgende:[/b]

[..]



welke programmeer code gebruik jij? toch hopelijk niet PHP?
want Java kan je doubles en andere ongein gebruiken als je het maar google :). voor gebruikt.
van te voren aan geven wat alles is.

zit nu alleen met het probleem dat ik geen machten meer kan gebruiken :') en dus mijn eigen macht methode moet schrijven die redelijk omslachtig is.

ik mag ook geen While gebruiken omdat het formaat dat ik gebruik het niet toestaat :')!
terug transformeren naar int zal mijn getal verneuken. :( dus iemand een oplossing :)?
ik gebruik c# nu, maar dat maakt volgens mij niet zoveel uit
in mijn geval wilde ik een klasse hebben voor hele getallen, en volgens mij wordt (ook in java) een getal dat geen punt bevat automatisch geconverteerd naar een int.
ik wil dus eigenlijk een klasse die zo werkt:
1
2
Grootgetal g;
g = 13524653638638024590356899;
maar dat kan dus geloof ik niet omdat het getal rechts dan te groot is om naar een int te converteren.
Finally, someone let me out of my cage
pi_88150091
quote:
1s.gif Op zaterdag 30 oktober 2010 19:30 schreef minibeer het volgende:

[..]

ik gebruik c# nu, maar dat maakt volgens mij niet zoveel uit
in mijn geval wilde ik een klasse hebben voor hele getallen, en volgens mij wordt (ook in java) een getal dat geen punt bevat automatisch geconverteerd naar een int.
ik wil dus eigenlijk een klasse die zo werkt:
[ code verwijderd ]

maar dat kan dus geloof ik niet omdat het getal rechts dan te groot is om naar een int te converteren.
in java had ik er 1 die heette BigDecimal kon heerlijk grootte getallen bevatten alleen toen raakte ik mijn while kwijt. en nu zit ik verhoop dat te implementeren. krijg nu heerlijk een fout terwijl ik weet dat ik het goed doe (zal ook wel niet pc heeft gelijk ) . doe ik het toch fout :).
Redacted
pi_88152209
quote:
1s.gif Op zaterdag 30 oktober 2010 19:30 schreef minibeer het volgende:

[..]

ik gebruik c# nu, maar dat maakt volgens mij niet zoveel uit
in mijn geval wilde ik een klasse hebben voor hele getallen, en volgens mij wordt (ook in java) een getal dat geen punt bevat automatisch geconverteerd naar een int.
ik wil dus eigenlijk een klasse die zo werkt:
[ code verwijderd ]

maar dat kan dus geloof ik niet omdat het getal rechts dan te groot is om naar een int te converteren.
het probleem bij mij is dat het getal niet uit te berekenen valt omdat mijn pc niet meer geheugen heeft _O-
Redacted
pi_88168953
quote:
1s.gif Op zaterdag 30 oktober 2010 18:45 schreef cablegunmaster het volgende:

[..]



welke programmeer code gebruik jij? toch hopelijk niet PHP?
want Java kan je doubles en andere ongein gebruiken als je het maar google :). voor gebruikt.
van te voren aan geven wat alles is.

zit nu alleen met het probleem dat ik geen machten meer kan gebruiken :') en dus mijn eigen macht methode moet schrijven die redelijk omslachtig is.

ik mag ook geen While gebruiken omdat het formaat dat ik gebruik het niet toestaat :')!
terug transformeren naar int zal mijn getal verneuken. :( dus iemand een oplossing :)?
In java heb je de klassen BigInteger en BigDecimal (in java.math) die allebei ook de macht van het getal kunnen uitrekenen (pow). Op wikipedia heb ik even gekeken naar dat Graham getal en het blijkt dat dat getal bijzonder hard zijn best doet om heel snel ontzettend groot te worden. Ik ben dus ook niet zo verbaasd dat zelfs een computer je hierbij niet echt kan helpen :).
abonnement Unibet Coolblue Bitvavo
Forum Opties
Forumhop:
Hop naar:
(afkorting, bv 'KLB')