Oh damn.quote:Op dinsdag 20 oktober 2020 12:47 schreef raptorix het volgende:
[..]
Ik schat dat 30 procent van de .net developers het gebruikt
Erg mooie toolquote:Op dinsdag 20 oktober 2020 12:56 schreef FlippingCoin het volgende:
[..]
Oh damn.
Zal het eens bekijken.
quote:
Omdat Resharper al iet van 15 jaar focused op functionaliteit wat lastig in te bouwen is (vermoed ik).quote:Op dinsdag 20 oktober 2020 14:18 schreef FlippingCoin het volgende:
[..]
hm even gekeken maar waarom zit dat niet default in VS?
Eens, daarnaast als je met grote solutions werkt wordt het ook nog eens erg traag.quote:Op dinsdag 20 oktober 2020 17:24 schreef ralfie het volgende:
VStudio heeft bijna al het goede van resharper inmiddels geimplementeerd. icm stylecop is er eigenlijk weinig tot niets wat ik mis wat resharper heeft.
Stuur maar linkje, mag via DMquote:Op woensdag 21 oktober 2020 10:13 schreef DevFreak het volgende:
Zijn er mensen die morgen of later deze week tijd hebben voor een code-review? Een beetje sparren over mijn algoritme om mijn code beter weg te abstraheren?
Meerdere brains kunnen meer dan één.
heb je rekening gehouden met de plm 1250 babies die in die periode geboren zijn?quote:Op woensdag 21 oktober 2020 13:24 schreef Bosbeetle het volgende:
Vorige week een ienemiene mutte algoritme voor de hele wereldbevolking geschreven wat een gehannes zeg als je grote integers wilt gebruiken(was een soort puzzel als je met de hele wereld iene miene mutte doet, ma.w. telkens de 18de valt af, wie blijft er dan over) Uiteindelijk doet mijn algoritme er ~5 minuten over, zal wel niet heel snel zijn maar toch leuk dat het gelukt is.
Nope ook niet de echte wereldbevolking genomen maar een genoemde hoeveelheid in de opgavequote:Op woensdag 21 oktober 2020 13:26 schreef ralfie het volgende:
[..]
heb je rekening gehouden met de plm 1250 babies die in die periode geboren zijn?
Post je code eensquote:Op woensdag 21 oktober 2020 13:24 schreef Bosbeetle het volgende:
Vorige week een ienemiene mutte algoritme voor de hele wereldbevolking geschreven wat een gehannes zeg als je grote integers wilt gebruiken(was een soort puzzel als je met de hele wereld iene miene mutte doet, ma.w. telkens de 18de valt af, wie blijft er dan over) Uiteindelijk doet mijn algoritme er ~5 minuten over, zal wel niet heel snel zijn maar toch leuk dat het gelukt is.
https://rosettacode.org/wiki/Josephus_problem#C.23quote:Op woensdag 21 oktober 2020 13:27 schreef Bosbeetle het volgende:
[..]
Nope ook niet de echte wereldbevolking genomen maar een genoemde hoeveelheid in de opgave
toch goed om te weten dat als je met 7382786182 mensen iene miene muttet je op plekje 7231042289 moet gaan staan om over te blijven
Jup dat is het josephus probleemquote:Op donderdag 22 oktober 2020 08:02 schreef raptorix het volgende:
[..]
https://rosettacode.org/wiki/Josephus_problem#C.23
Als je dit soort dingen leuk vind moet je maar eens op Project Euler kijken.
https://projecteuler.net/archives
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 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 | public class bruteforce { public bruteforce(){ long starttime = System.currentTimeMillis(); int population = 10000; int num = 18; boolean[] test = new boolean[population]; int ind = 1; long j = 1; int gone = population-1; for(int i=0;i } while(gone>0){ if(test[ind]){ if(j%num==0){ test[ind]=false; gone = gone - 1; //if(gone%1000000==0){ // System.out.println(gone); //} //System.out.println(ind+1); } j++; } ind++; if(ind==population){ ind=0; } } for(int i=0;i System.out.println("the last person is: "+(i)); } } long endtime = System.currentTimeMillis(); System.out.println((double) (endtime-starttime)/1000); } public static void main(String[] args){ bruteforce e = new bruteforce(); } } |
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 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 | public class reversebrute { public reversebrute(){ long starttime = System.currentTimeMillis(); int pop = 10000; int interval = 18; int ind_gone = 0; int ind_start = 0; for(int i=1;i<=pop;i++){ if(i==1){ ind_gone = 1; } if(i>1){ ind_start = stepBack(i,ind_gone,interval); ind_gone = getLeft(i,ind_start); } //System.out.println(i +" , "+ind_start+" , "+ind_gone); } System.out.println(ind_gone); System.out.println(pop-ind_gone+1); long endtime = System.currentTimeMillis(); System.out.println((double) (endtime-starttime)/1000); } public int stepBack(int pop, int start, int steps){ if(pop>steps){ steps = steps-1; if(start-steps>=0){ return (start-steps); } if(start-steps<0){ return pop+(start-steps); } } if(pop<=steps){ steps = steps-1; int inp = (start-steps)%pop; if(inp < 0){ return pop+inp; } if(inp >= 0){ return inp; } } return -1; } public int getLeft(int CurrentPop, int ind){ if(ind>0){ return ind; } if(ind==0){ return CurrentPop; } return -1; } public static void main(String[] arg){ reversebrute rb= new reversebrute(); } } |
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 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 | import java.math.BigInteger; public class reversebigbrute { BigInteger one = new BigInteger("1"); BigInteger zero = new BigInteger("0"); public reversebigbrute(){ //world population "7382786182" long starttime = System.currentTimeMillis(); BigInteger pop = new BigInteger("7382786182"); BigInteger interval = new BigInteger("18"); BigInteger ind_gone = new BigInteger("0"); BigInteger ind_start = new BigInteger("0"); BigInteger i = new BigInteger("1"); while(i.compareTo(pop)<=0){ if(i.equals(one)){ ind_gone = one; } if(!i.equals(one)){ ind_start = stepBack(i,ind_gone,interval); ind_gone = getLeft(i,ind_start); } //System.out.println(i +" , "+ind_start+" , "+ind_gone); i = i.add(one); } System.out.println(ind_gone); BigInteger outcome = pop.subtract(ind_gone); outcome = outcome.add(one); System.out.println(outcome); long endtime = System.currentTimeMillis(); System.out.println((double) (endtime-starttime)/1000); } public BigInteger stepBack(BigInteger pop, BigInteger start, BigInteger steps){ if(pop.compareTo(steps)>0){ steps = steps.subtract(one); if(start.subtract(steps).compareTo(zero)>=0){ start = start.subtract(steps); return (start); } if(start.subtract(steps).compareTo(zero)<0){ start = start.subtract(steps); pop = pop.add(start); return pop; } } if(pop.compareTo(steps)<=0){ steps = steps.subtract(one); BigInteger inp = start.subtract(steps).mod(pop); if(inp.compareTo(zero) < 0){ pop = pop.add(inp); return pop; } if(inp.compareTo(zero) >= 0){ return inp; } } return null; } public BigInteger getLeft(BigInteger CurrentPop, BigInteger ind){ if(ind.compareTo(zero)>0){ return ind; } if(ind.compareTo(zero)==0){ return CurrentPop; } return null; } public static void main(String[] arg){ reversebigbrute rb= new reversebigbrute(); } } |
Stukje wat ik paar maanden terug maaktequote:Op donderdag 22 oktober 2020 10:31 schreef Bosbeetle het volgende:
Ik denk dat mijn code ook wel terug te brengen is naar 1 som maar die som ga ik later niet meer begrijpen
Heb dat ook wel eens gehad dat je dan je code terug leest en denkt okayyyy ik doe hier (n-1)%k+(round(k/n)*2)-offset maar waarvoor was dat ook al weer
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | int offset = int.TryParse(id, out offset) ? offset : 0; int numberTaken = 12; int? nextOffset = null; if (SearchItems.Count() - (offset * 12) < 12) { numberTaken = SearchItems.Count() - (offset * 12); nextOffset = -1; } else { nextOffset = offset + 1; } var selectedSearchItems = SearchItems.GetRange(offset * 12, numberTaken); var vm = new SearchResultViewModel(model.Content) { SearchTerm = searchTerm, SearchItems = selectedSearchItems, NextOffset = nextOffset, TotalCount = SearchItems.Count }; return View("SearchResults", vm); } |
1 | summarize round(avg(duration)), count = count(),Errorrate = round((todouble(count(success==false)) / todouble(count())) * 100) by apicall |
Code opknippen in functies met logische namen en comments plaatsen.quote:Op donderdag 22 oktober 2020 10:31 schreef Bosbeetle het volgende:
Ik denk dat mijn code ook wel terug te brengen is naar 1 som maar die som ga ik later niet meer begrijpen
Heb dat ook wel eens gehad dat je dan je code terug leest en denkt okayyyy ik doe hier (n-1)%k+(round(k/n)*2)-offset maar waarvoor was dat ook al weer
Wat ik begrepen heb is awk wel een klasse apart, en heel erg toegespitst op het omgaan met text files(zoeken en bewerken) en niet zo zeer om een programma mee te maken. Maar daar ga ik achter komen.quote:Op donderdag 22 oktober 2020 11:18 schreef thabit het volgende:
Zijn taaltjes als awk en perl inmiddels niet lang en breed obsolete gemaakt door Python?
Nee, maar als ik zo lees lijkt het erg op Perl, daar heb ik het nodige mee gedaan, maar is alweer 15 jaar terug.quote:Op donderdag 22 oktober 2020 10:58 schreef FlippingCoin het volgende:
Ik heb een lang weekend en ik wil wel eens kijken naar AWK, iemand ervaring mee?
Het probleem is dat je soms niet altijd ontkomt aan lange one liners, zelfs het opknippen maakt het er niet altijd leesbaarder op.quote:Op donderdag 22 oktober 2020 10:57 schreef FlippingCoin het volgende:
[..]
Code opknippen in functies met logische namen en comments plaatsen.
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |