Injecting side effects by abusing comma operator
in C and C plus plus, programming / with 2 comments /
Comma operator can be used sometimes to inject side effects into expressions:
#include <stdio.h> #include <stdlib.h> #include <math.h> int main() { int max = 10; double x = 0; while (max--, printf("%d\n", max), max) { /* sth */ } x = printf("x: %f", x), x = sqrt(x), printf(", sqrt(x): %f\n", x), x; return EXIT_SUCCESS; }
Milionerzy: najlepsza kolejność wykorzystania kół ratunkowych
in programming / with No comments /
Grasz w milionerów, masz wszystkie koła ratunkowe i nagle dostajesz makabryczne pytanie. Nie wiesz. Bierzesz koła. Najpierw 50:50, a później publiczność, czy najpierw publiczność, a potem 50:50? Ta dyskusja rozgorzała na joemosterze, wiec i ja postanowiłem się temu przyjrzeć.
Warunki początkowe
Zakładam, że 10% osób zna odpowiedz na pytanie, a reszta zaznacza losową odpowiedz. Publiczność to około kilkadziesiąt osób, jest ich więc na tyle dużo, że można założyć, że odpowiedzi tych którzy strzelają rozłożą się równomiernie. Mamy zatem:
10% - osoby znające odpowiedz 90% - osoby zgadujące
Wariant I, najpierw 50:50
Jeśli weźniemy najpierw 50:50, to zostawimy publiczności wybór między dwiema opcjami, rozkład odpowiedzi będzie wyglądał następująco:
odpowiedz poprawna: 0.5 * 90% + 10% = 55% odpowiedz błędna: 0.5 * 90% = 45%
Poprawną odpowiedz wskaże 55% głosujących.