Het Grote Tweakers Programmeervuur

Pagina: 1 ... 6 7 Laatste
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter

Overlappende vierkanten

Stel voor dat je een vierkant heb van maxX grootte. En je wilt X aantal (eventueel overlappende) vierkanten erin doen met een Z grootte. Ga er vanuit dat de randen van de vierkanten parallel lopen met de randen van het raster.

Grootte van de vierkant wordt bedoeld: de lengte en de breedte van de vierkant. En niet de omtrek.
Opdracht
Schrijf een programma die dus uitrekent hoeveel kleine vierkanten in een grote vierkant past.
Het minimum van aantal kleine vierkanten is 2. En de minimale grootte van de kleine viierkanten is 5.
Grootte van grote vierkant is oneindig.

Wat je ook moet kunnen uitrekenen is wanneer je kleine vierkanten hebt van Z grootte dat je uitrekend hoe groot de grote vierkant moet zijn om een gegeven aantal erin te laten passen.

Wat het programma ook moet kunnen doen is wanneer je een grote vierkant heb die X maat heeft dat je mee kunt aangeven wat het minimum en maximum aantal kleine vierkanten en/of een minimale en maximale maat van de vierkanten die in die vierkant moet kunnen passen. En dit weergeven dmv een lijst

manier van input zou kunnen zijn:
# ./a.out (grootte hoofdvierkant) (aantal kleine vierkanten)

Aantal: (output grootte kleine vierkanten)



Voorbeeld van een lijstje:

# ./a.out (grootte hoofdvierkant) ( min grootte vierkant) (max grootte vierkant) (min aantal vierkanten) (max aantal vierkanten)  

(grootte)(spatie)(aantal)
 -----------           -----------




Regels:

De vierkanten mogen elkaar overlappen maar met een maximum van 5px over elkaar heen

Ruimtelijk VB:

code:
1
2
3
4
5
6
7
8
9
|-----------------|--------------------|
|                 |                    |
|    x           |                    |
|                 |                    |
|--------------------------------------|
|                 |                    |
|                 |  x                |
|                 |                    |
|-----------------|--------------------|

Acties:
  • 0 Henk 'm!

  • brama
  • Registratie: Februari 2001
  • Niet online
Zoiets (tweede voorbeeld, in = <hoofdvierkant grootte> <kleinvierkant min> <kleinvierkant max>) ?

spoiler:
./progsel.py 50 5 10
5 infinite
6 2025
7 484
8 225
9 121
10 81


?

I mentioned it once, but I think I got away with it.


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
brama schreef op woensdag 16 december 2009 @ 18:09:
Zoiets (tweede voorbeeld, in = <hoofdvierkant grootte> <kleinvierkant min> <kleinvierkant max>) ?

spoiler:
./progsel.py 50 5 10
5 infinite
6 2025
7 484
8 225
9 121
10 81


?
wat stelt die laatste twee voor in de output, grootte of aantal?

Acties:
  • 0 Henk 'm!

  • brama
  • Registratie: Februari 2001
  • Niet online
Output per regel is grootte kleine vierkant en aantal vierkanten wat in het grote vierkant past. Bij dit voorbeeld dus een grootte van het grote vierkant van 50x50

[ Voor 26% gewijzigd door brama op 16-12-2009 18:45 ]

I mentioned it once, but I think I got away with it.


Acties:
  • 0 Henk 'm!

Verwijderd

Die opdrachtomschrijving is gewoon compleet nutteloos. Gewoon een voorbeeldje zou al helpen en vierkanten kan je toch specificeren met de lengte van een zijde en niet in grootte (wat niets is wat mij betreft).

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Verwijderd schreef op woensdag 16 december 2009 @ 19:30:
Die opdrachtomschrijving is gewoon compleet nutteloos. Gewoon een voorbeeldje zou al helpen en vierkanten kan je toch specificeren met de lengte van een zijde en niet in grootte (wat niets is wat mij betreft).
Vooral niet lezen. 8)7

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
brama schreef op woensdag 16 december 2009 @ 18:44:
Output per regel is grootte kleine vierkant en aantal vierkanten wat in het grote vierkant past. Bij dit voorbeeld dus een grootte van het grote vierkant van 50x50
Maar ik snap die infinite niet :S

Acties:
  • 0 Henk 'm!

Verwijderd

Oh ik vergeet inderdaad te vermelden dat dat voorbeeld natuurlijk nergens op slaat, dat is net zo duidelijk als de rest van het verhaal. Misschien even voorbeeld input, voorbeeld output en dat verduidelijken met een plaatje? En dan niet alleen output specificatie, maar daadwerkelijk iets. Gewoon een simpel voorbeeldje.

Acties:
  • 0 Henk 'm!

  • brama
  • Registratie: Februari 2001
  • Niet online
Verwijderd schreef op woensdag 16 december 2009 @ 19:34:
[...]

Maar ik snap die infinite niet :S
Bij een maximale overlap van 5 en een vierkant met zijde 5 passen er oneindig veel vierkanten in het vlak gevormd door het grote vierkant. Je stapelt ze dan namelijk gewoon op elkaar, en dat past oneindig vaak.

[edit] de code:

Python:
1
2
3
4
5
6
7
8
#!/usr/bin/env python
import sys

def fit(big, min, max):
    print('\n'.join([('%d\t%s' % (small, str(((big-small)/(small-5)+1)**2)
        if small>5 else 'infinite')) for small in range(min, max+1)]))

eval('fit(%s)' % ','.join(sys.argv[1:]))

[ Voor 40% gewijzigd door brama op 16-12-2009 20:12 ]

I mentioned it once, but I think I got away with it.


Acties:
  • 0 Henk 'm!

  • Marcks
  • Registratie: April 2007
  • Laatst online: 12-09 13:37
Schrijf een programma die dus uitrekent hoeveel kleine vierkanten in een grote vierkant past.
Het minimum van aantal kleine vierkanten is 2. En de minimale grootte van de kleine viierkanten is 5.
Grootte van grote vierkant is oneindig.
Ofwel, hoeveel kleine vierkanten passen er in een groot vierkant, waarbij het kleine vierkant een zijde heeft van 5, en het grote vierkant oneindig groot is? Als ik uit m'n hoofd wist hoe ik het tekentje inklopte, had ik hier zo'n omgekeerde acht neergezet. Maar ze mogen overlappen, dus in werkelijkheid zijn het er nog veel meer. Krijg ik nu een ijsje? :+

Heb ik het nog steeds niet gesnapt of ***** er nog steeds geen ***** van die ***** opdrachtomschrijving. :þ

Ik veronschuldig mij bij voorbaat voor het bovenstaande.


  • KabouterSuper
  • Registratie: September 2005
  • Niet online
Ik krijg een beetje de indruk dat het de bedoeling is om een "dense packing problem" te programmeren. Echter, de specs zijn dermate vaag dat je er nog niets mee kunt.

Voorbeeld: je gebruikt in je probleemstelling soms de term "grootte", soms "lengte" en soms "maat". Noem dan simpelweg alles "lengte" (de lezer is intelligent genoeg om op te merken dat de lengte en hoogte van een vierkant hetzelfde is).

De regel over overlap is ook vaag....als je twee vierkanten met lengte 5 over elkaar legt, is de overlap dan 5 of 25?

Laat tenslotte overbodige informatie weg. De informatie dat een vierkant lengte oneindig kan hebben is non-informatie, en dus verwarrend. Je kunt ook toevoegen dat de kleine vierkanten rood moeten zijn, en de grote vierkant alle kleuren mag hebben.....dat is ook non-informatie.

Mits goed omschreven is een "dense packing problem" best een interessant probleem.
Neem als voorbeeld het geval dat je twee kleine vierkanten hebt met lengte 5 cm. Je wilt de lengte van de omvattende vierkant minimaliseren, onder de randvoorwaarde dat de twee kleine vierkanten maximaal 5 cm^2 mogen overlappen.

Eerste gok zou zijn om de vierkanten naast elkaar te leggen en de rechterzijde van het eerste vierkant te laten overlappen met de linkerzijde van het tweede vierkant. Je eindigt dan met een groot vierkant ter grootte 9x9.
code:
1
2
3
4
5
6
7
8
9
10
----------
|   ||   |
|   ||   |
|   ||   |
|   ||   |
---------
|        |
|        |
|        |
----------

Echter, als je de kleine vierkanten met de punten over elkaar heen legt (dus rechtsonder 1e vierkant overlapt met linksboven 2e vierkant), dan kan je het grote vierkant verkleinen tot 8x8. Immers, de overlap kan 2x2 cm^2 zijn.
code:
1
2
3
4
5
6
7
8
9
10
----------
|   |    |
|   |    |
|   |    |
|  ||----|
-----    |
|  |     |
|  |     |
|  |     |
----------

