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.