codepad
[
create a new paste
]
login
|
about
Language:
C
C++
D
Haskell
Lua
OCaml
PHP
Perl
Plain Text
Python
Ruby
Scheme
Tcl
#include <stdio.h> #include <stdlib.h> #include <time.h> #include <math.h> #include <limits.h> #include <string.h> int main(int argc, char* argv[]) { float gewichte[8]; float gesamt; int zahl=0; char antwort; int i,j; int falsch=0; float konstante=1.8; srand(time(0)); for (i=0;i<8;i++) gewichte[i]=rand(); printf("Hallo, ich bin dein neuronales Netz. Bringst du mir was bei?\nIch will etwas ueber Zahlen lernen."); printf(" Damit du siehst, was ich schon kann,\nwerde ich jetzt alle Zahlen von 1 bis 255 in gerade/ungerade "); printf("Zahlen\neinordnen und selber ueberpruefen, ob meine Antworten stimmen.\n\n"); for (zahl=1;zahl<256;zahl++) { gesamt=0; for (i=0;i<8;i++) { gesamt+=gewichte[i]*(float)((zahl >> i)&1); } if ((gesamt>0) && (zahl % 2)) falsch++; } printf("Ohje, von den 255 Zahlen habe ich %d falsch eingeordnet.",falsch); printf("Ich glaube,\ndu musst mir helfen."); printf("Du sagst mir eine Zahl zwischen 1 und 255 und ich sage dir,\nob es eine gerade oder ungerade Zahl ist, ok?\n"); printf("\nDanach sagst du mir, ob ich richtig oder falsch geantwortet habe.\n"); printf("Wenn du keine Lust mehr hast, gib einfach 0 ein. Also los gehts.\n"); while(1) { printf("\nBitte gib eine Zahl ein:"); scanf("%d",&zahl); if (zahl==0) break; gesamt=0; for (i=0;i<8;i++) { gesamt+=gewichte[i]*(float)((zahl >> i)&1); } konstante-=0.05; if (konstante<0.1) konstante=0.1; if (gesamt >0) { printf("Ich glaube, %d ist eine gerade Zahl.",zahl); } else{ printf("Ich glaube, %d ist eine ungerade Zahl.", zahl); } printf("Ist das richtig?(j/n):"); scanf("%s",&antwort); if ((antwort=='n') && (gesamt>0.0)) { for (i=0;i<8;i++) gewichte[i]-=konstante*(float)((zahl >> i)&1); } if ((antwort=='n') && (gesamt<=0)) { for (i=0;i<8;i++) gewichte[i]+=konstante*(float)((zahl >> i)&1); } printf("Falsch klassifizierte Zahlen:\n\n"); falsch=0; for (zahl=1;zahl<256;zahl++) { gesamt=0; for (i=0;i<8;i++) { gesamt+=gewichte[i]*(float)((zahl >> i)&1); } if ((gesamt>0) && (zahl % 2)!=0) { falsch++; printf("%8d",zahl);} if ((gesamt<=0) && (zahl % 2)==0) {falsch++; printf("%8d",zahl);} } printf("\n\nSuper, durch deine Hilfe kann ich jetzt schon %d Zahlen richtig einordnen. Das sind nur %d falsche.",255-falsch,falsch); } system("PAUSE"); return 0; }
Private
[
?
]
Run code