Neugier ist der Katze Tod?

20

Einige Leute sagen, Neugierde habe die Katze getötet. Andere sagen, es war die Kiste und das Gift. Der RSPCA zufolge muss Erwin Schrödinger das Recht verlieren, Haustiere zu besitzen.

Mit Tierschützern vor seinem Haus. Der Katzenmörderwissenschaftler Schrödinger hat endlich seine größte Erfindung erfunden. Eine spezielle, radioaktive Mischung aus Unobtanium und Handwavium, die eine beliebige Halbwertszeit haben kann, und ein einziges Gramm des Produkts kann jedes Lebewesen töten. Leider vergaß er, als er versuchte, es an seiner letzten Katze zu testen: Bob, dass Katzen 9 Leben haben und daher 9 Gramm benötigen würden, um sie zu töten. Mit etwas Wasser, aber ohne Nahrung, wird der arme Bob genau 1 Woche (7 Tage) leben, wenn das Produkt ihn nicht zuerst tötet.

Die Aufgabe: Geben Sie eine Masse in Milligramm und eine Halbwertszeit in Millisekunden ein - beides ganze Zahlen, die 2 ^ 31 überschreiten können. Schreiben Sie ein Programm, das ausgibt, ob das mysteriöse Superprodukt die Katze tötet oder ob es 1 Woche ist Das Limit läuft zuerst ab. Angenommen, wahr / ja / 1 / alles, was in der Antwort angegeben ist, gilt, wenn er nicht an Hunger stirbt.

Damit das Produkt ihn tötet, müssen insgesamt 9 Gramm verfallen. Von einer Probe von 18 Gramm muss also 1 Halbwertszeit vergehen. Wenn die Probe weniger als oder gleich 9 Gramm enthält, wird dies niemals erreicht, und daher kann sofort davon ausgegangen werden, dass 1 Woche vergeht, bevor 9 Gramm verfallen.

Sie können annehmen:

  • Bob stirbt in der Mikrosekunde, in der 9 Gramm verfallen sind.
  • Die Änderung der Masse aufgrund des Zerfalls spielt keine Rolle.
  • Alle Tage und Zeiten folgen der allgemein anerkannten Erdzeit.
  • Die Schachtel, in der Bob versiegelt ist, ist unzerbrechlich und nicht zu öffnen, so dass keine Todesgefahr aufgrund anderer Ursachen besteht.
  • Sauerstoff ist auch kein Problem.
  • Wenn beide genau zur gleichen Zeit auftreten, ist jede Ausgabe akzeptabel.
  • Alle Eingaben sollten unter 2 ^ 63-1 liegen

Testfälle:

Beispiel:

18000 604800001

Damit 9 Gramm verfallen, muss genau 1 Halbwertszeit verstrichen sein (18000/2 = 9000 Milligramm oder 9 Gramm). 1 Halbwertszeit beträgt 604800001 Millisekunden oder 168 Stunden und 1 Millisekunde oder genau 1 Woche und 1 Millisekunde. Da Bob genau nach einer Woche an Hunger stirbt, ist die Ausgabe falsch, da er kurz vor Erreichen der 9-Gramm-Produktgrenze an Hunger gestorben ist

8000 40000 false

70000 800 true

18000 604800000 either

18000 604800001 false

18000 604799999 true

1 1 false

100000 1 true

1000000000 1000000000 true

Wertung: Natürlich möchten wir, dass Bobs Leiden schnell ein Ende hat, und deshalb ist eine kürzere Halbwertszeit am besten. Die Halbwertszeit und das Byte enden beide mit E, so dass eindeutig die kürzeste Anzahl an Bytes gewinnt.

Boib
quelle
6
Sie erkennen, dass eine radioaktive Substanz niemals vollständig zerfällt
Rohan Jhunjhunwala,
1
Ich habe keine Ahnung, was wir hier tun müssen ... Können Sie jeden Schritt durchgehen, um herauszufinden, ob die Ausgabe sein sollte trueoder false?
Beta Decay
Hallo und willkommen bei PPCG! Wie andere gesagt haben, könnte dies nur ein bisschen mehr Klarheit gebrauchen. Wenn Sie die oben angesprochenen Punkte ansprechen, denke ich, dass dies eine nette Herausforderung sein könnte und sie wiedereröffnet werden würde. Für zukünftige Referenzzwecke steht eine Sandbox zur Verfügung, sodass Autoren Feedback zu Herausforderungen erhalten können, bevor sie diese auf der Hauptseite veröffentlichen.
AdmBorkBork
3
Könnten Sie uns eine Gleichung geben, für die die Ausgaben True ergeben?
xnor
1
@xnor Für Halbwertszeit λund Masse m, m-m*(1/2)**(604800000/λ) > 9000(oder , da der Rand Fall gehen oder so).
Mego

Antworten:

9

Python 3, 33 Bytes

lambda a,b:a-a*.5**(6048e5/b)>9e3

Erläuterung:

         6048e5         # number of milliseconds in 1 week
               /b       # half-lifes per week
  a*.5**(        )      # mgs of substance remaining after 1 week
a-                      # mgs of substance decayed after one week
                  >9e3  # return true if more than 9000mgs has decayed in 1 week

Versuch es hier

Die Nummer eins
quelle
Auch 33 Bytes:lambda a,b:2**(-6048e5/b)+9e3/a<1
Daniel
5

CJam (22 Bytes)

q~dX.5@6048e5\/#-*9e3>

Online-Demo

Präparation

Eine kurze Erklärung der Mathematik: Wenn die Halbwertszeit λdann nach einiger Zeit tder Anteil des verbleibenden radioaktiven Materials ist (1/2)^(t/λ), so ist der Anteil zerfallen 1 - (1/2)^(t/λ).

q~d         e# Parse input, ensuring that the later division will use doubles
X.5@6048e5\ e# Rearrange stack to: m 1 0.5 6048e5 λ
/#-*        e# Div, pow, sub, mul, giving the total mass decayed after a week
9e3>        e# Is it OVER 9000! ?
Peter Taylor
quelle
5

Fourier, 51 Bytes

Ich muss zugeben, dass ich dieses Programm nicht vollständig verstehe ... Hauptsächlich nur eine Übersetzung des Python-Codes von TheNumberOne.

oI~M~NI~H604800000~G>H{1}{G/H^(M/2~Mi^~i)N-M>9000@o}

Beachten Sie, dass dies das erste Programm ist, das ich für PPCG geschrieben habe und das die Funktion zum Löschen der @Ausgabe verwendet.

Probieren Sie es online!

Beta-Zerfall
quelle
4
Passender
@ojdo Haha ja: D
Beta Decay
4

Eigentlich 20 Bytes

5╤:6048*/1½ⁿ1-*93╤*<

Probieren Sie es online!

Erläuterung:

5╤:6048*/1½ⁿ1-*93╤*<
5╤                    10**5
  :6048               6048
       *              6048*10**5 (milliseconds in 1 week)
        /             divide by half-life
         1½ⁿ          (1/2)**(^)
            1-        1-(^) (% of sample decayed after 1 week)
              *       multiply by sample mass (mass decayed after 1 week)
               93╤*   9*10**3 (9000)
                   <  is 9000 < sample mass decayed?
Mego
quelle
3

Dyalog APL , 19 Bytes

9E3≤⊣-⊣×.5*6048E5÷⊢

9E3≤ ist 9000 kleiner oder gleich

⊣- das linke Argument (Masse) minus

⊣× das linke argument mal

.5*  ½ hoch auf

6048E5÷⊢ 604800000 geteilt durch das richtige Argument (Halbwertszeit)

Klammern sind nicht erforderlich, da APL nur von rechts nach links ausgeführt wird.

TryAPL online!

Adam
quelle
1
19 Bytes. Das ist dyabolisch.
C. Tewalt
@matrixugly In diesem Fall würde ich fragen, warum die anderen Sprachen so viel Flaum haben. Ich habe genau ein Zeichen pro "Ding" in einer ganz normal aussehenden Infixnotation (wie Mathematik).
Adám