abonnement Unibet Coolblue Bitvavo
pi_115335457
Daar ga ik een keer naar kijken. Bedankt!

Op zich heb ik wel veel geleerd van vectors ondertussen (ook de beperkingen ervan), dus ik zie het niet als verspilde tijd.

Mijn doel is gewoon om een beetje handig met C++ te worden, totdat ik genoeg vertrouwen in mezelf heb om een wat groter project te starten. Uiteindelijk wil ik een app maken die de kortste route tussen een paar punten vindt, daar een plaatje van maakt, en dat alles in een mooie GUI die ik gemaakt heb met Qt. Dat plaatje zal ook nog erg lastig worden denk ik.
pi_115343133
quote:
0s.gif Op woensdag 8 augustus 2012 22:58 schreef thenxero het volgende:

Dat is vast niet zo leerzaam als dit geklooi :)
Ik heb altijd een class willen maken voor grote integers.
Wil je mee helpen? :P

Heb je git?
pi_115343311
Weet iemand hoe de overflow kan opvangen met C++?
In amd64 kan je gewoon 2 registers gebruiken op resultaat op te slaan.

Je kan het natuurlijk met een int en long int doen, maar long int hoeft niet groter te zijn dan int.
(long long ook niet)
pi_115344266
quote:
0s.gif Op donderdag 9 augustus 2012 17:23 schreef t4rt4rus het volgende:
Weet iemand hoe de overflow kan opvangen met C++?
In amd64 kan je gewoon 2 registers gebruiken op resultaat op te slaan.

Je kan het natuurlijk met een int en long int doen, maar long int hoeft niet groter te zijn dan int.
(long long ook niet)
Overflow kan je niet opvangen in C++ en is ook moeilijk te detecteren. Je enige optie is zorgen dat het niet gebeurt.
"Slechts diegene mag slopen die iets beters kan bouwen."
pi_115344300
quote:
0s.gif Op donderdag 9 augustus 2012 17:52 schreef GS42 het volgende:

[..]

Overflow kan je niet opvangen in C++ en is ook moeilijk te detecteren. Je enige optie is zorgen dat het niet gebeurt.
Maar is er ook zo iets als RDX:RAX <- RAX * r/m64?
pi_115345252
quote:
0s.gif Op donderdag 9 augustus 2012 17:53 schreef t4rt4rus het volgende:

[..]

Maar is er ook zo iets als RDX:RAX <- RAX * r/m64?
Dat is natuurlijk heel erg processor-afhankelijk, dus het lijkt me sterk dat zoiets native in een taal als C++ zit. Als je een echt efficiënte library voor grote getallen wilt maken, zul je sowieso veel assembly code erbij moeten doen.
pi_115346392
quote:
while(!(k==a.rend()) && !(l==b.rend()))
Wat als je vectoren niet even lang zijn?

quote:
if(*k>9 && !(k==b.rend()))
Kan k==b.rend() uberhaupt op dit punt?

quote:
*(++k)++;
Cute, maar nu lopen je iterators niet gelijk en dus..?

quote:
b.insert(b.begin(),1);
b?

Ook is t waar dat dit de iterator invalideert, maar is dat erg in deze toepassing? Afhankelijk van je while conditie wel (in de huidige ook), maar bedenk i.h.a. ook dat insert weer een (valide) iterator teruggeeft.
More oneness, less categories
Open hearts, no strategies
Decisions based upon faith and not fear
People who live right now and right here
pi_115346399
quote:
0s.gif Op donderdag 9 augustus 2012 18:29 schreef thabit het volgende:

[..]

Dat is natuurlijk heel erg processor-afhankelijk, dus het lijkt me sterk dat zoiets native in een taal als C++ zit. Als je een echt efficiënte library voor grote getallen wilt maken, zul je sowieso veel assembly code erbij moeten doen.
Ja dacht ik al. Nouja kan wel inline asm gebruiken. :D
pi_115348932
quote:
0s.gif Op donderdag 9 augustus 2012 17:23 schreef t4rt4rus het volgende:
Weet iemand hoe de overflow kan opvangen met C++?
In amd64 kan je gewoon 2 registers gebruiken op resultaat op te slaan.

