mboost-dp1

Microsoft Corporation
- Forside
- ⟨
- Forum
- ⟨
- Nyheder
C# eksempel
Resultat:
Kode:
Resultat:
Opera, Internet Explorer, Safari, Mozilla Firefox, Google Chrome,
Mozilla Firefox, Google Chrome, Opera, Internet Explorer, Safari,
Internet Explorer, Safari, Opera, Mozilla Firefox, Google Chrome,
Mozilla Firefox, Internet Explorer, Google Chrome, Safari, Opera,
Kode:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace RandomIsRandom
{
class Program
{
static Random random = new Random();
static List<string> browsers;
static void Main(string[] args)
{
browsers = new List<string>() {
"Internet Explorer", "Google Chrome", "Mozilla Firefox", "Opera", "Safari"
};
PrintRandomized();
PrintRandomized();
PrintRandomized();
PrintRandomized();
Console.Read();
}
static void PrintRandomized()
{
browsers.Sort(new Comparison<string>(CompareBrowser));
foreach (var browser in browsers)
Console.Write("{0}, ", browser);
Console.WriteLine("");
}
static int CompareBrowser(string a, string b)
{
return random.Next(0, 2);
}
}
}
Et godt bud derudover er at de bare har modificeret den tidligere alfabetiske sortering til at være random nu.
Altså 5 linjers ændret/ny kode.
Det ville give perfekt mening. Det er kun diverse hippier som kan mene det er forkert.
Typisk at Microsoft kan gøre ting forkert, som alle andre har gjort "rigtigt" i årtier. Man græmmes over niveauet af fanatisme på Internet i dag.
Altså 5 linjers ændret/ny kode.
Det ville give perfekt mening. Det er kun diverse hippier som kan mene det er forkert.
Typisk at Microsoft kan gøre ting forkert, som alle andre har gjort "rigtigt" i årtier. Man græmmes over niveauet af fanatisme på Internet i dag.
"Microsofts browservalg er ikke tilfældigt da det er baseret på antal millisekunder fra system start. En tilfældig geek anbefaler at alle nye computere from over bliver solgt med en pre-installeret randomnumber generator baseret på henfald af et radiaktivt isotop så browservalget bliver tilfældigt"
/joke
Seriøst der er browservalg, alle MS haters burde klappe i hænderne istedet for at gå op i sådan nogle petitesser..
/joke
Seriøst der er browservalg, alle MS haters burde klappe i hænderne istedet for at gå op i sådan nogle petitesser..
#54: Jeg er helt enig. Arto har monopol på den slags debat. EU må gribe ind ;)
#56: Seriøst, det sørgelige er at der rent faktisk er en interessant, nørdet og praktisk problemstilling gemt i den her nyhed men du og andre ser den ikke pga. i stedet ser en imaginær pro/anti-MS diskussion hvor der ingen behøver at være.
Ikke alene skrev jeg at det var standard procedure at gøre som MS har gjort, før han Windcape brugte det som "argument" mod mig, jeg forklarede også at jeg var imod beslutningen om at tvinge MS til at tilbyde andre browsere, men lige lidt hjalp det på forståelsen.
#57: Man kan gøre noget lige så tilfældigt som den tilfældige nummer generator man bygger koden på. Hvis det var tilfældet var der ingen nyhed! Men så god performance får man ikke automatisk ved at returnere tilfældige resultater ved sammenligninger. Det kommer også an på i hvilket system man sætter de sammenligninger. Med andre ord, hvilken sorteringsalgoritme man bruger.
Hvis Array.sort() bruger quicksort på et 5 elementers array og pivot elementet er det sidste i arrayet, så vil det med en deterministisk sammenlignings operator fungere fuldstændigt som forventet. Output er en sorterert version af input.
Men hvis man så bare ændrer sammenligningsoperatoren til 50/50 at returnere true or false, vil det sidste element i input med 37,5% sandsynlighed være det midterste element i output. Hvis det var tilfældigt ville det kun være 20%. Det er ikke tæt på. Not even close. Det er bare ét eksempel. Det kan være bedre og dårligere, det er helt afhængig af JavaScript enginen på den maskine det samme script bliver afviklet på.
#56: Seriøst, det sørgelige er at der rent faktisk er en interessant, nørdet og praktisk problemstilling gemt i den her nyhed men du og andre ser den ikke pga. i stedet ser en imaginær pro/anti-MS diskussion hvor der ingen behøver at være.
Ikke alene skrev jeg at det var standard procedure at gøre som MS har gjort, før han Windcape brugte det som "argument" mod mig, jeg forklarede også at jeg var imod beslutningen om at tvinge MS til at tilbyde andre browsere, men lige lidt hjalp det på forståelsen.
#57: Man kan gøre noget lige så tilfældigt som den tilfældige nummer generator man bygger koden på. Hvis det var tilfældet var der ingen nyhed! Men så god performance får man ikke automatisk ved at returnere tilfældige resultater ved sammenligninger. Det kommer også an på i hvilket system man sætter de sammenligninger. Med andre ord, hvilken sorteringsalgoritme man bruger.
Hvis Array.sort() bruger quicksort på et 5 elementers array og pivot elementet er det sidste i arrayet, så vil det med en deterministisk sammenlignings operator fungere fuldstændigt som forventet. Output er en sorterert version af input.
Men hvis man så bare ændrer sammenligningsoperatoren til 50/50 at returnere true or false, vil det sidste element i input med 37,5% sandsynlighed være det midterste element i output. Hvis det var tilfældigt ville det kun være 20%. Det er ikke tæt på. Not even close. Det er bare ét eksempel. Det kan være bedre og dårligere, det er helt afhængig af JavaScript enginen på den maskine det samme script bliver afviklet på.
Nej.bnm (58) skrev:#56: Seriøst, det sørgelige er at der rent faktisk er en interessant, nørdet og praktisk problemstilling gemt i den her nyhed
Havde det faktisk været i sammehæng med noget som krævede randomness var det tilfældet, men da det er i sammenhæng med en i forvejen udskældt sag om et latterligt browservalg, er Weir's problemstilling ikke andet end politiske skyts for folk der mener Microsoft er onde.
Hold kæft du whiner Windcape, jeg har aldrig set noget lignende.
Nyheden basher ikke MS, og før du startede din hellige krig var der heller ingen på newz.dk der gjorde. De 10 første posts handler stort set om hvor latterlig sagen efterhånden er. Jeg har da aldrig set en større fanboy, du forsvarer MS selv når de ikke er under kritik.
Nyheden basher ikke MS, og før du startede din hellige krig var der heller ingen på newz.dk der gjorde. De 10 første posts handler stort set om hvor latterlig sagen efterhånden er. Jeg har da aldrig set en større fanboy, du forsvarer MS selv når de ikke er under kritik.
#60
Det er altsaa ligesaa relevant at tyskerne har vaeret nazister, som Microsofts monopoldomme, i en traad der omhandler resultatet af en saadan monopoldom?
Jeg tror dit 'Random Thought Process'-script fungerer ganske fint :P
#Windcape
Jeg ser ikke umiddelbart hvorfor du mener det er fint at implementere broken-random, naar man nemt kan implementere noget der fungerer ordentligt.
Det handler ikke om at vaere paranoid eller at du har en soelvpapirshat paa, men om ikke at slamkode - og i den sammenhaeng, er det ligegyldigt at du slamkoder konstant og ud over det hele.
Do it right, or don't do it at all.
Naar der er *SAA* meget fokus paa dette, boer man nok lave det ordentligt.
Microsoft's monopol domme er ligeså relevant som at Tyskerne var nazister for 70 år siden.
Det er altsaa ligesaa relevant at tyskerne har vaeret nazister, som Microsofts monopoldomme, i en traad der omhandler resultatet af en saadan monopoldom?
Jeg tror dit 'Random Thought Process'-script fungerer ganske fint :P
#Windcape
Jeg ser ikke umiddelbart hvorfor du mener det er fint at implementere broken-random, naar man nemt kan implementere noget der fungerer ordentligt.
Det handler ikke om at vaere paranoid eller at du har en soelvpapirshat paa, men om ikke at slamkode - og i den sammenhaeng, er det ligegyldigt at du slamkoder konstant og ud over det hele.
Do it right, or don't do it at all.
Naar der er *SAA* meget fokus paa dette, boer man nok lave det ordentligt.
Wincape, det er altså skræmmende at du stadig kan betragte dig som en seriøs udvikler (og enda rette på andre), når du ikke selv aner hvad du fabler om.
Du har jo overhovedet ikke forstået problematikken artiklen handler om.
Den forklarer kort og simpelt hvorfor algoritmen ikke virker, og beviser de enda på to måder. Alligevel gentager du adskillige gange at den fungerer.
Du må altså snart til at tage dig sammen.
Jeg har ratet mange af dine indlæg i denne tråd "irrelevant". Ikke fordi jeg ikke kan lide dig, men fordi de indeholder ukorrekte oplysninger, og andre irrelevante ting.
Du har jo overhovedet ikke forstået problematikken artiklen handler om.
Den forklarer kort og simpelt hvorfor algoritmen ikke virker, og beviser de enda på to måder. Alligevel gentager du adskillige gange at den fungerer.
Du må altså snart til at tage dig sammen.
Jeg har ratet mange af dine indlæg i denne tråd "irrelevant". Ikke fordi jeg ikke kan lide dig, men fordi de indeholder ukorrekte oplysninger, og andre irrelevante ting.
ipwn (12) skrev:Så de har brugt rand(). Finno. Ingen grund til at spille tid på at lave noget der teoretisk holder fuldstændigt vand.
bnm (13) skrev:
Hvis denne "ekspert" har testet tilfældigheden ved at kalde pseudo-RNG'en med regelmæssige intervaller er det klart der vil opstå trends... Det vigtige er om det *første* kald bliver foretaget med en tilfældig seed, og det gør det...
Windcape (37) skrev:I er nogle forbande hyklere hvis i mener at Math.random() ikke er random nok til jer.
Windcape (39) skrev:
Det er jo hamrende ligegyldigt. Det er helt normalt at bruge Math.random() til at randomize ting i Javascript.
Hvis folk ikke mener at standard javascript er godt nok, så har de fandme for meget fritid.
Enhver programmør med et job (altså ikke en hippi som koder af idealistike grunde uden løn) ville jo bruge Math.random() til at løse denne her opgave.
Windcape (41) skrev:
Ja, og anvendelse er fin nok. Og det er faktisk hamrende ligegyldig hvor random dens selection er, sålænge det er random.
Det er en simpel javascript løsning, og simpel kode er godt. Der er ingen udviklere (med et job) på newz.dk som ville have skrevet koden anderledes.
Jeg tror heller ikke at Rob Weir ville have gjort det anderledes, hvis det var hamselv der havde skrevet koden.
Det er faktisk allerede forklaret i #36, men lad mig lige pinde det ud.
Der er ikke noget problem med Math.random().
Der er et problem med den comparer der bruges.
Der er angivet nogle helt klare krav i JavaScript standarden til en comparer for at sort vil sortere korrekt.
Disse krav er ikke opfyld af den comparer.
Derfor er det ikke en korrekt sortering.
Og jeg håber meget at programmører med job skriver kode som er korrekt i forhold til standarden for det sprog som de programmerer i.
Og Rob Weir ville have gjordt det anderledes. Han kender nemlig JaavScript standarden.
Hans betragtninger omkring hvad en comparer skal kunne er stort set copy pastet fra standarden.
#68
ECMA-262:
ECMA-262:
If comparefn is not undefined and is not a consistent comparison function for the elements of this array (see below), the behaviour of sort is implementation-defined.
A function comparefn is a consistent comparison function for a set of values S if all of the requirements below are met for all values a, b, and c (possibly the same value) in the set S: The notation a <CF b means comparefn(a,b) < 0; a =CF b means comparefn(a,b) = 0 (of either sign); and a >CF b means comparefn(a,b) > 0.
Calling comparefn(a,b) always returns the same value v when given a specific pair of values a and b as its two arguments. Furthermore, Type(v) is Number, and v is not NaN. Note that this implies that exactly one of a <CF b, a =CF b, and a >CF b will be true for a given pair of a and b.
Calling comparefn(a,b) does not modify the this object.
a =CF a (reflexivity)
If a =CF b, then b =CF a (symmetry)
If a =CF b and b =CF c, then a =CF c (transitivity of =CF)
If a <CF b and b <CF c, then a <CF c (transitivity of <CF)
If a >CF b and b >CF c, then a >CF c (transitivity of >CF)
#52
Hmmm.
Jeg ved ikke lige hvad du tror at du har bevist.
Men jeg lavede lige en lettere modificeret version af dit program (og jeg tror ikke at det at jeg sorterer int's fremfor string's skulle ændre noget).
Output:
187997 0 187496 499843 124664
187893 0 187075 500157 124875
374681 0 375430 0 249889
124986 500194 124861 0 249959
124443 499806 125138 0 250613
Det er meget langt fra tilfældigt !!!!
Hmmm.
Jeg ved ikke lige hvad du tror at du har bevist.
Men jeg lavede lige en lettere modificeret version af dit program (og jeg tror ikke at det at jeg sorterer int's fremfor string's skulle ændre noget).
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace RandomIsRandom
{
public class Program
{
private const int N = 1000000;
private static readonly Random rng = new Random();
public static void Main(string[] args)
{
int[,] res = new int[5,5];
for(int i = 0; i < N; i++)
{
List<int> browser = new List<int> { 0, 1, 2, 3, 4 };
browser.Sort(new Comparison<int>(CompareBrowser));
for(int j = 0; j < 5; j++)
{
res[j,browser[j]]++;
}
}
for(int j = 0; j < 5; j++)
{
for(int k = 0; k < 5; k++)
{
Console.Write(" {0,6}",res[j,k]);
}
Console.WriteLine();
}
Console.ReadKey();
}
private static int CompareBrowser(int a, int b)
{
return rng.Next(0, 2);
}
}
}
Output:
187997 0 187496 499843 124664
187893 0 187075 500157 124875
374681 0 375430 0 249889
124986 500194 124861 0 249959
124443 499806 125138 0 250613
Det er meget langt fra tilfældigt !!!!
Opret dig som bruger i dag
Det er gratis, og du binder dig ikke til noget.
Når du er oprettet som bruger, får du adgang til en lang række af sidens andre muligheder, såsom at udforme siden efter eget ønske og deltage i diskussionerne.