When life gives you lemons, start a battery factory


  • Cavalera125
  • Registratie: December 2003
  • Laatst online: 13-09 19:03
KabouterSuper schreef op donderdag 17 december 2009 @ 09:58:
Ik krijg een beetje de indruk dat het de bedoeling is om een "dense packing problem" te programmeren. Echter, de specs zijn dermate vaag dat je er nog niets mee kunt.
Ik zelf krijg eigenlijk meer de indruk dat de opdracht niet het programmeren zelf is, maar het achterhalen wat eigenlijk de opdracht is ;). Natuurlijk is het makkelijk om vanaf de zijlijn kritiek te leveren, maar dit is nu al de 2e opdracht achter elkaar waar niks als onduidelijkheid over is.

Ik zou zeggen, Typnix, doe iets met de kritiek. Als je een opdracht plaatst zorg dan voor duidelijkheid. Een duidelijk input voorbeeld met verwachtte output met duidelijke omschrijving. Dan kan iedereen zich concentreren op het programmeren zelf (wat mij de bedoeling van dit topic lijkt...)

Acties:
  • 0 Henk 'm!

  • KabouterSuper
  • Registratie: September 2005
  • Niet online
Wellicht een idee om de opdracht "Overlappende vierkanten" even on hold te zetten. Overigens, voor de geinteresseerden een artikel over het vullen van een vierkant met kleine vierkanten: www.math.ucsd.edu/~fan/wp/square.pdf
Dat Erdos eraan gewerkt heeft, geeft wat mij betreft al aan dat het een pittig probleem is.

When life gives you lemons, start a battery factory


Acties:
  • 0 Henk 'm!

  • JochemK
  • Registratie: Maart 2003
  • Laatst online: 30-08 13:53
Tip aan Typnix: probeer met je eigen uitleg, en niets meer dan dat, eens tot het gewenste algoritme te komen? Misschien dat je dan inziet waar het onbegrip van onze kant vandaan komt.

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Beste mensen,

Gezien het feit dat er weinig gesnapt wordt van de opdracht schort ik de opdracht op.
Nogmaals: als iemand er eentje weet waar geen contest aan vast zit, opper deze gerust.

Acties:
  • 0 Henk 'm!

  • Onbekend
  • Registratie: Juni 2005
  • Laatst online: 09:42

Onbekend

...

Rekenmachine met grote getallen

De meeste rekenmachines kunnen maximaal 10 cijfers weergeven. Bij resultaten die meer dan 10 cijfers groot zijn, wordt het getal meestal met een exponent getoond en zijn de getallen niet nauwkeurig leesbaar.[list][/list]
Opdracht
Schrijf een programma die eenvoudige berekeningen kan uitvoeren tussen twee grote getallen.
De rekenmachine dient gehele positieve getallen tot en met 48 cijfers te ondersteunen (zowel voor de invoer als voor de uitvoer).

De berekeningen die de rekenmachine moet kunnen maken zijn:
  • Optellen ( + )
  • Aftrekken ( - )
  • Vermenigvuldigen ( * )
  • Delen ( - )
[list][/list]
Voorbeelden
Invoer: 333333333333333333333333333333333333333333333333 * 3
Uitvoer: 999999999999999999999999999999999999999999999999

Invoer: 1234567890123456789 + 1234567890123456789
Uitvoer: 2469135780246913578

Invoer: 999999999999999999999999999999999999999999 - 999999999999999999999999999999999999999998
Uitvoer: 1

Invoer: 888888888888888888888888888888888888888888888888 / 4
Uitvoer: 222222222222222222222222222222222222222222222222[list][/list]
Overige aandachtspunten
Indien (bij een deling) de uitkomst een kommagetal zou worden dient deze naar beneden afgerond te worden.

De invoermethode mag zelf gekozen worden, zolang die twee getallen en de rekenbewerking ingevoerd kan worden.

Misschien dubbelop maar toch: De getallen zijn gewone decimale getallen van maximaal 48 cijfers, zonder komma en ze zijn altijd positief.

Indien het uitkomstgetal langer wordt dan 48 cijfers hoeft de berekening ook niet verder uitgevoerd te worden want dat voldoet niet aan de opdracht.

Succes !

Speel ook Balls Connect en Repeat


Acties:
  • 0 Henk 'm!

  • Sebazzz
  • Registratie: September 2006
  • Laatst online: 15:05

Sebazzz

3dp

.NET 4 BigInteger class hoppa :+

[Te koop: 3D printers] [Website] Agile tools: [Return: retrospectives] [Pokertime: planning poker]


Acties:
  • 0 Henk 'm!

  • Domdo
  • Registratie: Juni 2009
  • Laatst online: 30-06 20:29
Dit is wat ik er van gemaakt heb

Java:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
    public String BigInteger calc(String l, char f, String r) throws Exception
    {
    return calc(new BigInteger(l), f, new BigInteger(r)).toString(10);
    }

    public static BigInteger calc(BigInteger l, char f, BigInteger r) throws Exception
    {
    switch (f)
    {
        case '*':
        return l.multiply(r);
        case '/':
        return l.divide(r);
        case '-':
        return l.subtract(r);
        case '+':
        return l.add(r);
    }
    throw new Exception("Blah");
    }


Werkt in ieder geval tot 5000 cijfers en ik denk nog wel tot meer cijfers.

Acties:
  • 0 Henk 'm!

  • Onbekend
  • Registratie: Juni 2005
  • Laatst online: 09:42

Onbekend

...

't Is natuurlijk wel de bedoeling dat je zelf iets bedenkt hiervoor i.p.v. een bestaande classe te gebruiken. :)
Als ik had geweten dat .NET 4 die functionaliteit standaard aan boord had, had ik er wel in gezet dat je die niet mocht gebruiken. :+

Speel ook Balls Connect en Repeat


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Misschien is het een optie om als opdracht erbij dat de calculator ook wetenschappelijke berekeningen moet kunnen?

Acties:
  • 0 Henk 'm!

  • CoolGamer
  • Registratie: Mei 2005
  • Laatst online: 06-09 16:59

CoolGamer

What is it? Dragons?

(jarig!)
Een mogelijke oplossing, gewoon het getal meegeven als String.
Java:
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
public class Calculator {
    public static String add(String numb1, String numb2) {
        int numbLength = Math.max(numb1.length(), numb2.length());
        StringBuilder result = new StringBuilder();
        boolean carry = false;
        for (int i = 0; i <= numbLength; i++) {
            int n1 = readChar(numb1, i);
            int n2 = readChar(numb2, i);
            int subres = n1 + n2;
            if (carry) subres++;
            carry = subres >= 10;
            if (carry) subres -= 10;
            result.insert(0, (char) (subres + '0'));
        }
        return trimZero(result.toString());
    }
    public static String multiply(String numb1, String numb2) {
        String result = "0";
        String counter = trimZero(numb2);
        while (!counter.equals("0")) {
            result = add(result, numb1);
            counter = minus(counter, "1");
        }
        return result;
    }
    public static String minus(String numb1, String numb2) {
        int numbLength = Math.max(numb1.length(), numb2.length());
        StringBuilder result = new StringBuilder();

        boolean carry = false;
        for (int i = 0; i < numbLength; i++) {
            int n1 = readChar(numb1, i);
            int n2 = readChar(numb2, i);
            int subres = n1 - n2;
            if (carry) subres--;            
            carry = subres < 0;
            if (carry) subres += 10;
            result.insert(0, (char) (subres + '0'));
        }
        if (carry) return "negative";
        return trimZero(result.toString());
    }
    public static String divide(String numb1, String numb2) {
        String divisor = trimZero(numb2);
        if (divisor.equals("0")) return "divide by zero";
        String result = "0";
        String counter = numb1;
        while (true) {
            counter = minus(counter, divisor);
            if (counter.equals("negative")) break;
            result = add(result, "1");
        }
        return result;
    }
    private static int readChar(String numb, int pos) {
        if (pos >= numb.length()) return 0;
        return numb.charAt(numb.length() - 1 - pos) - '0';
    }
    private static String trimZero(String str) {
        if (str.length() == 0) return "0";
        if (str.charAt(0) == '0') return trimZero(str.substring(1));
        return str;
    }
}

¸.·´¯`·.¸.·´¯`·.¸><(((º>¸.·´¯`·.¸><(((º>¸.·´¯`·.¸.·´¯`·.¸.·´¯`·.¸<º)))><¸.·´¯`·.¸.·´¯`·.¸.·´¯`·.¸


Acties:
  • 0 Henk 'm!

  • Soultaker
  • Registratie: September 2000
  • Laatst online: 02:44
Een oplossing in C: klik (Misschien maak ik 'm morgen nog wat netter.)

@TheCoolGamer: al eens geprobeerd twee getallen van 24 cijfers elk te vermenigvuldigen (of te delen)? :P

Acties:
  • 0 Henk 'm!

  • The Great HooD
  • Registratie: September 2009
  • Laatst online: 13-09-2014
Beste tweakers

Ik zit een soort van vast met Java...
Ik heb een lijst met getallen, nu wil ik deze getallen optellen en dan het gemiddelde ervan uitrekenen.
Is er een manier met java waardoor ik deze lijst bij elkaar kan optellen, want nu is het 1 hele grote string...

Acties:
  • 0 Henk 'm!

  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
The Great HooD schreef op maandag 21 december 2009 @ 15:13:
Beste tweakers

Ik zit een soort van vast met Java...
Ik heb een lijst met getallen, nu wil ik deze getallen optellen en dan het gemiddelde ervan uitrekenen.
Is er een manier met java waardoor ik deze lijst bij elkaar kan optellen, want nu is het 1 hele grote string...
Ja die is er.

Nee deze vraag hoort niet in dit topic thuis! En op de manier dat je hem nu stelt eigenlijk totaal niet op GoT. Je kunt natuurlijk wel een eigen topic starten, maar lees dan wel even het beleid, en De Quickstart door, anders zit je topic zo weer op slot.

“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”


Acties:
  • 0 Henk 'm!

  • CoolGamer
  • Registratie: Mei 2005
  • Laatst online: 06-09 16:59

CoolGamer

What is it? Dragons?

(jarig!)
Soultaker schreef op maandag 21 december 2009 @ 01:58:
@TheCoolGamer: al eens geprobeerd twee getallen van 24 cijfers elk te vermenigvuldigen (of te delen)? :P
Ja, heb het resultaat nog niet binnen :p. Daar is inderdaad nog ruimte voor een significante verbetering.

¸.·´¯`·.¸.·´¯`·.¸><(((º>¸.·´¯`·.¸><(((º>¸.·´¯`·.¸.·´¯`·.¸.·´¯`·.¸<º)))><¸.·´¯`·.¸.·´¯`·.¸.·´¯`·.¸


Acties:
  • 0 Henk 'm!

  • CodeCaster
  • Registratie: Juni 2003
  • Niet online

CodeCaster

Can I get uhm...

Als ik een aantal Byte's gebruik in C# om zo tot 128 bits te benutten, ga ik dan door voor de omslachtigheidsprijs? :P

https://oneerlijkewoz.nl
Op papier is hij aan het tekenen, maar in de praktijk...


Acties:
  • 0 Henk 'm!

Verwijderd

Dan moet je wel bit-wise gaan rekenen :D

[edit]
Om (ietsje) toe te voegen: Ik volg het topic al een tijd, maar helaas ben ik voor de meeste opdrachten niet te porren. Hopelijk komt er snel een leuke uitdaging :)
ps. Props voor het huis, Typnix en de goede programmeurs onder ons!

[ Voor 79% gewijzigd door Verwijderd op 21-12-2009 20:12 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Verwijderd schreef op maandag 21 december 2009 @ 20:08:
Dan moet je wel bit-wise gaan rekenen :D

[edit]
maar helaas ben ik voor de meeste opdrachten niet te porren. Hopelijk komt er snel een leuke uitdaging :)
Wat voor opdrachten zou je terug willen zien en kan je daar een voorbeeld van geven?
ps. Props voor het huis, Typnix en de goede programmeurs onder ons!
Thnx :)

Acties:
  • 0 Henk 'm!

  • CoolGamer
  • Registratie: Mei 2005
  • Laatst online: 06-09 16:59

CoolGamer

What is it? Dragons?

(jarig!)
Nu een versie die wel een antwoord geeft op een vermenigvuldiging of deling voordat de aarde is vergaan.
http://pastebin.com/f20787191

¸.·´¯`·.¸.·´¯`·.¸><(((º>¸.·´¯`·.¸><(((º>¸.·´¯`·.¸.·´¯`·.¸.·´¯`·.¸<º)))><¸.·´¯`·.¸.·´¯`·.¸.·´¯`·.¸


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter

Bruggen Bouwen

Inleiding

De gemeenteraad van een stad heeft het het plan opgevat om een systeem van bruggen te bouwen aan al hun gebouwen in de binnenstad zodat de mensen naar een gebouw kunnen lopen zonder dat ze echt "buiten" zijn.

Opdracht

Jij moet een programma bouwen die meehelpt om erachter te komen om welke combinatie van bruggen het meest optimaal is.

Regels
De stad is opgezet als een raster van vierkanten. Ieder gebouw bezet 1 of meerdere vierkanten. Twee bezette vierkanten waarvan de hoeken elkaar raken, kunnen worden gezien als een enkel gebouw. En die hoeven dan ook geen brug.

Bruggen mogen alleen gebouwd worden tot op de lijnen van het raster die de randen vormen van de vierkanten.

Elke brug moet gebouwd worden in een rechte lijn en moeten exact twee gebouwen aan elkaar koppelen.

Voor een gegeven set aan gebouwen, moet jij het minimum aantal bruggen calculeren die nodig is om alle gebouwen aan elkaar te koppelen. Als dat onmogelijk is, zoek dan een oplossing die het aantal gebouwen die niet aan elkaar gekoppeld is minimaliseert.

En als je tussen de mogelijke oplossingen zelfde aantal bruggen hebt, moet je kiezen voor de oplossing met de kortste brug, gemeten aan de grote van de grootte van het raster.

Twee bruggen mogen elkaar kruizen maar dan moeten ze wel van etage verschillen en ze mogen elkaar ook niet aan elkaar verbonden zijn.

Het volledige opdracht kan je vinden in deze link.

Acties:
  • 0 Henk 'm!

  • Bolukan
  • Registratie: Oktober 2002
  • Laatst online: 23-08 23:43
Link werkt niet. (PS: Kan aan mijn DNS liggen)

Wat ik daar hoop te vinden:
* Zijn 2 diagonaal verbonden vakjes met een gezamenlijk punt, ook 1 gebouw. Ze hebben namelijk 1 hoek gemeen.
* De "rechte lijn" van een brug hoeft mag dus ook diagonaal of 30 graden worden getrokken. Of bezetten bruggen eigenlijk vakjes?

[ Voor 4% gewijzigd door Bolukan op 28-12-2009 14:55 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Bolukan schreef op maandag 28 december 2009 @ 14:47:
Link werkt niet. (PS: Kan aan mijn DNS liggen)

Wat ik daar hoop te vinden:
* Zijn 2 diagonaal verbonden vakjes met een gezamenlijk punt, ook 1 gebouw. Ze hebben namelijk 1 hoek gemeen.
* De "rechte lijn" van een brug hoeft mag dus ook diagonaal of 30 graden worden getrokken. Of bezetten bruggen eigenlijk vakjes?
Je hebt gelijk dat de link(website) niet werkt. Op het moment van schrijven werkte het wel. Ik neem aan dat het later op de dag wel weer online is.

In de PDF staat alles erin wat je moet weten.

Acties:
  • 0 Henk 'm!

  • Jaap-Jan
  • Registratie: Februari 2001
  • Laatst online: 13-09 20:39
De link doet het hier nu wel. Het antwoord is:
Each building occupies a connected set of one or more squares.
Two occupied squares whose corners touch are considered to be a single building and do not need a bridge.
Oftewel, één gebouw, geen brug nodig.

| Last.fm | "Mr Bent liked counting. You could trust numbers, except perhaps for pi, but he was working on that in his spare time and it was bound to give in sooner or later." -Terry Pratchett


Acties:
  • 0 Henk 'm!

  • Soultaker
  • Registratie: September 2000
  • Laatst online: 02:44
Voor anderen bij wie de PDF link niet werkt: ik geloof dat het om het eerste probleem gaat in deze set: http://icpc.baylor.edu/past/icpc2003/Finals/problems.pdf

Acties:
  • 0 Henk 'm!

  • joostvanpinxten
  • Registratie: Maart 2007
  • Laatst online: 03-09 12:50
confirmed, dat is dezelfde opdracht, maar waarschijnlijk blijven beide links wel online

Acties:
  • 0 Henk 'm!

  • Soultaker
  • Registratie: September 2000
  • Laatst online: 02:44
Niet helemaal conform de I/O specificaties, maar voor de verandering een oplossing in JavaScript:
http://hell.student.utwen...-29-building-bridges.html

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Niet echt nee. Maar mooie oplossing. :)

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter

RSA probleempje

Zo voor het nieuwe jaar(op het moment van schrijven) heb ik weer een nieuwe opdracht voor jullie klaar.

De procedure van een RSA encryptie is gebaseerd op het volgende:
- Genereer twee naburige priemgetallen p en q
- Bereken n = pq en φ = (p - 1)(q - 1).
- Vind dan een integer e, 1 < e < φ, zodat gcd(e, φ) = 1
Een boodschap is in dit systeem een nummer die voor komt in de interval [0,n-1].

Om een stuk tekst te versleutelen moet er voor iedere boodschap m, met het formule c=me % n worden gecalculeerd.

Om het weer te ontsleutelen is de volgende procedure nodig: calculeer d zo dat ed =1 % φ. En dan voor iedere boodschap die versleuteld is, c, calculeer dan m=cd % n.

We nemen voor het gemak de variabel m waarvoor het formule me % n = m voor openlijke boodschappen.

Een probleem wanneer e gekozen moet worden is dat er niet teveel openlijke boodschappen moeten zijn.
Bij voorbeeld:

Stel dat p=19, q= 3.
En dan n=19*37=703 en φ=18*36=648.

Als we e=181 kiezen, En ondanks dat gcd(181,648)=1 dan zou het nog steeds voor kunnen komen dat alle mogelijke boodschappen m (0≤m≤n-1) nog steeds openlijke zijn wanneer de formule me % n wordt gecalculeerd. Het is dus belangrijk dat het aantal openlijke boodschappen tot het minimum beperkt blijft.
Opdracht
Kies p=1009 en q=3643.
Vind de som van alle waarden die e, 1<e<φ(1009,3643) en gcd(e,φ)=1, zo dat het aantal openlijke boodschappen voor deze waarde e, tot het minimum blijft.

Bron originele tekst: link

En voor de beginners en de medioren:

Broncode spugen

Opdracht
Maak een script of codebestand die als hij uitgevoerd wordt, exact dezelfde broncode produceert als de uitvoerende code. De output moet tot op de letter nauwkeurig hetzelfde zijn als het bronbestand die de output genereert.

Regels
Het is niet toegestaan om de sourcecode van het bestandssysteem te lezen of eventueel uit het geheugen te laden als dit mogelijk is in een programmeertaal. De sourcecode moet geheel zelfstandig gegenereerd worden.

Veel plezier!

[ Voor 13% gewijzigd door Verwijderd op 02-01-2010 20:19 ]


Acties:
  • 0 Henk 'm!

Verwijderd

@Typnix Voor het Broncode Spugen. Is het daar de bedoeling dat je een bepaalde broncode hebt, en dat je door slim gebruik van je programmeertaal diezelfde broncode (door dezelfde class) genereert?

Die wordt leuk ;)

Acties:
  • 0 Henk 'm!

Verwijderd

Is probleempjes bij Euler vandaan pikken niet een beetje lame, daar kom ik zelf ook wel langs hehe

Acties:
  • 0 Henk 'm!

  • RayNbow
  • Registratie: Maart 2003
  • Nu online

RayNbow

Kirika <3

Verwijderd schreef op zaterdag 02 januari 2010 @ 21:33:
@Typnix Voor het Broncode Spugen. Is het daar de bedoeling dat je een bepaalde broncode hebt, en dat je door slim gebruik van je programmeertaal diezelfde broncode (door dezelfde class) genereert?

Die wordt leuk ;)
Typnix wil graag dat je een quine maakt. :)

Ipsa Scientia Potestas Est
NNID: ShinNoNoir


Acties:
  • 0 Henk 'm!

Verwijderd

Oh, pff. Je mag delen van je code hardcoden in je applicatie (Ik was al redelijk ver met Java Reflection :()

Dat maakt het een stuk eenvoudiger ;p

Acties:
  • 0 Henk 'm!

  • RayNbow
  • Registratie: Maart 2003
  • Nu online

RayNbow

Kirika <3

Verwijderd schreef op zaterdag 02 januari 2010 @ 21:53:
Oh, pff. Je mag delen van je code hardcoden in je applicatie (Ik was al redelijk ver met Java Reflection :()

Dat maakt het een stuk eenvoudiger ;p
Heb wat oud materiaal opgegraven. Misschien interessant om te lezen. :)
[list]
The Search For Self-Documenting Code
Slides van het TU Delft vak IN3110 Fundamentele Informatica I (berekenbaarheid), gegeven in 2006-2007.

Ipsa Scientia Potestas Est
NNID: ShinNoNoir


Acties:
  • 0 Henk 'm!

  • Soultaker
  • Registratie: September 2000
  • Laatst online: 02:44
Quick'n'dirty in Python:
Python:
1
2
3
4
s="""
print('s='+3*'"'+s+3*'"'+s)
"""
print('s='+3*'"'+s+3*'"'+s)

Ik ga nog wel even over een Brainfuck implementatie nadenken. Dat is wat uitdagender.

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
RayNbow schreef op zaterdag 02 januari 2010 @ 21:43:

Typnix wil graag dat je een quine maakt. :)
:Y

Acties:
  • 0 Henk 'm!

  • RayNbow
  • Registratie: Maart 2003
  • Nu online

RayNbow

Kirika <3

Soultaker schreef op zaterdag 02 januari 2010 @ 22:19:
Quick'n'dirty in Python:
Python:
1
2
3
4
s="""
print('s='+3*'"'+s+3*'"'+s)
"""
print('s='+3*'"'+s+3*'"'+s)
Jammer dat GoT's codetag de lege regel 5 niet laat zien :p

Ipsa Scientia Potestas Est
NNID: ShinNoNoir


Acties:
  • 0 Henk 'm!

  • Soultaker
  • Registratie: September 2000
  • Laatst online: 02:44
Mja, of aan syntax highlighting doet wat dat betreft. ;)
(Scherp opgemerkt, trouwens!)

Acties:
  • 0 Henk 'm!

Verwijderd

Iets wat ik aan het begin van cursus Java (november) moest kloppen:

Java:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
public class Quine 
{
    public static void main(String[] args)
    {
        String [] tekst = {
"public class Quine ",
"{",
"   public static void main(String[] args)",
"   {",
"       String [] tekst = {",
"       };",
"       for(int i=0; i<5;i++) System.out.println(tekst[i]);",
"       for(int i=0; i<tekst.length;i++) System.out.println((char)34+tekst[i]+(char)34+',');",
"       for(int i=5; i<tekst.length;i++) System.out.println(tekst[i]);",
"   }",
"}",
        };
        for(int i=0; i<5;i++) System.out.println(tekst[i]);
        for(int i=0; i<tekst.length;i++) System.out.println((char)34+tekst[i]+(char)34+',');
        for(int i=5; i<tekst.length;i++) System.out.println(tekst[i]);
    }
}


Beetje lang, maar goed, het werkt wel. :p

Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 12-09 15:22

.oisyn

Moderator Devschuur®

Demotivational Speaker

Soultaker schreef op zaterdag 02 januari 2010 @ 22:19:
Quick'n'dirty in Python:
Python:
1
2
3
4
s="""
print('s='+3*'"'+s+3*'"'+s)
"""
print('s='+3*'"'+s+3*'"'+s)

Ik ga nog wel even over een Brainfuck implementatie nadenken. Dat is wat uitdagender.
Ik weet een kortere
Python:
1

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
code:
1
printf("Codesnip is tekort..\n");

Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 12-09 15:22

.oisyn

Moderator Devschuur®

Demotivational Speaker

Hij voldoet anders gewoon aan de regels die je hebt opgesteld :Y)

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Acties:
  • 0 Henk 'm!

  • RayNbow
  • Registratie: Maart 2003
  • Nu online

RayNbow

Kirika <3

Triviale quines zijn te triviaal ;)

Ipsa Scientia Potestas Est
NNID: ShinNoNoir


Acties:
  • 0 Henk 'm!

Verwijderd

.oisyn schreef op maandag 04 januari 2010 @ 12:26:
Hij voldoet anders gewoon aan de regels die je hebt opgesteld :Y)
Die had ik ook al bedacht, vond hem alleen te flauw om te posten.. :9
Maar ik vind het een beetje mindere opdracht, niet echt nuttig. :P

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Zijn jullie bang om een RSA opdracht te doen, of zo?

Acties:
  • 0 Henk 'm!

  • BtM909
  • Registratie: Juni 2000
  • Niet online

BtM909

Watch out Guys...

Jij niet dan?

Laat zelf eens wat zien? :)

Ace of Base vs Charli XCX - All That She Boom Claps (RMT) | Clean Bandit vs Galantis - I'd Rather Be You (RMT)
You've moved up on my notch-list. You have 1 notch
I have a black belt in Kung Flu.


Acties:
  • 0 Henk 'm!

  • Soultaker
  • Registratie: September 2000
  • Laatst online: 02:44
Verwijderd schreef op zondag 03 januari 2010 @ 23:55:
Iets wat ik aan het begin van cursus Java (november) moest kloppen:
[..]
Beetje lang, maar goed, het werkt wel. :p
Erg mooi. :) Ik vind 'm niet overdreven lang, eerlijk gezegd. Java code is gewoon niet zo heel compact (of je moet alles op één regel gaan plempen, wat wel mag, maar niet echt mooi is).
Lame. :P Het is trouwens niet alleen een quine, maar ook een polyglot. Het is ook een geldige quine in Brainfuck, Perl, Ruby, PHP, lua en alle andere talen die lege invoer als programma accepteren.

Ik heb m'n quine in Brainfuck ook afgemaakt:
Brainfuck:
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
Load data which encodes the program after this data using bytes 1 through 7
to encode the Brainfuck characters:
    1 = plus
    2 = minus
    3 = left angle bracket
    4 = right angle bracket
    5 = left square bracket
    6 = right square bracket
    7 = period

>+++++>+++++>++>++++>++++>+>+++>+++>++++++>+++>++++++>++++>++++>++++>+++++>+++>+
++>+>+>+>+>+>+>+>+>+++++>++>++++>+>+>+>+>+>+>+>+>+++>++++++>++++>++>++>+++++++>+
+>++>++>++>++>++>++>++>++>++>++>++>++>++>++>++>++>++>++>+++++++>++++>++>+++++>++
>+++>+++++++>++++>+++++>++>+++>+++++++>++++>+++++>++>+++>+++++++>++++>+++++>++>+
++>+++++++>++++>+++++>++>+++>+++++++>++++>+++++>++>+++>+++++++>+++++>++>++++++>+
+>++>++>++>++++>++++++>+++>+>+>++++>++++++>+>+>+>+>+>+++++>++>+++>+>+>+>+>+>+>++
++>++++++>+++>++>++++>++++++>+++>+>+>++++>++++++>+++>+>+>+>+>+>+>+>+>+>+>+>+>+>+
>+>++++>++++++>+++>+>+>++++>++++++>+++>+++++>++>+++>+>++++>++++++>++++>++++>++++
++>+++>+++>+++>+++++>+++>++++++>++++>+++++>+++++++>++++>++++++

we need to make some room in front (at least three spaces)

[[->>+<<]<]>>>              shift data two places to the right
                            and then move to start of data

For each data byte I'm going to print out code to load it and decode it into its
ASCII character value so I can print it later

[   tape now looks like:   a b 0 0 _x_ y z

    construct a right angle bracket (ASCII 62) to the left of x and print it
    <<++++++++[->++++++++<]>-- .

    subtract 19 to turn right angle bracket into plus sign and print it
    ------------------- .

    >-
    tape now looks like:    a b 0 _plus_ (x min 1) y z

    [- <.>  two
        [- <.>  three
            [- <.>  four
                [- <.>  five
                    [- <.>  six
                        [- <. seven
                            initialized to negative 4 to create period
                           [-]---->
                        ]
                        add 2 to turn left into right square bracket
                        <++>
                    ]
                    add 29 to turn right angle bracket into left square bracket
                    +++++[-<++++++>]<->
                ]
                add 2 to turn left angle bracket into right angle bracket
                <++>
            ]
            add 15 to turn minus into left angle bracket
            <+++++++++++++++>
        ]
        add 2 to turn plus into minus
        <++>
    ]

    <[-<+>]         move decoded char to left
    >>              move to next encoded byte
]

now the tape contains ASCII source for the remainder of the program

<<<[<]>[.>]         move to front and print


Uiteraard print ik niet al die commentaar en whitespace mee, dus je moet 'm één keer uitvoeren om een echte quine te krijgen. Die ziet er dan zo uit (maar dan op één regel):
Brainfuck:
1
2
3
4
5
6
7
8
9
10
11
>+++++>+++++>++>++++>++++>+>+++>+++>++++++>+++>++++++>++++>++++>++++>+++++>+++>+
++>+>+>+>+>+>+>+>+>+++++>++>++++>+>+>+>+>+>+>+>+>+++>++++++>++++>++>++>+++++++>+
+>++>++>++>++>++>++>++>++>++>++>++>++>++>++>++>++>++>++>+++++++>++++>++>+++++>++
>+++>+++++++>++++>+++++>++>+++>+++++++>++++>+++++>++>+++>+++++++>++++>+++++>++>+
++>+++++++>++++>+++++>++>+++>+++++++>++++>+++++>++>+++>+++++++>+++++>++>++++++>+
+>++>++>++>++++>++++++>+++>+>+>++++>++++++>+>+>+>+>+>+++++>++>+++>+>+>+>+>+>+>++
++>++++++>+++>++>++++>++++++>+++>+>+>++++>++++++>+++>+>+>+>+>+>+>+>+>+>+>+>+>+>+
>+>++++>++++++>+++>+>+>++++>++++++>+++>+++++>++>+++>+>++++>++++++>++++>++++>++++
++>+++>+++>+++>+++++>+++>++++++>++++>+++++>+++++++>++++>++++++[[->>+<<]<]>>>[<<+
+++++++[->++++++++<]>--.-------------------.>-[-<.>[-<.>[-<.>[-<.>[-<.>[-<.[-]--
-->]<++>]+++++[-<++++++>]<->]<++>]<+++++++++++++++>]<++>]<[-<+>]>>]<<<[<]>[.>]

Ik had gehoopt 'm wat korter te krijgen, maar dat blijkt dus best lastig te zijn. :)


Verwijderd schreef op maandag 04 januari 2010 @ 16:04:
Zijn jullie bang om een RSA opdracht te doen, of zo?
Ik zag dat ik 'm zelf bij Project Euler overgeslagen had. Ik vermoed dat dat niet zonder reden was. :P

[ Voor 6% gewijzigd door Soultaker op 04-01-2010 18:04 ]


Acties:
  • 0 Henk 'm!

  • Erwinz
  • Registratie: Augustus 2007
  • Laatst online: 11-02-2022
Heb het topic ook eens doorgelezen, meeste opdrachten heb ik al eens gedaan op Project Euler / Netforce / Andere websites :P

Hier ff mn PHP quine:
code:
1
2
3
4
<?php 
    $str = '<?php $str = %s%s%s; printf($str, chr(39), $str, chr(39)); ?>'; 
    printf($str, chr(39), $str, chr(39));
?>

Best simpel, output zet wel de code op 1 regel, maar als die je weer uitvoert is het precies dezelfde.

Zou zo'n competitie als die van rummikub wel vet vinden. Iemand daar nog ideeën voor? :)

Acties:
  • 0 Henk 'm!

Verwijderd

Een hint voor de rsa puzzel: als x^y = 1 mod n dan is y een deler van phi(n) en elke y' met x^y' = 1 mod n is een veelvoud van de kleinste y met x^y = 1 mod n.

Stel nu dat je de kleinste y weet. Wat kan je daar dan mee doen?

Acties:
  • 0 Henk 'm!

  • Soultaker
  • Registratie: September 2000
  • Laatst online: 02:44
Verwijderd schreef op maandag 11 januari 2010 @ 01:49:
Een hint voor de rsa puzzel: als xy = 1 mod n dan is y een deler van phi(n) en elke y' met xy' = 1 mod n is een veelvoud van de kleinste y met xy = 1 mod n.
Is dat een gevolg van de Chinese reststelling of kun je dat op een andere manier afleiden?

Ik ben principieel tegen Project Euler problemen waar ik de Chinese reststelling voor nodig heb, want die snap ik nooit. :P

Acties:
  • 0 Henk 'm!

Verwijderd

Soultaker schreef op maandag 11 januari 2010 @ 14:55:
[...]

Is dat een gevolg van de Chinese reststelling of kun je dat op een andere manier afleiden?
http://en.wikipedia.org/wiki/Euler's_theorem zegt dat xϕ(n) = 1 (mod n) als gcd(x, n) = 1. Een intuitief bewijs is te vinden op http://f2.org/maths/nthproof.html.

Dat elke y' een veelvoud is van de kleinste y kan je zien op de volgende manier. Stel y' is niet een veelvoud van y. Dan is ay' + ky = 1 (mod n), want met 1 vermenigvuldigen verandert weinig. Omdat y' niet deelbaar is door y is er een negatieve k zodat y' + ky kleiner is dan y. Dus y is niet de kleinste waarde, tegenspraak.

Acties:
  • 0 Henk 'm!

  • - peter -
  • Registratie: September 2002
  • Laatst online: 09-09 20:00
Erwinz schreef op zondag 10 januari 2010 @ 15:35:

Zou zo'n competitie als die van rummikub wel vet vinden. Iemand daar nog ideeën voor? :)
Iemand had geopperd om een zeeslag competitie te gaan houden. Dat leek me wel aardig.

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
mijn zegen hebben jullie

Acties:
  • 0 Henk 'm!

  • Dricus
  • Registratie: Februari 2002
  • Laatst online: 10:43

Dricus

ils sont fous, ces tweakers

Bij deze nog even een one-line-quine van mij in C#. Niet revolutionair, maar wel geinig (vind ik dan :P):
C#:
1
namespace Q{class P{const string s="namespace Q{0}class P{0}const string s={1}{2}{1};static void Main(){0}System.Console.Write(s,(char)123,(char)34,s,(char)125);{3}{3}{3}";static void Main(){System.Console.Write(s,(char)123,(char)34,s,(char)125);}}}

Op de kop af 250249 karakters :).

Stel niet uit tot morgen wat je vandaag nog tot morgen kunt uitstellen...


Acties:
  • 0 Henk 'm!

  • Onbekend
  • Registratie: Juni 2005
  • Laatst online: 09:42

Onbekend

...

- peter - schreef op maandag 11 januari 2010 @ 22:54:
[...]

Iemand had geopperd om een zeeslag competitie te gaan houden. Dat leek me wel aardig.
Klopt, maar ik liep tegen problemen aan.
Bij mij, op welke manier ik dat ook probeer, komen niet alle POST en GET-requests aan. Soms is dat wel tot 70% verlies en daarmee kan ik geen testprogramma maken. :(

Ik heb de mogelijkheden met de functies file_post_contents, fsockopen en fopen geprobeerd om de requests te ontvangen, en ook vele voorbeelden van het internet geprobeerd maar het percentage verliesberichten blijft gewoon veel te hoog en is onbruikbaar.
Nu ik dit typ zit ik te denken dat het aan mijn webserver zou kunnen liggen. Ik gebruik al vele jaren Abyss Web Server maar zal deze week eens Apache installeren.

Speel ook Balls Connect en Repeat


Acties:
  • 0 Henk 'm!

  • Soultaker
  • Registratie: September 2000
  • Laatst online: 02:44
Onbekend schreef op dinsdag 12 januari 2010 @ 18:59:
Bij mij, op welke manier ik dat ook probeer, komen niet alle POST en GET-requests aan. Soms is dat wel tot 70% verlies en daarmee kan ik geen testprogramma maken. :(
Ligt dat aan de client (juryprogramma) of de server (speler)? Met Rummikub had je er aan de spelerskant niet zoveel last van.

Wat betreft de client: ik heb de jurysoftware van de Rummikubcompetitie al wel gepost; misschien kun je daar wat inspiratie uithalen. Ik had met PHP noch met C++ problemen, hoewel ik in beide gevallen cURL gebruikte voor de daadwerkelijke HTTP requests.

Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 12-09 15:22

.oisyn

Moderator Devschuur®

Demotivational Speaker

Hier dan maar m'n C++ quine
C++:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <cstdio>
#include <algorithm>

using namespace std;
void o1(const char * s) { for(;*s;++s) putchar(*s == 124 ? 10 : *s); }
void o2(const char * s) { putchar(34); for(;*s;++s) putchar(*s); putchar(34); }

int main()
{
    const char * s[] =
    {
        ",|     ",
        "#include <cstdio>|#include <algorithm>||using namespace std;|void o1(const char * s) { for(;*s;++s) putchar(*s == 124 ? 10 : *s); }|void o2(const char * s) { putchar(34); for(;*s;++s) putchar(*s); putchar(34); }||int main()|{| const char * s[] =| {|      ",
        "|  };| void (*f[2])(const char *) = { o1, o2 };|   int d[] = { 1, 0, 0, 1, 0, 2, 2 };| for (int i = 0; i < 7; i++)|    {|      f[0](s[d[i]]);|     swap(f[0], f[1]);|  }|}|"
    };
    void (*f[2])(const char *) = { o1, o2 };
    int d[] = { 1, 0, 0, 1, 0, 2, 2 };
    for (int i = 0; i < 7; i++)
    {
        f[0](s[d[i]]);
        swap(f[0], f[1]);
    }
}

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Acties:
  • 0 Henk 'm!

  • Soultaker
  • Registratie: September 2000
  • Laatst online: 02:44
Nice. Die alternerende uitvoerfuncties zijn wel lekker obscuur. :+

Acties:
  • 0 Henk 'm!

  • Onbekend
  • Registratie: Juni 2005
  • Laatst online: 09:42

Onbekend

...

Ik heb vandaag Apache geïnstalleerd, en zojuist veelvuldig getest met het ontvangen van de POST en GET requests. Het resultaat ziet er veelbelovend uit, want elk request wordt keurig ontvangen.
De Abyss Web Server heb ik inmiddels verbannen van mijn systeem en aangezien ook andere projecten ( waaronder [php] Hoe verzend je realtime data tussen twee gebruikers?) ook problemen hadden met GET requests, verwacht ik ook met dat project weer verder aan de gang te kunnen gaan.
Ik denk dat ik de afgelopen 2 jaar totaal zo'n 300 uur tijd verknoeid aan dit probleem. :(

@Soultaker:
Ik heb jouw code ook bekeken en heb mij zeker later inspireren voor de server en client code. Ik gebruik sockets om de requests af te vuren.

De meeste code is al klaar, en ik moet nog een paar testjes uitvoeren zodat de Programmeervuur Zeeslag kan beginnen. :)

Speel ook Balls Connect en Repeat


Acties:
  • 0 Henk 'm!

  • Jegorex
  • Registratie: April 2004
  • Laatst online: 03-09 23:24
Komt er dan voor zeeslag een apart topic of wordt dat hier weer tussen gestopt?

Acties:
  • 0 Henk 'm!

  • --Niels--
  • Registratie: September 2004
  • Laatst online: 13-09 10:32
Gezien de reactie van Creepy, lijkt mij een apart topic een beter idee:
Creepy schreef op dinsdag 17 november 2009 @ 09:07:
Even een _/-\o_ voor Soultaker voor z'n "mini" PRG contest :P Aangezien volgende week de volgende testronde al is en de finale een week daarna lijkt het me beter dat dit gewoon in dit topic blijft staan. Mocht iemand in de toekomst zo'n soort contest willen starten laat het dan even aan de mods hier weten. Gezien de uitgebreide post voor de uitleg, regels, implementatie e.d. kunnen we dat prima in een PRG contest gieten en ook een apart topic ervoor starten. Dan kan het ook wat langer blijven lopen indien nodig.

Acties:
  • 0 Henk 'm!

  • Erwinz
  • Registratie: Augustus 2007
  • Laatst online: 11-02-2022
Nice, als die comptetitie na volgende week komt doe ik mee :D (Dan heb ik weer tijd :P )

Acties:
  • 0 Henk 'm!

  • Onbekend
  • Registratie: Juni 2005
  • Laatst online: 09:42

Onbekend

...

Op dit moment heb ik het vrij druk, maar ik hoop eind volgende week de competitie te laten beginnen.
Ik moet nog een paar puntjes op de i zetten en wat aan foutafhandeling doen. :)

Gezien de eerdere reacties zal ik de opdracht in een nieuw topic openen en in dit topic een linkje daar naar toe plaatsen.

Speel ook Balls Connect en Repeat


Acties:
  • 0 Henk 'm!

  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
Als je je voorstel eerst even naar een van de PRG Mod's wil sturen, dan kunnen we er eventueel nog een paar opmerking op geven.

“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”


Acties:
  • 0 Henk 'm!

  • Onbekend
  • Registratie: Juni 2005
  • Laatst online: 09:42

Onbekend

...

Prima, dat zal ik doen.

Speel ook Balls Connect en Repeat


Acties:
  • 0 Henk 'm!

  • DexterDee
  • Registratie: November 2004
  • Laatst online: 12-09 17:18

DexterDee

I doubt, therefore I might be

Erwinz schreef op zondag 10 januari 2010 @ 15:35:
Heb het topic ook eens doorgelezen, meeste opdrachten heb ik al eens gedaan op Project Euler / Netforce / Andere websites :P

Hier ff mn PHP quine:
code:
1
2
3
4
<?php 
    $str = '<?php $str = %s%s%s; printf($str, chr(39), $str, chr(39)); ?>'; 
    printf($str, chr(39), $str, chr(39));
?>

Best simpel, output zet wel de code op 1 regel, maar als die je weer uitvoert is het precies dezelfde.

Zou zo'n competitie als die van rummikub wel vet vinden. Iemand daar nog ideeën voor? :)
Dat kan korter in PHP :)

Wie maakt de kortste quine in PHP?

Dit is mijn inzending:
PHP:
1
<? printf($a='<? printf($a=%c%s%c,39,$a,39);',39,$a,39);

Try to beat that :>

Klik hier om mij een DM te sturen • 3245 WP op ZW


Acties:
  • 0 Henk 'm!

  • PrisonerOfPain
  • Registratie: Januari 2003
  • Laatst online: 26-05 17:08
DexterDee schreef op donderdag 14 januari 2010 @ 18:55:
[...]

Dat kan korter in PHP :)

Wie maakt de kortste quine in PHP?

Dit is mijn inzending:
PHP:
1
<? printf($a='<? printf($a=%c%s%c,39,$a,39);',39,$a,39);

Try to beat that :>
PHP:
1
<? printf($a='<? printf($a=%c%s%c,39,$a,39)',39,$a,39)

>:)

Acties:
  • 0 Henk 'm!

  • DexterDee
  • Registratie: November 2004
  • Laatst online: 12-09 17:18

DexterDee

I doubt, therefore I might be

PrisonerOfPain schreef op donderdag 14 januari 2010 @ 18:56:
[...]


PHP:
1
<? printf($a='<? printf($a=%c%s%c,39,$a,39)',39,$a,39)

>:)
helaas, de output is niet hetzelfde:
code:
1
Parse error: syntax error, unexpected $end in /private/tmp/q.php on line 2


PHP vindt het niet zo leuk, een statement zonder semicolon >:)

Klik hier om mij een DM te sturen • 3245 WP op ZW


Acties:
  • 0 Henk 'm!

  • PrisonerOfPain
  • Registratie: Januari 2003
  • Laatst online: 26-05 17:08
DexterDee schreef op donderdag 14 januari 2010 @ 18:59:
[...]

helaas, de output is niet hetzelfde:
code:
1
Parse error: syntax error, unexpected $end in /private/tmp/q.php on line 2


PHP vindt het niet zo leuk, een statement zonder semicolon >:)
Het is al een tijd geleden, die semicolon kun je enkel weglaten bij een ?>. My bad.

Acties:
  • 0 Henk 'm!

  • PierreAronnax
  • Registratie: Maart 2002
  • Niet online
DexterDee schreef op donderdag 14 januari 2010 @ 18:55:
[...]

Dat kan korter in PHP :)

Wie maakt de kortste quine in PHP?

Dit is mijn inzending:
PHP:
1
<? printf($a='<? printf($a=%c%s%c,39,$a,39);',39,$a,39);

Try to beat that :>
Ok:

PHP:
1
<? printf($a='<? printf($a=%c%s%1$c,39,$a);',39,$a);

:)

Pierre - Motormedia.nl - Motor-Forum.nl - Motorshopper.nl - Motormeuk.nl - Motorstek.nl


Acties:
  • 0 Henk 'm!

  • DexterDee
  • Registratie: November 2004
  • Laatst online: 12-09 17:18

DexterDee

I doubt, therefore I might be

PierreAronnax schreef op donderdag 14 januari 2010 @ 19:10:
[...]

Ok:

PHP:
1
<? printf($a='<? printf($a=%c%s%1$c,39,$a);',39,$a);

:)
Slim gebruik van de placeholder tag, good thinking!

Met die wetenschap maak ik 'm nog 2 bytes korter >:)
PHP:
1
<?printf($a='<?printf($a=%c%s%1$c,39,$a);',39,$a);


Kan me niet voorstellen dat 'ie nog veel korter kan, maar wie weet :)

Klik hier om mij een DM te sturen • 3245 WP op ZW


Acties:
  • 0 Henk 'm!

  • fiftyhillswest
  • Registratie: Oktober 2009
  • Laatst online: 11-09 18:26
Oh jawel hoor, er kunnen nog twee bytes af, maar dan verandert het programma wel:
PHP:
1
<?printf($a='<?printf($a=%c%s%1$c,4,$a);',4,$a);


Kan iemand hem nog korter maken? :>

Acties:
  • 0 Henk 'm!

  • marqram
  • Registratie: Januari 2008
  • Laatst online: 12-08 23:57
fiftyhillswest schreef op donderdag 14 januari 2010 @ 20:33:
Oh jawel hoor, er kunnen nog twee bytes af, maar dan verandert het programma wel:
PHP:
1
<?printf($a='<?printf($a=%c%s%1$c,4,$a);',4,$a);


Kan iemand hem nog korter maken? :>
Ik weet niet of dit ook onder een quine valt(had er nog nooit van gehoord), maar volgens de definitie "In computing, a quine is a computer program which produces a copy of its own source code as its only output.", is dit nog korter:

q.php:
PHP:
1
<?readfile('q.php');

Acties:
  • 0 Henk 'm!

  • fiftyhillswest
  • Registratie: Oktober 2009
  • Laatst online: 11-09 18:26
Die is inderdaad geloof ik het allerkortst :P

Acties:
  • 0 Henk 'm!

  • DexterDee
  • Registratie: November 2004
  • Laatst online: 12-09 17:18

DexterDee

I doubt, therefore I might be

fiftyhillswest schreef op donderdag 14 januari 2010 @ 20:33:
Oh jawel hoor, er kunnen nog twee bytes af, maar dan verandert het programma wel:
PHP:
1
<?printf($a='<?printf($a=%c%s%1$c,4,$a);',4,$a);


Kan iemand hem nog korter maken? :>
Dat is helaas geen goede quine. De sourcecode moet exact overeenkomen met de output en dat is niet het geval bij jouw versie.
marqram schreef op donderdag 14 januari 2010 @ 20:51:
Ik weet niet of dit ook onder een quine valt(had er nog nooit van gehoord), maar volgens de definitie "In computing, a quine is a computer program which produces a copy of its own source code as its only output.", is dit nog korter:

q.php:
PHP:
1
<?readfile('q.php');
Ook dat is niet volgens de regels van een echte quine:
A quine takes no input. Allowing input would permit the source code to be fed to the program via the keyboard, opening the source file of the program, and similar mechanisms.

Keep on trying :)

Klik hier om mij een DM te sturen • 3245 WP op ZW


Acties:
  • 0 Henk 'm!

  • Soultaker
  • Registratie: September 2000
  • Laatst online: 02:44
DexterDee schreef op donderdag 14 januari 2010 @ 18:55:
PHP:
1
<? printf($a='<? printf($a=%c%s%c,39,$a,39);',39,$a,39);

Try to beat that :>
PHP:
1
<?printf($a='<?printf($a=%c%s%1$c,39,$a);',39,$a);

Acties:
  • 0 Henk 'm!

  • DexterDee
  • Registratie: November 2004
  • Laatst online: 12-09 17:18

DexterDee

I doubt, therefore I might be

Soultaker schreef op donderdag 14 januari 2010 @ 21:07:
[...]

PHP:
1
<? printf($a='<? printf($a=%c%s%1$c,39,$a);',39,$a);
Bedankt voor je bijdrage, maar we waren inmiddels al ietsje verder dan die quoted post ;)

Mijn laatste bijdrage was deze:
PHP:
1
<?printf($a='<?printf($a=%c%s%1$c,39,$a);',39,$a);


Welke volgens mij exact overeenkomst met die van jou, ware het niet dat ik deze 5 posts voor je al heb gepost :)

Klik hier om mij een DM te sturen • 3245 WP op ZW


Acties:
  • 0 Henk 'm!

  • Soultaker
  • Registratie: September 2000
  • Laatst online: 02:44
Oops, inderdaad, ik had verder moeten lezen. ;)
Nou ja, we komen iig op hetzelfde uit.

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
*laat maar*

[ Voor 99% gewijzigd door Verwijderd op 18-01-2010 15:39 ]


Acties:
  • 0 Henk 'm!

  • Dricus
  • Registratie: Februari 2002
  • Laatst online: 10:43

Dricus

ils sont fous, ces tweakers

Geen touw aan vast te knopen....
  • In je formule is een variabele q aanwezig die nergens gedefinieerd wordt.
  • In de input beschrijving zie ik 2x een p. Één van die twee zal wellicht q zijn?
  • Wat is nu precies een "oneffenheid"? Is dat een hoek? Zo ja, is het dan zo dat aantal_oneffenheden = aantal_gezichten + 1?
  • Wat zijn "verticale hoeken"?
  • Wat zijn xi en yi?
  • De opdrachtomschrijving zit vol met grammaticale fouten, wat het geheel lastig leesbaar maakt.
  • Je gebruikt nogal vreemde termen binnen de gegeven context (gezicht, lijn, zin).
  • Enzovoort, enzoverder.
Je opdrachtomschrijving is echt heel erg onduidelijk en warrig opgesteld...

Stel niet uit tot morgen wat je vandaag nog tot morgen kunt uitstellen...


Acties:
  • 0 Henk 'm!

  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 14:06

Creepy

Tactical Espionage Splatterer

Net even wat offtopic zaken naar de Coffee Corner verhuisd.... gelieve daar verder te gaan indien nodig ;)
offtopic:
afraca: :P

[ Voor 10% gewijzigd door Creepy op 18-01-2010 17:21 ]

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


Acties:
  • 0 Henk 'm!

Verwijderd

Dricus schreef op maandag 18 januari 2010 @ 15:28:
Geen touw aan vast te knopen....
  • In je formule is een variabele q aanwezig die nergens gedefinieerd wordt.
  • In de input beschrijving zie ik 2x een p. Één van die twee zal wellicht q zijn?
  • Wat is nu precies een "oneffenheid"? Is dat een hoek? Zo ja, is het dan zo dat aantal_oneffenheden = aantal_gezichten + 1?
  • Wat zijn "verticale hoeken"?
  • Wat zijn xi en yi?
  • De opdrachtomschrijving zit vol met grammaticale fouten, wat het geheel lastig leesbaar maakt.
  • Je gebruikt nogal vreemde termen binnen de gegeven context (gezicht, lijn, zin).
  • Enzovoort, enzoverder.
Je opdrachtomschrijving is echt heel erg onduidelijk en warrig opgesteld...
Verticale hoek == rechte hoek misschien? :P

Acties:
  • 0 Henk 'm!

  • Onbekend
  • Registratie: Juni 2005
  • Laatst online: 09:42

Onbekend

...

Speel ook Balls Connect en Repeat


Acties:
  • 0 Henk 'm!

  • jvdmeer
  • Registratie: April 2000
  • Laatst online: 00:20
offtopic:
Ben ik de enige waar ProjectEuler al de hele dag onbereikbaar is?

Ik probeerde nog even de exacte regels van 276 te lezen.

Acties:
  • 0 Henk 'm!

  • Murk
  • Registratie: Februari 2007
  • Laatst online: 24-08 13:37

Murk

Is this thing on?

Dus ik kan gewoon in een willekeurige programmeertaal een oplossing bedenken voor één van de opdrachten in de startpost? Of is er een 'huidige' opdracht waar oplossingen bedacht voor moeten worden?

Ik zag dit topic staan bij de verkiezingsuitslag als topic die het meeste aan communitygevoel bijdraagt.. nou dan is de community wel een beetje dood of niet :D Grapje natuurlijk. Maar het lijkt me leuk om eens wat dingetjes hiervan te maken als ik klaar ben met mijn tentamens volgende week. Weinig te programmeren voor mijn ict studie op het moment en dat vind ik wel jammer. Wil er mee bezig blijven en nieuwe dingen leren. Ik ga dit topic volgen :)

"There are two hard things in computer science: cache invalidation, naming things, and off-by-one errors."


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Murk schreef op woensdag 24 maart 2010 @ 00:52:
Dus ik kan gewoon in een willekeurige programmeertaal een oplossing bedenken voor één van de opdrachten in de startpost? Of is er een 'huidige' opdracht waar oplossingen bedacht voor moeten worden?
In principe zou je bijna in iedere taal, op SQL gebaseerde na, wel een oplossing kunnen schrijven.
En verder zou je de oude opdrachten zeker kunnen gebruiken.
Ik zag dit topic staan bij de verkiezingsuitslag als topic die het meeste aan communitygevoel bijdraagt.. nou dan is de community wel een beetje dood of niet :D
Ik wist het zelf niet eens dat een van mijn eigen topics eraan meedeed en had gewonnen, tot nu. :X
Een topic zoals deze kost tijd en energie om te onderhouden, wat ik niet alleen kan. Dus daarom ligt het nu gewoon stil. Binnenkort maar weer eens leven in blazen. :)

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter

Verdeel het koninkrijk

Er was eens een koning die alle rijkdom had van de hele wereld. Hij had vier zonen waarvan hij ieder even veel hield als van de ander.

De jaren verstreken en op een dag de koning was stervende. Hij besloot om zijn koninkrijk te verdelen aan zijn zonen. Laten we het koninkrijk zien als vierkanten die aan elkaar vast zitten.

Afbeeldingslocatie: http://uva.onlinejudge.org/external/9/p916.gif

Sommige locaties hadden speciale natuurlijke bronnen zoals goud, wat gemarkeert wordt met 'G'. Andere plekken waar geen enkele natuurlijke bronnen aanwezig zijn die worden met 'X'

Een map van het koninkrijk in ASCII:

code:
1
2
3
4
XX
GG
GXXG
XXXX


De koning wilde dat elke zoon zelfde aantal vierkanten kreeg en dat alle vierkanten van die van dezelfde zoon waren aan elkaar verbonden zijn(verticaal of horizontaal) en dat de vorm van de het terein ook allemaal hezelfde zou zijn, met als uitzondering rotaties of reflecties.

De koning vroeg aan alle wijze mannen binnenin zijn koninkrijk om een oplossing te vinden voor dit probleem en na maanden denken vonden zij de volgende oplossing(het terein van elke zoon word aangegeven met een ander nummer)

code:
1
2
3
4
11
12
3224
3344


Maar wat als het land anders was, zou jij de oplossing kunnen vinden? Wat als de natuurlijke bronnen anders waren? En wat als een van de zonen een ander aantal kinderen zou krijgen, wat dan?
Probleem
Jouw taak is om een manier te vinden om stukken terrein in N verschillende percelen op te delen die precies dezelfde vorm (met als uitzondering rotaties of reflecties) en hetzelfde set aan natuurlijke bronnen hebben.
Input
Input begint met een enkele simpele nummer genaamd T wat het aantal testen moet aangeven die nog moeten komen.

Iedere test start met een lijn waarin drie integers in voorkomen en dat is L, C N(1 ≤ L,C ≤ 10 and 1 ≤ N ≤ 5), die het aantal lijnen en kolommen van de vierkant die het dichtsbij is wat het terein kan omsluiten, en wat natuurlijk het aantal N zonen die de koning heeft.

Daarna volgen L lijnen die de map van het terein aangeven met de volgende waarden:


• "#"is een vierkant wat niet bij het koninkrijk hoort.
• "." is een vierkant die wel bij het koninkrjik hoort.
• "A-Z" geeft per letter aan van een vierkant met een bepaalde type natuurlijke bronnen. G = is dus een vier kant die een betype G.


Eerste voorbeeld input komt overeen met de originele map eerder aangegeven.
Output
Voor elke test moet er een lijn komen die van "ja" of "nee" die aangeeft of het mogelijk is om het terein op te delen met de eerder gestelde voorwaarden.
Voorbeeld input
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
3
4 4 4
..##
GG##
G...
...G
4 4 4
..##
GG##
G...
...A
6 4 2
ABAB
CDCD
EFEF
ABAB
CDCD
EFEF
Voorbeeld output
code:
1
2
3
Ja
Nee
Ja

Acties:
  • 0 Henk 'm!

  • Murk
  • Registratie: Februari 2007
  • Laatst online: 24-08 13:37

Murk

Is this thing on?

BCDA
ABCD
ABCD
ABCD

Bij deze input, zou het antwoord dan eigenlijk "Ja" moeten zijn? Of moeten ook precies dezelfde stukken land/bronnen gekoppeld zijn?

"There are two hard things in computer science: cache invalidation, naming things, and off-by-one errors."


Acties:
  • 0 Henk 'm!

  • Jegorex
  • Registratie: April 2004
  • Laatst online: 03-09 23:24
Murk schreef op dinsdag 13 april 2010 @ 15:48:
BCDA
ABCD
ABCD
ABCD

Bij deze input, zou het antwoord dan eigenlijk "Ja" moeten zijn? Of moeten ook precies dezelfde stukken land/bronnen gekoppeld zijn?
Bij 2 en 4 zonen zal het antwoord ja zijn denk ik.

Acties:
  • 0 Henk 'm!

  • Onbekend
  • Registratie: Juni 2005
  • Laatst online: 09:42

Onbekend

...

Zijn er mensen die weer interesse hebben in een nieuwe programmeeropdracht?
Zo ja, hebben jullie zelf ideeën?

Speel ook Balls Connect en Repeat


Acties:
  • 0 Henk 'm!

  • Bolukan
  • Registratie: Oktober 2002
  • Laatst online: 23-08 23:43
Pagina: 1 ... 6 7 Laatste