Je kan het natuurlijk met een int en long int doen, maar long int hoeft niet groter te zijn dan int.
(long long ook niet)
Alleen als een gewone int al 64-bits is. Het is een beetje vreemd dat je richting intrinsics/assembler gaat omdat je rekening wilt houden met zo'n (currently) outlandish mogelijkheid.
More oneness, less categories
Open hearts, no strategies
Decisions based upon faith and not fear
People who live right now and right here
pi_115351112
quote:
0s.gif Op donderdag 9 augustus 2012 13:38 schreef thenxero het volgende:
Een nieuwe poging vectors bij elkaar op te tellen alsof het getallen zijn. Dus bijvoorbeeld, als
a = {9, 8, 6, 4}
b = {9, 6, 7}

Dan wil ik dat de functie add(a,b) ervoor zorgt dat b = {1, 0, 8, 3, 1}. De functie moet in ieder geval werken voor vectors b die minstens even lang zijn als a. De moeilijkheid zit hem in de verschillende lengtes van de vector. Volgens mij is dit de beste methode om daarmee om te gaan, alleen krijg ik nog wat errors waar ik geen touw aan vast kan knopen.
Ik zou de vector::resize method gebruiken om de vectoren groot genoeg te maken. Dat scheelt je weer wat if statements waardoor je code eenvoudiger wordt en je minder snel bugs krijgt.
pi_115352907
quote:
3s.gif Op donderdag 9 augustus 2012 20:10 schreef trancethrust het volgende:

[..]

Alleen als een gewone int al 64-bits is. Het is een beetje vreemd dat je richting intrinsics/assembler gaat omdat je rekening wilt houden met zo'n (currently) outlandish mogelijkheid.
Ik kan natuurlijk ook gewoon u_int64, u_int32 gebruiken etc.
Maar met asm kan ik 128 bit als opslag gebruiken...
pi_115355669
quote:
3s.gif Op donderdag 9 augustus 2012 20:10 schreef trancethrust het volgende:

[..]

Alleen als een gewone int al 64-bits is. Het is een beetje vreemd dat je richting intrinsics/assembler gaat omdat je rekening wilt houden met zo'n (currently) outlandish mogelijkheid.
Net even gechecked en int is 32bit, long en long long zijn 64bit.
size_t is ook 64bit.
pi_115358783
quote:
0s.gif Op donderdag 9 augustus 2012 21:57 schreef t4rt4rus het volgende:

[..]

Net even gechecked en int is 32bit, long en long long zijn 64bit.
size_t is ook 64bit.
Dat hangt helemaal van je architectuur af. Zou je dit soort dingen ook echt aannemen in je code, dan kunnen andere mensen het dus niet gebruiken.
pi_115360511
quote:
0s.gif Op donderdag 9 augustus 2012 17:17 schreef t4rt4rus het volgende:

[..]

Ik heb altijd een class willen maken voor grote integers.
Wil je mee helpen? :P

Heb je git?
Klinkt wel leuk, maar ik weet niet of je veel aan me hebt :P
pi_115360723
quote:
0s.gif Op donderdag 9 augustus 2012 22:34 schreef thabit het volgende:

[..]

Dat hangt helemaal van je architectuur af. Zou je dit soort dingen ook echt aannemen in je code, dan kunnen andere mensen het dus niet gebruiken.
Ja daar zit het probleem dus... :P
pi_115361266
quote:
0s.gif Op donderdag 9 augustus 2012 23:08 schreef t4rt4rus het volgende:

[..]

Ja daar zit het probleem dus... :P
Het punt is dat assembler ook compleet van je architectuur afhangt; dat is als zodanig ook niet echt een oplossing.
Ook is een truc om toch maar 128-bits precisie te gebruiken voor detectie eigenlijk uitstel van executie; wat als je dan toch ook maar met 128-bits waarden wilt gaan werken, als het toch kan? Je blijft bezig.

Ik zou dan ook per applicatie bekijken of overflows daadwerkelijk problemen geven; als je enige operatie een telkens 1 optellen is, dan is een i == static_cast< unsigned int >( -1 ) genoeg om overflow te detecteren. Als het twee ints optellen is, dan hoef je alleen iets speciaals te doen als een van de getallen de 32e meest significante bit heeft gezet. Als je RNGs aan het maken bent en je hebt elk stukje performance nodig, dan kijk je naar Schrage's truc; enzovoorts.
More oneness, less categories
Open hearts, no strategies
Decisions based upon faith and not fear
People who live right now and right here
pi_115388507
Kan ik niet gewoon __int128 gebruiken?
pi_115390333
edit:
Het werkt :)

