Senter for Marxistiske og Matematiske Studium, Enschede (SMMSE)

16 juli 2008

 

Ein quine til

Som til skilnad frå dei to fyrste er uavhengig av teiknsett.

public class Q2 {
static char[] c = {'p','u','b','l','i','c','a','s','Q','2',
'{','t','h','r','[',']','=','}',';','n',
'v','o','d','m','(','S','g',')','0',',',
'3','8','f','j','<','.','e','+','"','\'',
'\\','|','?',':','y','!','-','1','%','6',
'5','>','k'};

static int[] i = {1,2,3,4,5,6,-1,6,4,7,8,8,-1,9,10,
-1,11,0,-4,8,12,7,12,5,6,-1,6,13,7,14,
15,16,-1,6,-1,17,-1,11,18,19,0,0,-4,8,12,
7,12,5,6,-1,5,20,12,15,16,-1,5,-1,17,-2,
11,18,19,0,0,-4,1,2,3,4,5,6,-1,8,12,
7,12,5,6,-1,21,22,5,23,-1,24,7,5,20,25,
26,12,14,5,20,27,15,16,-1,7,14,27,8,28,-1,
11,0,-8,1,25,29,30,31,32,28,19,0,-8,33,22,
14,-1,25,5,20,12,-1,34,17,29,19,34,35,6,36,
4,37,20,27,12,13,19,34,38,38,28,-1,11,0,-12,
26,12,14,5,20,27,-1,12,-1,17,-1,39,40,39,-1,
38,-1,25,6,15,34,16,17,17,40,41,40,40,-1,42,
42,-1,6,15,34,16,17,17,40,41,41,40,-1,43,-1,
39,41,41,39,-1,44,-1,39,39,28,-1,38,-1,6,15,
34,16,-1,38,-1,39,40,39,19,0,-12,26,45,8,12,
37,24,36,22,2,12,36,1,14,5,20,12,25,12,28,
19,0,-12,5,33,-1,25,34,46,17,6,36,4,37,20,
27,12,13,47,48,28,-1,26,45,8,12,37,24,36,22,
2,12,36,1,14,5,20,12,25,39,30,39,28,19,0,
-12,5,33,-1,25,25,34,38,48,28,49,48,29,17,17,
29,28,-1,26,45,8,12,37,24,36,22,2,12,36,1,
14,5,20,12,25,39,41,20,-23,39,28,19,0,-8,18,
0,-8,1,25,31,32,30,50,48,28,19,0,-8,33,22,
14,-1,25,5,20,12,-1,34,17,29,19,34,35,5,36,
4,37,20,27,12,13,19,34,38,38,28,-1,11,0,-12,
26,45,8,12,37,24,36,22,2,12,36,1,14,5,20,
12,25,5,15,34,16,28,19,0,-12,5,33,-1,25,34,
46,17,5,36,4,37,20,27,12,13,47,48,28,-1,26,
45,8,12,37,24,36,22,2,12,36,1,14,5,20,12,
25,39,30,39,28,19,0,-12,5,33,-1,25,25,34,38,
48,28,49,48,51,17,17,29,28,-1,26,45,8,12,37,
24,36,22,2,12,36,1,14,5,20,12,25,39,41,20,
-23,39,28,19,0,-8,18,0,-8,1,25,50,48,30,5,
36,4,37,20,27,12,13,28,19,0,-4,18,0,0,-4,
1,14,5,21,7,12,37,-1,8,12,7,12,5,6,-1,
21,22,5,23,-1,1,25,5,20,12,-1,20,30,5,20,
12,-1,24,28,-1,11,0,-8,33,22,14,-1,25,5,20,
12,-1,34,17,20,19,34,35,24,19,34,38,38,28,-1,
11,0,-12,5,33,-1,25,5,15,34,16,52,29,28,-1,
26,45,8,12,37,24,36,22,2,12,36,1,14,5,20,
12,25,6,15,5,15,34,16,47,48,16,28,19,0,-12,
37,4,8,37,-1,5,33,-1,25,5,15,34,16,17,17,
29,28,-1,26,45,8,12,37,24,36,22,2,12,36,1,
14,5,20,12,25,39,41,20,39,28,19,0,-12,37,4,
8,37,-1,33,22,14,-1,25,5,20,12,-1,53,17,29,
19,53,52,5,15,34,16,19,53,47,47,28,-1,26,45,
8,12,37,24,36,22,2,12,36,1,14,5,20,12,25,
39,-1,39,28,19,0,-8,18,0,-4,18,0,18};

public static void main(String[] args) {
p(0,38);
for (int j=0;j<c.length;j++) {
String t = "'" + (c[j]=='\'' || c[j]=='\\' ? "\\" : "") + c[j] + "'";
System.out.print(t);
if (j!=c.length-1) System.out.print(",");
if ((j+1)%10==0) System.out.print("\n ");
}
p(38,61);
for (int j=0;j<i.length;j++) {
System.out.print(i[j]);
if (j!=i.length-1) System.out.print(",");
if ((j+1)%15==0) System.out.print("\n ");
}
p(61,i.length);
}

private static void p(int n,int m) {
for (int j=n;j<m;j++) {
if (i[j]>0) System.out.print(c[i[j]-1]);
else if (i[j]==0) System.out.print("\n");
else for (int k=0;k>i[j];k--) System.out.print(" ");
}
}
}

15 juli 2008

 

To quines

Berre for moro skuld. To quines skrivne i Java.

public class Quine {
public static void main(String[] args) {
String s = "public class Quine {%n public static void main(String[] args) {%n String s = %2$c%1$s%2$c;%n System.out.printf(s, s, 34);%n }%n}";
System.out.printf(s, s, 34);
}
}


public class Q {
static byte[] c = {112,117,98,108,105,99,32,99,108,97,115,115,32,81,32,123,
10,32,32,32,32,115,116,97,116,105,99,32,98,121,116,101,
91,93,32,99,32,61,32,123,125,59,10,10,32,32,32,32,
112,117,98,108,105,99,32,115,116,97,116,105,99,32,118,111,
105,100,32,109,97,105,110,40,83,116,114,105,110,103,91,93,
32,97,114,103,115,41,32,123,10,32,32,32,32,32,32,32,
32,102,111,114,32,40,105,110,116,32,105,61,48,59,105,60,
52,48,59,105,43,43,41,32,83,121,115,116,101,109,46,111,
117,116,46,112,114,105,110,116,40,40,99,104,97,114,41,32,
99,91,105,93,41,59,10,32,32,32,32,32,32,32,32,102,
111,114,32,40,105,110,116,32,105,61,48,59,105,60,99,46,
108,101,110,103,116,104,59,105,43,43,41,32,123,10,32,32,
32,32,32,32,32,32,32,32,32,32,83,121,115,116,101,109,
46,111,117,116,46,112,114,105,110,116,40,99,91,105,93,41,
59,10,32,32,32,32,32,32,32,32,32,32,32,32,105,102,
32,40,105,33,61,99,46,108,101,110,103,116,104,45,49,41,
32,83,121,115,116,101,109,46,111,117,116,46,112,114,105,110,
116,40,34,44,34,41,59,10,32,32,32,32,32,32,32,32,
32,32,32,32,105,102,32,40,40,105,43,49,41,37,49,54,
61,61,48,41,32,83,121,115,116,101,109,46,111,117,116,46,
112,114,105,110,116,40,34,92,110,32,32,32,32,32,32,32,
32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,
34,41,59,10,32,32,32,32,32,32,32,32,125,10,32,32,
32,32,32,32,32,32,102,111,114,32,40,105,110,116,32,105,
61,52,48,59,105,60,99,46,108,101,110,103,116,104,59,105,
43,43,41,32,83,121,115,116,101,109,46,111,117,116,46,112,
114,105,110,116,40,40,99,104,97,114,41,32,99,91,105,93,
41,59,10,32,32,32,32,125,10,125};

public static void main(String[] args) {
for (int i=0;i<40;i++) System.out.print((char) c[i]);
for (int i=0;i<c.length;i++) {
System.out.print(c[i]);
if (i!=c.length-1) System.out.print(",");
if ((i+1)%16==0) System.out.print("\n ");
}
for (int i=40;i<c.length;i++) System.out.print((char) c[i]);
}
}

01 januar 2008

 

Brev frå Schickard til Kepler

Den fyrste reknemaskina vi kjenner til vart laga av Wilhelm Schickard i 1623. Dei einaste kjeldene som finst om denne maskina er to brev han skreiv til Johannes Kepler, saman med nokre grove skisser han laga av maskina. Vi gjengjev nedanfor (for seinare bruk) desse skissene og omsetjing av utdrag frå breva som omtalar reknemaskina.

Breva er skrivne på latinsk og finst i Johannes Kepler, Gesammelte Werke. Omsetjinga mi er basert på fire omsetjingar i (Adam 1974; Nill 1999; Redin; Williams 1990) for det fyrste brevet og to omsetjingar i (Nill 1999; Redin) for det andre brevet, med ei viss forrang til (Nill 1999) i båe høva. Desse omsetjingane samsvarar ikkje heilt, så omsetjing mi er truleg ikkje heilt nøyaktige, men eg trur hovudbodskapen skal vere der.

Skisse med notatar



Utdrag frå brev til Johannes Kepler, 20. september 1623

Vidare har eg i det siste freista gjere mekanisk det same som du gjer ved rekning, og har konstruert ei maskin med elleve heile og seks ufullstendige tannhjul som på ein augeblink automatisk reknar saman tal: adderer, subtraherer, multipliserer og dividerer. Du ville sette i å le om du kunne sjå korleis ho av seg sjølv aukar siffera til venstre når det går over ein tiar eller ein hundrar, eller tek bort frå dei ved subtraksjon . . .

Utdrag frå brev til Johannes Kepler med skisse, 25. februar 1624



Mellomtann- hjula flyttar seg alle naudsynleg mot venstre, ingen mot høgre, noko som forlangar serleg varsemd.
Eg vil ved eit anna høve gje ei meir nøyaktig forklaring av den matematiske maskina; for no, ta denne eg skriv i all hast: aaa er knappane til dei loddrette sylindrane, der multiplikasjonane til siffera er skrivi, og dei vert syna, om ein treng dei, gjennom dei flyttbare vindauga bbb. ddd er på innsida festa til tannhjul med ti tenner, som griper i kvarandre slik at når eit til høgre vert dreia rundt ti gonger vil det som er kopla på til venstre gå rundt ein gong, eller når det går rundt hundre gonger, vil det tredje verte flytta ein gong osb., riktig nok i den same retninga, noko som gjer ei samankopling til tilsvarande tannhjul h naudsynt. Kvart tal er synleg i hòla ccc på det midtre panelet. Endeleg peikar e på talskiver på den nedste panelet og f på tilsvarande vis på hòl som gjer synleg dei tala ein treng når maskina opererer. Men korleis det skjer kan ein ikkje raskt forklare. Det vil ein lettare forstå ved å sjå objektet. No hadde eg fått tinga eit eksemplar for Dykk frå Johann Pfister som er busett her, men dette halvferdige eksemplaret vart offer for ein brann som uforvarande braut ut der om natta for tre dagar sidan, saman med nokre andre av sakane mine, fyst og fremst nokre kopparstikk. Dette skulle Mütschelin kunne fortelje Dykk detaljert om. Dette tapet tek eg svært tungt, serleg av di det ikkje er tid til å raskt skaffe ein erstatning.

Kjelder

Adolf Adam. The Kepler-Schickart calculating machine. Vistas in Astronomy, 18(1):881—886, 1974.

Benjamin Nill. WWW-basierte interaktive Visualisierung der Rechenmaschine Wilhelm Schickards durch ein Java 3D-Applet, Studienarbeit, Universität Tübingen, 1999.

James Redin. A brief history of mechanical calculators. (Lesedato: 30. desember 2007)

Michael R. Williams. Early calcuation. I, William Aspray (red.), Computing before computers, side 3—58, Iowa State University Press, 1990.

Tidlegare tekstar

Ein quine til
To quines
Brev frå Schickard til Kepler
Rapport: Hjelper valkamp?
Prosjektskildring: Hjelper valkamp?
Operativsystemrevolusjonen
Perspektiv på fri/open programvare
Om ... misforståingar knytt til datateknologi II
Om misoppfatninga at fri/open programvare er kommu...
Til glede for nye brukarar

Arkiv

november 2005   desember 2005   februar 2006   april 2006   november 2006   desember 2006   januar 2007   februar 2007   mars 2007   august 2007   desember 2007   januar 2008   juli 2008  

This page is powered by Blogger. Isn't yours?