Najmniej zrozumiały generator liczb pseudolosowych.

Odpowiedz Nowy wątek
2011-11-18 19:44
0

Witam ;)
Tym razem z nudów zakładam taki temat.
Liczy się, aby program/skrypt generował liczby pseudolosowe (lub losowe - jak kto woli :D).
Język programowania dowolny.
Należy najpierw podać język, potem wrzucić kod a na końcu wynik.
W komentarzach proszę podawać ile punktów powinien dostać program/skrypt (skala od od 0 to 10);
Zasady:

  1. Nie można oceniać własnego kodu
  2. Zakaz używania dodatkowych modułów/bibliotek (tzn.mogą być tylko podstawowe)
  3. Rozkład dowolny
    No więc ja zacznę :]
    BeFunge:
    
    v
       v

. > > > v <
^ ^ ^ ^ v ^
^ 1<?<?<?<?<??v
^ 2<?<? v < vvv
^ 3<?<?<?<?<??v
^ 4<?<?>v ^ vvv
^ 5<?<?<?>^<??v
^ 6<?<?<v v<<
^ 7<?<?<
^ 8<?<?<
^ 9<?<?<
^ 0<?<?<

^ <


![befunge.png](//static.4programmers.net/uploads/attachment/12449110564ec6adde5b56d.png)

edytowany 3x, ostatnio: Patryk27, 2011-11-18 20:11
Nie generuje normalnego rozkładu, a nie dodałeś jaki rozkład ma generować. 4/10, bo fajnie kod wygląda - Zjarek 2011-11-18 19:48
Nieco poprawiłem ten kod, lecz ciągle jest on za bardzo zrozumiały :> - Patryk27 2011-11-18 20:12
nie rozumiem. Jaki jest cel tego 'konkursu' czy jak to nazwać... - TomRiddle 2011-11-18 20:14

Pozostało 580 znaków

2011-11-18 20:19
5

http://xkcd.com/221/

int getRandomNumber() {
  return 4; // chosen by fair dice roll, guaranteed to be random
}

"Programs must be written for people to read, and only incidentally for machines to execute." - Abelson & Sussman, SICP, preface to the first edition
"Ci, co najbardziej pragną planować życie społeczne, gdyby im na to pozwolić, staliby się w najwyższym stopniu niebezpieczni i nietolerancyjni wobec planów życiowych innych ludzi. Często, tchnącego dobrocią i oddanego jakiejś sprawie idealistę, dzieli od fanatyka tylko mały krok."
Demokracja jest fajna, dopóki wygrywa twoja ulubiona partia.

Pozostało 580 znaków

2011-11-19 09:21
msm
0

@Patryk27 - nie znając Befunge twój kod wygląda zupełnie nieczytelnie. Ale znając Befunge, napisałeś prawie najprostszy możliwy generator :P.

Obfuskacja kodu w C# to ciężka sprawa - nie ma ani szalonych define-ów, niejawnych rzutowań i arytmetyki wskaźników jak w C++, nie ma dynamicznego wykonywania kodu jak w językach skryptowych (Python, Ruby, Javascript), nie ma szalenia z funkcjami jak w haskellu, no i nie jest perlem.

Ostatecznie wynik mojej próby uczynienia C# nieczytelnym wygląda tak (VS automatycznie formatuje kod więc musiałem go pilnować)

using _ = System.Func<int, int>;
using System;

namespace ConsoleApplication1
{
    class Program
    {
        static int GenRand(int s)
        {
            return
                ((_)((x)=>{return((((_)((y)=>{return
                ((_)((z)=>{return x*x*y*z;}))(x+y);}
                ))(x*x+3)%2==0)?((_)((y)=>{return((_
                )((z)=>{return x*y+y*z;}))(2*x+y);})
                )(x*(x-5)/2):((_)((y)=>{return((_)((
                z)=>{return x*y+z*z;}))(x+2*y);}))(x
                -14+(x-2)*(x+2)))%((_)((y)=>{return(
                (_)((z)=>{return x*y+z+1;}))(2*x+2*y
                );}))(x==0?x+5:((x*x)*(x-1)));}))(s);
        }

        static void Main(string[] args)
        {
            for (int i = 0; i < 100; i++)
            {
                int next = GenRand(i);

                Console.WriteLine(next);
                Console.ReadKey(true);
            }
        }
    }
}
edytowany 2x, ostatnio: msm, 2011-11-19 09:23

Pozostało 580 znaków

2011-11-19 12:22
0

Obfuskacja kodu w C# to ciężka sprawa - nie ma ani szalonych define-ów, niejawnych rzutowań i arytmetyki wskaźników jak w C++
są wskaźniki. a zobacz też to:
http://blogs.msdn.com/b/michkap/archive/2005/02/07/368570.aspx

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0