1
2
3
4
5
uint64_t x, y;
unsigned __int128 z;

x = y = 0xffffffffffffffff;
z = static_cast<unsigned __int128>(x) * y;
pi_115391921
Sure, maar het is niet ANSI en het blijft uitstel van executie in de zin van hierboven.
More oneness, less categories
Open hearts, no strategies
Decisions based upon faith and not fear
People who live right now and right here
pi_115394428
quote:
2s.gif Op vrijdag 10 augustus 2012 19:41 schreef trancethrust het volgende:
Sure, maar het is niet ANSI en het blijft uitstel van executie in de zin van hierboven.
Ja ik weet dat het geen ISO is.

Dus dan moet ik maar uint32_t en uint64_t gebruiken.
En dan met ifdef gaan werken.

Of is er een andere mogelijk om de grootste integer te krijgen en een integer die 2 keer zo klein is.
pi_115394791
quote:
0s.gif Op vrijdag 10 augustus 2012 20:45 schreef t4rt4rus het volgende:

Of is er een andere mogelijk om de grootste integer te krijgen en een integer die 2 keer zo klein is.
Voor mijn arbitrary precision integer implementatie heb ik een willekeurig unsigned integer-datatype genomen en daar alleen de onderste helft van de bits van gebruikt. Dat betekent dat de gebruiker vrij is de snelste int voor zijn compiler/platform te gebruiken en dat het automatisch meegroeit als de ints ook groter worden.

Het is zonde om je zo vast te zetten op een bepaalde grootte int.
"Slechts diegene mag slopen die iets beters kan bouwen."
pi_115395072
quote:
0s.gif Op vrijdag 10 augustus 2012 20:53 schreef GS42 het volgende:

[..]

Voor mijn arbitrary precision integer implementatie heb ik een willekeurig unsigned integer-datatype genomen en daar alleen de onderste helft van de bits van gebruikt. Dat betekent dat de gebruiker vrij is de snelste int voor zijn compiler/platform te gebruiken en dat het automatisch meegroeit als de ints ook groter worden.

Het is zonde om je zo vast te zetten op een bepaalde grootte int.
Ja ik wil ook niet vast zitten op een bepaalde grootte.
Jij zegt zelf dat je een willekeurige gebruikt, maar hoe weet je dat je dat onderste helft van de bits gebruikt?
pi_115395858
quote:
Dat werkt, maar dan moet je dus wel voor een nieuw type een nieuwe template-specificatie maken etc.

quote:
Jij zegt zelf dat je een willekeurige gebruikt, maar hoe weet je dat je dat onderste helft van de bits gebruikt?
De onderste helft is sizeof(Type) * 4 bits en de maximale waarde is dus 2^(sizeof(Type) * 4). Zolang je daaronder zit, zit je veilig. Als je daar overheen gaat (of het raakt), schuif je de overflow naar het volgende getal.
"Slechts diegene mag slopen die iets beters kan bouwen."
pi_115425758
Heb net PE probleem 67 opgelost, met die triangle met 100 rijen aan getallen, waar je de maximale som moet berekenen van boven naar beneden. Binnen 40ms is mijn algoritme klaar :D .
pi_115435793
quote:
2s.gif Op woensdag 8 augustus 2012 22:56 schreef thabit het volgende:
Voor grote getallen zijn er libraries zoals MPIR.
Hoe gebruik je eigenlijk een non-standard library? Ik probeer deze nu te gebruiken, maar het lukt me niet eens om het te laden. Op google en in de manual kom ik alleen maar dingen tegen die ik niet snap of die ik niet wil.

Ik heb nu de library gedownload... en dan twee keer iets uitgepakt. Nu heb ik dus een hele berg aan bestandjes, waarvan ik geen idee heb wat ik er precies mee moet doen.
pi_115437569
Ga eerst op zoek naar een file genaamd README of INSTALL of iets dergelijks, en lees die.
pi_115438903
quote:
0s.gif Op zaterdag 11 augustus 2012 20:58 schreef thenxero het volgende:

Hoe gebruik je eigenlijk een non-standard library? Ik probeer deze nu te gebruiken, maar het lukt me niet eens om het te laden. Op google en in de manual kom ik alleen maar dingen tegen die ik niet snap of die ik niet wil.

