Aaaaahquote: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.
Ik snap je probleem niet, je roept ze toch gewoon aan met dagen[0] of dagen[1] of dagen[2] etc?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...
Het aanroepen is ook geen probleem, ik ben alleen zo lui dat ik per se de kortere notatie wil gebruiken: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?
Dat is zowieso verstandig met al je vars tenzij je ze alleen in je method nodig hebt.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)
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...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.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | 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; } |
1 2 3 4 5 6 7 8 9 10 11 | 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); } } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | 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; |
Omdat ie toch het ene getal met het andere getal wil vergelijken van z'n collection?quote:
Ha, homo.quote:Op dinsdag 14 september 2010 23:05 schreef SinofEnvy het volgende:
-edit: hihi grapje verkeerd gelezen ik dacht dat je 2 collections had-
Hmm... wellicht heb je je probleem zelf opgelost, maar bij deze toch nog mijn bijdragequote: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?![]()
1 2 3 4 5 6 7 | 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; |
Hoe danquote: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
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).quote:
1 |
Held! Ik ben je eeuwig dankbaarquote: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.
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.quote: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?
welke programmeer code gebruik jij? toch hopelijk niet PHP?quote: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.
ik gebruik c# nu, maar dat maakt volgens mij niet zoveel uitquote: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 gebruikenen 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
?
1 2 | g = 13524653638638024590356899; |
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 foutquote: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 heeftquote: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 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 helpenquote: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 gebruikenen 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
?
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |