Is the DM Always Right?

I recently got into a disagreement with my DM for a DND 5E game regarding a use of Prestidigitation.

The argument was that since it could create a Non-Magical Trinket, and Music Boxes are specifically listed in the Trinket section of the book, I should be able to make one, even if it is only temporary.

Her argument was that a music box did not fall under her definition of a trinket.

I’ve asked about the D&D 5e rules for that situation already, but now I’m asking whether the DM has the authority to change that rule in our game if she wants.

Evaluate the limit of a subsequence: Compute the limit $ \lim_{n\to\infty} \cos\left( \pi \sqrt{4n^2 + 5n + 1} \right) $ Integer $n$ on Mathematica

I want to compute the limit $ $ \lim \limits_{n\to\infty} \cos\left( \pi \sqrt{4n^2 + 5n + 1} \right) $ $ for integer $ n$ . By completing the square, we can determine that this limit is equal to $ – \tfrac1{\sqrt2} \approx -0.7071 $ .

But if we don’t restrict $ n$ to an integer, then the limit is indeterminate / does not exist. And can be easily found by typing it on WolframAlpha. Or in Mathematica:

However, I do not know how to compute the limit (on Mathematica) with the original constraint that $ n$ must be an integer.

I know that we can plot a graph on Mathematica:

But what is the exact value of the limit?

The graph suggests that the limit is equal to $ -\tfrac1{\sqrt2} $ . However, this doesn’t look like a convincing result because we can’t know that the limit is exactly equal to $ -\tfrac1{\sqrt2} $ .

Question: Is there a way to compute this limit in Mathematica where it spits out a single numerical value (of $ -1/{\sqrt2}$ )?

Is my Burning Ears spell the right level?

I have designed this spell:

Burning Ears

8th level divination

Casting Time: 1 minute

Range: Self

Components: S M (an earwig or a hollowed out animal horn)

Duration: 1 hour, concentration

Classes: Bard, Wizard, Warlock, Sorcerer

For the next hour, you listen very closely for the sound of your name. If any creature on the same plane as you uses your name to refer to you, you are able to eavesdrop on their conversation. For one minute, you can hear what takes place as if your ears are in the room. If another creature on the same plane as you uses your name to refer to you within the hour, you can choose to turn your attention to that one, or continue listening to the current one.

I currently have it listed as 8th level. Is this appropriate? On one hand, there is no save, and no way to detect that it is happening. It has no limit on how far the spell reaches. However on the other hand, it only lets you hear, not see, it can be blocked by Nondetection, and if your enemies find out you use this spell, they can simply stop using your name to refer to you.

Some changes I am considering:

  • Duration: 8 hours concentration instead of 1 hour
  • Duration of eavesdropping 5 minutes instead of 1 minute
  • Text that specifies that you feel momentary sharp pain in your ears when you key in. Maybe it could even deal 1 psychic damage?
  • An invisible ear-shaped sensor that could be detected

How can I get better at identifying the “right time” to use my spell slots?

I’ve played a bunch of DnD 5e, but my current campaign is my first time playing a Warlock outside of a one-shot; right now I’m almost to level 5. I’m playing more of a face/roleplay-focused role, so my invocations (Aspect of the Moon and Devil’s Sight) are generally more useful out of combat, but I made sure to take several combat-oriented cantrips, as well as shatter, to have at least one good damage-focused spell.

In general, I’m having a lot of fun, but I’m having some trouble getting used to having only two spell slots to play with beyond the very early levels.

A couple of sessions ago, I eagerly fired off both my spell slots at what looked like pretty juicy targets. I did plenty of damage… but when enemy reinforcements showed up, I was out of ammo – and in hindsight, I would have had even better targets to use my spells on if I had kept them in reserve.

In response, the next session, I resolved to try to keep a shorter leash on my spells. I played through a combat encounter trying to keep my spell slots in reserve, but I felt like limiting myself to cantrips, weapon attacks, and "utility actions" like shoving kept me from pulling my weight. I then felt silly for being so cautious when we decided to take a short rest at the end of the encounter anyway. I felt especially silly when the same entire story repeated itself later in the session.

Of course, I can (and do) encourage my party to take short rests when we have the opportunity to do so (as long as people could use the HP and it’s not just because I’m out of spell slots), but in general I feel like I’m doing a poor job of identifying the "right" times to pull from my limited resource pool.

Of course, this problem isn’t limited to Warlock – every spellcasting class has to make these judgment calls – but with such a low number of slots to work with, playing Warlock is definitely testing my resource management. I recognize that adeptly managing my limited spell slots is just part of the game, but is there anything in particular I can do that would help to pick out the best times to bust out a spell?

SQL: CASE WHEN having AVG() as condition not giving right output

I have a table of unique users that each has a "rating" column (it’s an average rating they give out of all their ratings given in a different table of reviews). I want to add another column to my table, which specifies either them giving a rating that is above the average of all ratings of all users (hence I use the AVG() function), below or at average (I call it "bias"). In other words, I want to see whether each user gives on average higher or lower ratings than the total average. I understand the limitedness of this query, and ideally I would include an interval (i.e. within 0.5 points below or above average still counts as average) but I can’t seem to make even the simplest query work.

I’ve been using the Yelp dataset from a Coursera course, but I tried to create a sample that produces the same result that I do not want – just one row. I want to have this categorization for each row, hence it should return 3 rows in this example, "below average" in the first two and "above average" in the third. However, the code below produces just one row. I have been working with R and this seems like I am using incorrect syntax, but after 30 minutes of searching the web I cannot find a solution.

I am working in and want to use SQLite syntax as part of the course in Coursera

CREATE TABLE test      (      id integer primary key,       rating integer     );  INSERT INTO test (id, rating) VALUES (1, 1);  INSERT INTO test (id, rating) VALUES (2, 3);  INSERT INTO test (id, rating) VALUES (3, 8);  SELECT id, rating,   CASE     WHEN rating > AVG(rating) THEN "above average"     WHEN rating < AVG(rating) THEN "below average"     ELSE "no bias"    END AS "bias" FROM test 

How to make multiple right joins in one single command for different child tables?

On the followin image you see 3 tables: A, B , C. A: Is the table that holds the foreign keys from B and C

enter image description here

enter image description here

If I do a right join between A and B on that foreign key, it works, meaning I get the data from column fooB. Same between A and C with fooC.

But If I put both right joins under the same command it fails with null

+-------------+---------------+ | fooB        | fooC          | +-------------+---------------+ | NULL        | abc           | | NULL        | xyz           | 

*This is slightly different as the image with the commands posted below, as this comes straight from the real deployment, however cmds below still show that both columns do not show up.

I’ve tried mixin up left joins, right joins , outer joins all with same result. I have googled about this, but the way my question is formulated is awkard and the hits I get return the traditional right joins for just one table.

How do I get this to work in one command? CMDS Below:

enter image description here

Same commands as above but in text, as comments are asking for text rather than images:

MariaDB [joinPOC]> select fooB from tableA right join tableB on tableB_idtableB=tableB.idtableB; +------+ | fooB | +------+ | b1   | | b2   | | b3   | +------+ 3 rows in set (0.001 sec)  MariaDB [joinPOC]> select fooC from tableA right join tableC on tableC_idtableC=tableC.idtableC; +------+ | fooC | +------+ | c1   | | c2   | | c3   | +------+ 3 rows in set (0.001 sec)  MariaDB [joinPOC]> select fooB from tableA right join tableB on tableB_idtableB=tableB.idtableB right join tableC on tableC_idtableC=tableC.idtableC; +------+ | fooB | +------+ | b1   | | b2   | | b3   | +------+ 


-- MySQL Workbench Forward Engineering  SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0; SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0; SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION';  -- ----------------------------------------------------- -- Schema joinPOC -- ----------------------------------------------------- DROP SCHEMA IF EXISTS `joinPOC` ;  -- ----------------------------------------------------- -- Schema joinPOC -- ----------------------------------------------------- CREATE SCHEMA IF NOT EXISTS `joinPOC` ; USE `joinPOC` ;  -- ----------------------------------------------------- -- Table `joinPOC`.`tableB` -- ----------------------------------------------------- CREATE TABLE IF NOT EXISTS `joinPOC`.`tableB` (   `idtableB` INT NOT NULL,   `fooB` VARCHAR(10) NOT NULL,   PRIMARY KEY (`idtableB`)) ENGINE = InnoDB;   -- ----------------------------------------------------- -- Table `joinPOC`.`tableC` -- ----------------------------------------------------- CREATE TABLE IF NOT EXISTS `joinPOC`.`tableC` (   `idtableC` INT NOT NULL,   `fooC` VARCHAR(10) NOT NULL,   PRIMARY KEY (`idtableC`)) ENGINE = InnoDB;   -- ----------------------------------------------------- -- Table `joinPOC`.`tableA` -- ----------------------------------------------------- CREATE TABLE IF NOT EXISTS `joinPOC`.`tableA` (   `idtableA` INT NOT NULL,   `fooA` VARCHAR(10) NOT NULL,   `tableB_idtableB` INT NOT NULL,   `tableC_idtableC` INT NOT NULL,   PRIMARY KEY (`idtableA`),   INDEX `fk_tableA_tableB_idx` (`tableB_idtableB` ASC),   INDEX `fk_tableA_tableC1_idx` (`tableC_idtableC` ASC),   CONSTRAINT `fk_tableA_tableB`     FOREIGN KEY (`tableB_idtableB`)     REFERENCES `joinPOC`.`tableB` (`idtableB`)     ON DELETE NO ACTION     ON UPDATE NO ACTION,   CONSTRAINT `fk_tableA_tableC1`     FOREIGN KEY (`tableC_idtableC`)     REFERENCES `joinPOC`.`tableC` (`idtableC`)     ON DELETE NO ACTION     ON UPDATE NO ACTION) ENGINE = InnoDB;   SET SQL_MODE=@OLD_SQL_MODE; SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS; SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS;  -- ----------------------------------------------------- -- Data for table `joinPOC`.`tableB` -- ----------------------------------------------------- START TRANSACTION; USE `joinPOC`; INSERT INTO `joinPOC`.`tableB` (`idtableB`, `fooB`) VALUES (1, 'b1'); INSERT INTO `joinPOC`.`tableB` (`idtableB`, `fooB`) VALUES (2, 'b2'); INSERT INTO `joinPOC`.`tableB` (`idtableB`, `fooB`) VALUES (3, 'b3');  COMMIT;   -- ----------------------------------------------------- -- Data for table `joinPOC`.`tableC` -- ----------------------------------------------------- START TRANSACTION; USE `joinPOC`; INSERT INTO `joinPOC`.`tableC` (`idtableC`, `fooC`) VALUES (1, 'c1'); INSERT INTO `joinPOC`.`tableC` (`idtableC`, `fooC`) VALUES (2, 'c2'); INSERT INTO `joinPOC`.`tableC` (`idtableC`, `fooC`) VALUES (3, 'c3');  COMMIT;   -- ----------------------------------------------------- -- Data for table `joinPOC`.`tableA` -- ----------------------------------------------------- START TRANSACTION; USE `joinPOC`; INSERT INTO `joinPOC`.`tableA` (`idtableA`, `fooA`, `tableB_idtableB`, `tableC_idtableC`) VALUES (1, 'a1', 1, 1); INSERT INTO `joinPOC`.`tableA` (`idtableA`, `fooA`, `tableB_idtableB`, `tableC_idtableC`) VALUES (2, 'a2', 2, 2); INSERT INTO `joinPOC`.`tableA` (`idtableA`, `fooA`, `tableB_idtableB`, `tableC_idtableC`) VALUES (3, 'a3', 3, 3);  COMMIT; 

Desired output in a single command:

+-------------+---------------+ | fooB        | fooC          | +-------------+---------------+ | b1          | c1            | | b2          | c2            | 

Why am i getting “missing right parenthesis” error when i try to LOG ERRORS when loading from an external table?

I’ve successfully created an error logging table

BEGIN     DBMS_ERRLOG.create_error_log(     dml_table_name  => 'enzyme',     skip_unsupported => TRUE); END; /  desc ERR$  _ENZYME; 
Name            Null? Type            --------------- ----- --------------  ORA_ERR_NUMBER$         NUMBER          ORA_ERR_MESG$           VARCHAR2(2000)  ORA_ERR_ROWID$          UROWID          ORA_ERR_OPTYP$          VARCHAR2(2)     ORA_ERR_TAG$            VARCHAR2(2000)  ENZ_NAME              VARCHAR2(4000)  

But i get an error when I try to run this query:

insert /*+ ignore_row_on_dupkey_index ( enzyme ( enz_name ) ) */ into enzyme SELECT enz_name FROM EXTERNAL ((   construct_id NUMBER(10),   n_term VARCHAR2 (50),   enz_name VARCHAR2 (3),   c_term VARCHAR2 (50),   cpp VARCHAR2 (50),   mutations VARCHAR2 (50),   mw_kda NUMBER (7, 3))      TYPE ORACLE_LOADER     DEFAULT DIRECTORY data_to_input     ACCESS PARAMETERS (         RECORDS DELIMITED BY NEWLINE         skip 1         FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'         MISSING FIELD VALUES ARE NULL          )      LOCATION ('CONSTRUCT.CSV')     LOG ERRORS INTO ERR$  _ENZYME ('INSERT') REJECT LIMIT UNLIMITED) ext     where not exists (         select * from enzyme e         where e.enz_name = ext.enz_name     ); 
Error at Command Line : 79 Column : 5 Error report - SQL Error: ORA-00907: missing right parenthesis 00907. 00000 -  "missing right parenthesis" *Cause:     *Action: 

Line 79 is the LOG ERRORS INTO line.

If i delete the LOG ERRORS INTO ERR$ _ENZYME ('INSERT') part, this command functions perfectly.

Did I understand how thin-blood alchemy distilation methods work right?

Long ago, I prepared a Vampire the Masquerade 5e and ask a lot of questions about thin-blood. After a short time, my players decide to play non thin-blood characters. Now, I want to play a campaign with only thin-blood characters.

Thin-blood alchemy have three distilation methods. Athanor corporis, Calcinatio and Fixatio. I understand them in a way that look strange for me (mostly Athanor corporis and Calcinatio):

  • Athanor corporis: You make your formulas with your own body, and you can keep them indefinitely. But you can use only one at a time, and you have to concentrate for 3 turn to switch formulas. But something that I don’t understand is "does you keep the previous formula in your body, and just have to switch to have it again, or did you need to re-distill it later to have it again?"
  • Calcinatio: You make your formulas with kine. They have the formula in them until they have an emotional shift. If you drink there blood, you have the power. But what I don’t understand is "Is the formula is still in the human after drinking?" and "What happend if someone else drink the formula?"
  • Fixatio: Classic rpg alchemy. You make a potion, it give you powers for a short time if you drink it. The only question that I have is "can you share your formula with another thin-blood, so they can use the power too?"

related: How do thin-bloods and thin-blood alchemy work?

Problem plotting expression involving Generalized hypergeometric functions $_2F_2 \left(.,.,. \right)$

I’m trying to plot a graph for the following expectation

$ $ \mathbb{E}\left[ a \mathcal{Q} \left( \sqrt{b } \gamma \right) \right]=a 2^{-\frac{\kappa }{2}-1} b^{-\frac{\kappa }{2}} \theta ^{-\kappa } \left(\frac{\, _2F_2\left(\frac{\kappa }{2}+\frac{1}{2},\frac{\kappa }{2};\frac{1}{2},\frac{\kappa }{2}+1;\frac{1}{2 b \theta ^2}\right)}{\Gamma \left(\frac{\kappa }{2}+1\right)}-\frac{\kappa \, _2F_2\left(\frac{\kappa }{2}+\frac{1}{2},\frac{\kappa }{2}+1;\frac{3}{2},\frac{\kappa }{2}+\frac{3}{2};\frac{1}{2 b \theta ^2}\right)}{\sqrt{2} \sqrt{b} \theta \Gamma \left(\frac{\kappa +3}{2}\right)}\right)$ $ where $ a$ and $ b$ are constant values, $ \mathcal{Q}$ is the Gaussian Q-function, which is defined as $ \mathcal{Q}(x) = \frac{1}{\sqrt{2 \pi}}\int_{x}^{\infty} e^{-u^2/2}du$ and $ \gamma$ is a random variable with Gamma distribition, i.e., $ f_{\gamma}(y) \sim \frac{1}{\Gamma(\kappa)\theta^{\kappa}} y^{\kappa-1} e^{-y/\theta} $ with $ \kappa > 0$ and $ \theta > 0$ .

This equation was also found with Mathematica, so it seems to be correct. I’ve got the same plotting issue with Matlab.

Follows some examples, where I have checked the analytical results against the simulated ones.

When $ \kappa = 12.85$ , $ \theta = 0.533397$ , $ a=3$ and $ b = 1/5$ it returns the correct value $ 0.0218116$ .

When $ \kappa = 12.85$ , $ \theta = 0.475391$ , $ a=3$ and $ b = 1/5$ it returns the correct value $ 0.0408816$ .

When $ \kappa = 12.85$ , $ \theta = 0.423692$ , $ a=3$ and $ b = 1/5$ it returns the value $ -1.49831$ , which is negative. However, the correct result should be a value around $ 0.0585$ .

When $ \kappa = 12.85$ , $ \theta = 0.336551$ , $ a=3$ and $ b = 1/5$ it returns the value $ 630902$ . However, the correct result should be a value around $ 0.1277$ .

Therefore, the issue happens as $ \theta$ decreases. For values of $ \theta > 0.423692$ the analytical matches the simulated results. The issue only happens when $ \theta <= 0.423692$ .

I’d like to know if that is an accuracy issue or if I’m missing something here and if there is a way to correctly plot a graph that matches the simulation. Perhaps there is another way to derive the above equation with other functions or there might be a way to simplify it and get more accurate results.