Ik heb nu de library gedownload... en dan twee keer iets uitgepakt. Nu heb ik dus een hele berg aan bestandjes, waarvan ik geen idee heb wat ik er precies mee moet doen.
Op wat voor systeem zit je? Als je op Linux zit, dan zit zulke software wel in software manager (zoek bijvoorbeeld op GMP, de The GNU Multiple Precision Arithmetic Library; verreweg de snelste). Dan wordt alles goed voor je geinstalleerd.

Als je op Windows zit, is het installeren van zulke software meestal veel lastiger omdat je het veelal zelf moet compileren en installeren. Als je wilt, kan je ook mijn eigen verzameling van klassen proberen voor rekenen met grote getallen. Die is bijna klaar voor algemeen gebruik en hoeft niet geinstalleerd te worden. :P
"Slechts diegene mag slopen die iets beters kan bouwen."
pi_115442096
Aptitude install libgpm-dev

En succes
pi_115443515
quote:
0s.gif Op zaterdag 11 augustus 2012 21:33 schreef thabit het volgende:
Ga eerst op zoek naar een file genaamd README of INSTALL of iets dergelijks, en lees die.
Ja, maar die instructies kan ik niet volgen. Het is net alsof je ergens commando's moet invoeren, zoals:
1
2
3
    ./configure
    make
    make check
Maar hoe en waar is me een raadsel.
pi_115443546
quote:
1s.gif Op zaterdag 11 augustus 2012 22:49 schreef t4rt4rus het volgende:
Aptitude install libgpm-dev

En succes
Leuk dit soort codetaal maar dit zegt me niks
pi_115443568
quote:
0s.gif Op zaterdag 11 augustus 2012 23:15 schreef thenxero het volgende:

[..]

Ja, maar die instructies kan ik niet volgen. Het is net alsof je ergens commando's moet invoeren, zoals:
[ code verwijderd ]

Maar hoe en waar is me een raadsel.
Laat me raden: je hebt Windows?
pi_115443585
quote:
12s.gif Op zaterdag 11 augustus 2012 23:16 schreef thabit het volgende:

[..]

Laat me raden: je hebt Windows?
Ja
pi_115443692
Maar in een andere post zei je dat je gcc had. Hoe doe je dat dan met Windows?

Misschien zeg ik iets heel doms nu, ik ben een absolute Windows-n00b.
pi_115443794
quote:
0s.gif Op zaterdag 11 augustus 2012 23:19 schreef thabit het volgende:
Maar in een andere post zei je dat je gcc had. Hoe doe je dat dan met Windows?

Misschien zeg ik iets heel doms nu, ik ben een absolute Windows-n00b.
Bijvoorbeeld met MinGW of Cygwin, allebei een port van GCC naar Windows.
"Slechts diegene mag slopen die iets beters kan bouwen."
pi_115443802
quote:
0s.gif Op zaterdag 11 augustus 2012 23:19 schreef thabit het volgende:
Maar in een andere post zei je dat je gcc had. Hoe doe je dat dan met Windows?

Misschien zeg ik iets heel doms nu, ik ben een absolute Windows-n00b.
GNU GCC is de compiler die ik standaard krijg in code::blocks. Ik heb daar niks speciaals voor gedaan :P
pi_115444019
quote:
0s.gif Op zaterdag 11 augustus 2012 23:22 schreef GS42 het volgende:

[..]

Bijvoorbeeld met MinGW of Cygwin, allebei een port van GCC naar Windows.
MinGW ken ik niet, wel Cygwin. Cygwin heeft bij mijn weten geen 64-bits-ondersteuning. Heeft MinGW dat wel?
pi_115444223
quote:
0s.gif Op zaterdag 11 augustus 2012 23:27 schreef thabit het volgende:

MinGW ken ik niet, wel Cygwin. Cygwin heeft bij mijn weten geen 64-bits-ondersteuning. Heeft MinGW dat wel?
Volgens mij zijn er experimentele ports van de 64-bits compiler, maar het is niet gemakkelijk aan de praat te krijgen en je wordt er niet gelukkig van. Verder is het wel een mooi systeem en installeert het nu al standaard gcc4.7 (zonder std::thread though).
"Slechts diegene mag slopen die iets beters kan bouwen."
pi_115444597
Maar wat heeft dit voor een consequenties voor mij?

