Fałszywa moneta (ile ważeń)

0

problem z zdaniem
mamy np. 9 monet jest waga szalkowa ile liczb wazeń min. potrzeba żeby znależć tą falszywą monetę(ma inną masę od reszty monet) :-) wiadomo

doszłam że 3 ważenia (dzielimy monety na 3 grupy po 3) tylko jak to zapisać w Pascalu ?? a potrzebuje to pokazać w tym programie

0
Kaśka_777 napisał(a)

doszłam że 3 ważenia

A wcale że nie, bo dwa.

Tylko co ten program miałby robić? Rysować wagę i pokazywać ważenie?

0

fakt, że 3 ważenia ale nie tak :) - dzielisz całość na 2 równe grupy + ewentualnie jeden (jeśli początkowa wartość była nieparzysta). Porównujesz dwie równe grupy i jak są takie same to fałszywa jest ta co została. Jak nie są to bierzesz tą, która waży mniej, dzielisz na dwie równe grupy + ew. jedna itd. aż znajdziesz fałszywą

0

raczej program ktory znajdzie
minimalną ilość ważeń, która doprowadzi do znalezienia fałszywej monety. Czyli: ile pomiarów muszę wykonać.

program TurboPascal

0
Misiekd napisał(a)

fakt, że 3 ważenia ale nie tak

Dwa ważenia! DWA! Jedno, i drugie. I wystarczy. na sto procent ;-)

0
Azarien napisał(a)

Dwa ważenia! DWA! Jedno, i drugie. I wystarczy. na sto procent ;-)

to moze wyjasnij dlaczego dwa... jak dla mnie to niemozliwe... nie wiesz czy falszywka jest lzejsza czy ciezsza.

0
Azarien napisał(a)
Misiekd napisał(a)

fakt, że 3 ważenia ale nie tak

Dwa ważenia! DWA! Jedno, i drugie. I wystarczy. na sto procent ;-)

jak będziesz miał szczęście to nawet jedno wystarczy - ale dla dziewięciu monet MAKSYMALNIE potrzeba trzech!

0

zrobiłam algorytm z rodzinką z tego zadania, raczej dobry tak mysle ,chyba teraz będzie wiadomo o co chodzi :-)

ponumerujmy monety 1,2,3,4,5,6,7,8,9
A = {1,2,3}
B = {4,5,6}
C = {7,8,9}
zważ A i B
jeśli A lżejsze
zważ A i C
jeśli A lżejsze
to w A jest fałszywka, fałszywka lżejsza od pozostałych
zważ 1 i 2
jeśli 1 lżejsza
to 1 fałszywa
jeśli 1 cięższa
to 2 fałszywa
jeśli równowaga
to 3 fałszywa
jeśli C lżejsze
jeśli B lżejsze
zważ B i C
jeśli B lżejsze
to w B jest fałszywka, fałszywka jest lżejsza
jeśli C
jeśli równowaga

teraz może mi ktoś napisać to w TurboPascalu bo co do programowania jestem zielona mam tylko mieć w tym ten program bardzo pliss :-(

0

Uzupełniony algorytm Kasiszukamy wsród 9
[123456789]
123 % 456 // ważymy [123]v[456]
= [?789] // jeżeli równe to 789, ale nie wiemy jaka
< // [123]<[456]
123 % 789 // ważymy [123] [789]
= [>456] // jeżeli równe to fałszywka wród [ 456] i wiemy, że cięższa
< [<123] // a jeżeli nie to lżejsza wsród 123
> XXXXXX // a łyżka na to niemożliwe
> // [123]>[456]
123 % 789
= [<456]
> [>123]
< XXXXXX

podprogram, szukamy wsród 3
[@abc]
@
> // lipna jest cięższa
a % b
= [c]
< [b]
> [a]
< // lżejsza
a % b
= [c]
< [a]
> [b]
? // nie wiemy, drugie i ewentualnie trzecie ważenie
a % b
= [c]
<
b % c
= [a]
< [b]
> XXX
>
b % c
= [a]
< [b]
> XXX

[X] wynik


```delphi

0

heh.. faktycznie 2.. niezłe.. ;)

0

szansa na to, że dwa wystarczą to 1/9

0

Jeżeli wiemy jaka jest fałszywa moneta, to w n ważeniach możemy wskazać fałszywą wśród aż 3^n.
Dla n=1..7, otrzymamy 3,9,27,81,243,729,2187

Gdy tego nie wiemy to tylko dla \frac{3^n - 3}{2}
Dla n=1..7, otrzymamy 0,3,12,39,120,363,1092

1

Wystarczą dwa ważenia. Na 100 %.

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