Of is er een andere vrij eenvoudige manier om met grote getallen om te gaan? Ik moet PE probleem 13 en 20 toch ook wel zonder non-standaard libraries kunnen oplossen?
pi_115444737
In PE komen natuurlijk vaak grote getallen voor, dus het is wel handig om er libraries voor te hebben. Niet alleen om te rekenen, maar ook voor factorisatie en zo. Aan de website van MPIR te zien, ondersteunt het wel Windows. Zijn er geen voorgecompileerde versies?
pi_115445030
quote:
0s.gif Op zaterdag 11 augustus 2012 23:40 schreef thenxero het volgende:
Maar wat heeft dit voor een consequenties voor mij?

Of is er een andere vrij eenvoudige manier om met grote getallen om te gaan? Ik moet PE probleem 13 en 20 toch ook wel zonder non-standaard libraries kunnen oplossen?
Misschien ben je wel een goede testpersoon voor mijn klasses, je lijkt wel in de doelgroep te vallen. ;)

Als je wilt, kan je ze via http://code.google.com/p/unlimited-int/ downloaden. De code is klaar, de documentatie nog niet. Via 'downloads' kan je unlimited_int.h downloaden en dat is eigenlijk alles dat je nodig hebt. Een voorbeeldje van gebruik:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#include <iostream>
#include "unlimited_int.h"

// Print all primes below 2000 very inefficiently.

bool is_prime(Unlimited::Int const &n) {

    if (n < 2)
        return false;

    Unlimited::Int sqrt_n = n.sqrtc();

    for (Unlimited::Int i = 2; i <= sqrt_n; ++i) {
        if (n % i == 0)
            return false;
    }

    return true;
}

int main() {

    for (Unlimited::Int n(1); n < 2000; ++n) {
        if (is_prime(n))
            std::cout << "Prime: " << n << '\n';
    }
}

(Compileer met -std=c++11.)

Je kunt Unlimited::Int gewoon als int gebruiken. Als je het wilt proberen en er iets onduidelijk is, moet je mij maar even vragen want de documentatie is dus nog niet af. :)

(Trouwens, als jullie commentaar op de broncode willen leveren, is dat natuurlijk ook gewenst. Kijk dan alleen niet in unlimited_int.h maar bekijk de code via 'Source' -> 'Browse' want van die header file word je gek.)
"Slechts diegene mag slopen die iets beters kan bouwen."
pi_115445675
quote:
0s.gif Op zaterdag 11 augustus 2012 23:50 schreef GS42 het volgende:

[..]

Misschien ben je wel een goede testpersoon voor mijn klasses, je lijkt wel in de doelgroep te vallen. ;)

Als je wilt, kan je ze via http://code.google.com/p/unlimited-int/ downloaden. De code is klaar, de documentatie nog niet. Via 'downloads' kan je unlimited_int.h downloaden en dat is eigenlijk alles dat je nodig hebt. Een voorbeeldje van gebruik:
[ code verwijderd ]

(Compileer met -std=c++11.)

Je kunt Unlimited::Int gewoon als int gebruiken. Als je het wilt proberen en er iets onduidelijk is, moet je mij maar even vragen want de documentatie is dus nog niet af. :)

(Trouwens, als jullie commentaar op de broncode willen leveren, is dat natuurlijk ook gewenst. Kijk dan alleen niet in unlimited_int.h maar bekijk de code via 'Source' -> 'Browse' want van die header file word je gek.)
Heb het geprobeerd, maar ik krijg een overflow aan errors. Meer dan 50 wil ie niet weergeven :P . Ik heb gewoon jouw code van die priemgetallen geplakt, en de instructies gevolgd.

Bijna alle errors hebben trouwens met elkaar gemeen dat er d_number instaat. Steeds een herhaling van dat ie niet in de scope zit, of geen member is van de class Unlimited::Uint.
pi_115446306
Maar het kan toch niet zo moeilijk zijn, >70 000 mensen hebben die opgelost. Er zitten problemen bij die veel minder mensen hebben opgelost waar ik geen moeite mee heb.
pi_115448410
quote:
8s.gif Op zondag 12 augustus 2012 00:20 schreef thenxero het volgende:
Maar het kan toch niet zo moeilijk zijn, >70 000 mensen hebben die opgelost. Er zitten problemen bij die veel minder mensen hebben opgelost waar ik geen moeite mee heb.
Wat ze bij 20 doen is:
http://www.wolframalpha.com/input/?i=100!
En dan string copieren en alles optellen.

En voor dertien heb je alleen maar de eerste 13-15 cijfers nodig van alle 100 nummers.
Maar dan wel op een 64bit PC. :P
Op 32bit lukt dat niet echt...
pi_115448918
Dit is trouwens het antwoord van vraag 13
xxxxxxxxxxx390876637302048746832985971773659831892672 :P
pi_115449898
quote:
0s.gif Op zondag 12 augustus 2012 00:04 schreef thenxero het volgende:

[..]

Heb het geprobeerd, maar ik krijg een overflow aan errors. Meer dan 50 wil ie niet weergeven :P . Ik heb gewoon jouw code van die priemgetallen geplakt, en de instructies gevolgd.

Bijna alle errors hebben trouwens met elkaar gemeen dat er d_number instaat. Steeds een herhaling van dat ie niet in de scope zit, of geen member is van de class Unlimited::Uint.
Dank je wel voor het uitproberen. Ik zal zelf eens Code::Blocks installeren en kijken of ik kan vinden wat er mis gaat.

Edit: Haha, ja, ik heb de fout gevonden: Code::Blocks levert gcc version 4.4.1. :'( Als je C++11 wilt gebruiken, zal je minimaal 4.6 moeten hebben. Je kunt gaan googlen op dingen als "GMP for code blocks", daarmee vind ik wat hoopvolle resultaten. Als je het aandurft, mag je mijn ding ook nog eens proberen. Omdat ik denk dat dit wel vaker voor zal komen, heb ik ook een niet-11 versie tussen de downloads gezet.

quote:
0s.gif Op zondag 12 augustus 2012 01:59 schreef t4rt4rus het volgende:
Dit is trouwens het antwoord van vraag 13
[...]
Ietwat nutteloos om hier neer te zetten, niet? Het is niet alsof het antwoord gecontroleerd moet worden: je weet wanneer het goed is. Alleen om te laten zien dat je het kan? Beetje flauw.

Over de OP:

Ik ben maar begonnen met een herschrijving die je hier kunt vinden. Mijn inspiratie is echter op. Als jullie nog wijzigingen/toevoegingen hebben voor de FAQ of links, ga gerust jullie gang.

[ Bericht 11% gewijzigd door GS42 op 12-08-2012 04:36:15 ]
"Slechts diegene mag slopen die iets beters kan bouwen."
pi_115456171
quote:
0s.gif Op zondag 12 augustus 2012 02:31 schreef GS42 het volgende:

[..]

Ietwat nutteloos om hier neer te zetten, niet? Het is niet alsof het antwoord gecontroleerd moet worden: je weet wanneer het goed is. Alleen om te laten zien dat je het kan? Beetje flauw.
Was om te laten zien hoe groot het getal word. (Het antwoord staat er niet in...)

xero GMP gebruiken of zelf een class maken...
pi_115460765
Je kan trouwens makkelijk een nieuwe gcc toevoegen aan code::blocks btw
Some people should be around your entire life; others should just make an appearance.
pi_115462287
quote:
0s.gif Op zondag 12 augustus 2012 13:57 schreef ari_zahav het volgende:
Je kan trouwens makkelijk een nieuwe gcc toevoegen aan code::blocks btw
Dat is misschien het beste, misschien heb ik dat in de toekomst ook nog voor andere dingen nodig. Hoe installeer die nieuwe gcc?
pi_115462314
quote:
0s.gif Op zondag 12 augustus 2012 01:36 schreef t4rt4rus het volgende:

[..]

Wat ze bij 20 doen is:
http://www.wolframalpha.com/input/?i=100!
En dan string copieren en alles optellen.

En voor dertien heb je alleen maar de eerste 13-15 cijfers nodig van alle 100 nummers.
Maar dan wel op een 64bit PC. :P
Op 32bit lukt dat niet echt...
Haha, wolfram alpha gebruiken is wel heel flauw. Maar dat verklaart wel waarom zoveel mensen het hebben opgelost :)
abonnement Unibet Coolblue Bitvavo
Forum Opties
Forumhop:
Hop naar:
(afkorting, bv 'KLB')