swlabr

joined 1 year ago
[–] [email protected] 4 points 1 day ago (1 children)

1.1 trillion? Good luck, chuck.

[–] [email protected] 3 points 1 day ago

21 (wip)

2 meme 2 memeious

[–] [email protected] 4 points 2 days ago

Understandable, have a nice day

[–] [email protected] 3 points 2 days ago

ok discoIt took me too long to read the prompt and see that without the shortcuts, it's a single path. I wasted too much time on search algorithms.

P1: Here's what I did: Walk the path. Every time you hit a new grid, check if the two shortcuts you can take will save you 100 ps.

To calculate the shortcut saving:

If you index every grid position on the main path from 0, then it takes X ps to reach position X, The time it takes to travel from start to X, then a shortcut to Y, then from Y to the end, is X + 1 + (main path length - Y). The time saved is then just Y - X - 1, modulo maybe like 5 fence post errors.

P2. The prompt wasn't really clear about whether or not cheating meant you can only travel through one set of walls before your cheat ends, or if it meant you could just move through walls for 20ps to wherever you could reach. Turns out, it's the latter.

The above formula is then a special case of Y - X - manhattan distance(X, Y).

[–] [email protected] 3 points 2 days ago (3 children)

20: currently a WIP but:

memeWait, so it’s all grids? 🧑🏿‍🚀🔫🧑🏿‍🚀

[–] [email protected] 3 points 3 days ago* (last edited 3 days ago)

Day 19! (the cuervo gold....)

disc and codeOk so my path to this answer was circuitous and I now hate myself a little.

P1: Ok, a repeated dfs on suffixes. that shouldn't be too hard. (it was not hard)

P2: Ok, a repeated dfs is a little too slow for me, I wonder how I can speed it up?

forgets about memoisation, a thing that you can do to speed this sort of thing up

I guess the problem is I'm doing an O(mn) match (where m is the number of towels, n is the max towel length) when I can do O(n). I'll build a prefix tree!

one prefix tree later

Ok that still seems to be quite slow. What am I doing wrong?

remembers that memoisation exists

Oh I just need to memoise my dp from part 1. Oops.

Anyway posting the code because I shrunk it down to like two semicolons worth of lines.

(

List<String> input = getLines();
Set<String> ts = Set.from(input.first.split(', '));
Map<String, int> dp = {};

int dpm(String s) => dp.putIfAbsent(
    s,
    () => s.isNotEmpty
        ? ts
            .where((t) => t.matchAsPrefix(s) != null)
            .map((t) => dpm(s.substring(t.length)))
            .fold(0, (a, b) => a + b)
        : 1);

void d19(bool sub) {
  print(input
      .skip(2)
      .map((s) => dpm(s))
      .map((i) => sub
          ? i
          : i > 0
              ? 1
              : 0)
      .reduce((a, b) => a + b));
}

[–] [email protected] 5 points 3 days ago* (last edited 3 days ago)

gilding the lily a bit but

[–] [email protected] 2 points 4 days ago

yesWhat is this, day 16?

[–] [email protected] 10 points 5 days ago

Does a sealion have bootlicker nature? Ugh.

[–] [email protected] 14 points 5 days ago (1 children)

Please, señor software engineer was my father. Call me Bob.

[–] [email protected] 3 points 5 days ago* (last edited 5 days ago) (2 children)

17!

p1 discussionSimultaneously very fun and also the fucking worst.

Fun: Ooooh, I get to simulate a computer, exciting!

Worst: Literally 8 edge cases where fucking up even just one can fuck up your hour.

p2 discussionI did this by hand. sort of. I mean I didn't code up something that found the answer.

Basically I looked at the program in the input and wrote it out, and realised that A was essentially a loop variable, where the number of iterations was the number of octal digits A would take to represent. The most significant octal digits (octits?) would determine the tail end of the output sequence, so to find the smallest A you can do a DFS starting from the MS octit. I did this by hand.

EDIT: code. Not gonna explain any of it.

class Comp {
  List<int> reg;
  List<int> prog;
  int ip = 0;

  List<int> output = [];
  late List<(int, bool) Function()> ops;

  int get combo => prog[ip + 1] < 4 ? prog[ip + 1] : reg[prog[ip + 1] - 4];

  Comp(this.reg, this.prog) {
    ops = [
      () => (reg[0] = (reg[0] >> combo), false),
      () => (reg[1] ^= prog[ip + 1], false),
      () => (reg[1] = combo % 8, false),
      () => (reg[0] != 0) ? (ip = prog[ip + 1], true) : (0, false),
      () => (reg[1] ^= reg[2], false),
      () {
        output.add(combo % 8);
        return (0, false);
      },
      () => (reg[1] = (reg[0] >> combo), false),
      () => (reg[2] = (reg[0] >> combo), false)
    ];
  }

  compute() {
    output.clear();
    while (ip < prog.length) {
      if (!ops[prog[ip]]().$2) {
        ip += 2;
      }
    }
  }

  reset(int A) {
    ip = 0;
    reg[0] = A;
    reg[1] = 0;
    reg[2] = 0;
  }
}

void d17(bool sub) {
  List<String> input = getLines();
  Comp c = Comp(
      input.take(3).map((s) => s.split(" ").last).map(int.parse).toList(),
      input.last.split(" ").last.split(",").map(int.parse).toList())
    ..compute();
  print("Part a: ${c.output.join(",")}");

  if (!sub) return;

  List<int> sols = [];
  bool dfs(int cur) {
    bool found = false;
    sols.add(cur);
    int sol = sols.reduce((a, b) => 8 * a + b);
    c..reset(sol)..compute();
    if (c.prog
        .whereIndexed((i, e) => i >= c.prog.length - c.output.length)
        .foldIndexed(true, (i, p, e) => p && c.output[i] == e)) {
      if (found = c.output.length == c.prog.length) {
        print("Part b: $sol");
      } else {
        for (int i = 0; i < 8 && !(found = found || dfs(i)); i++) {}
      }
    }

    sols.removeLast();
    return found;
  }

  for (int a = 0; a < 8 && !dfs(a); a++) {}
}

[–] [email protected] 4 points 6 days ago (2 children)

16!

p1I used A*, though mathematically I would have been fine with Dijkstra's. Also, here's how I remember how to spell Dijkstra: ijk is in alphabetical order.

p2If you've implemented path/back tracking on a search algo before, this wasn't too bad, though instead of tracking best parent you need to track equivalently best parents. Woke AOC trying to normalise families with more than two parents, SMH

 

original link

“If all of this sounds like a libertarian fever dream, I hear you. But as these markets rise, legacy media will continue to slide into irrelevance.”

 

Abstracted abstract:

Frontier models are increasingly trained and deployed as autonomous agents, which significantly increases their potential for risks. One particular safety concern is that AI agents might covertly pursue misaligned goals, hiding their true capabilities and objectives – also known as scheming. We study whether models have the capability to scheme in pursuit of a goal that we provide in-context and instruct the model to strongly follow. We evaluate frontier models on a suite of six agentic evaluations where models are instructed to pursue goals and are placed in environments that incentivize scheming.

I saw this posted here a moment ago and reported it*, and it looks to have been purged. I am reposting it to allow us to sneer at it.

*

 

Didn’t see this news posted but please link previous correspondence if I missed it.

https://archive.is/XwbY0

 

This is somewhat tangential to the usual fare here but I decided to make a post because why not.

I’ve been listening to the back catalog of the Judge John Hodgman podcast, and this ep came up. This ep is the second crypto based case after “crypto facto” in ep 333.

John Hodgman is a comedian, probs best known for being the “I’m a PC” guy in the “I’m a Mac” ad campaign from ancient times. In the podcast, he plays a fake judge that hears cases and makes judgements. In this ep, “Suing for Soul Custody,” he hears a case in which a husband wants to sell his soul on the blockchain, while his wife does not want him to do that.

Some good sneers against the crypto bro husband (in both this case and the other I linked). Brief spoilers as to the rulings in case you don’t want to listen:

333Judge rules that the husband should continue to mine ETH until his rig burns down his house.

556Judge rules that the guy shouldn’t sell his soul, for symbolic reasons.

Note: I like John Hodgman. He’s funny. He’s not really inside the tech space, but he is good friends with Jonathan Coulton, who is. If all you know of him is the “I’m a PC” ads, he has an entertaining wider catalogue worth checking out.

 

On the hottest and coldest days, when demand for electricity peaks and the price rockets, the bitcoin miners either sell power back to providers at a profit or stop mining for a fee, paid by ercot. Doing so has become more lucrative than mining itself. In August of 2023 Riot collected $32m from curtailing mining and just $8.6m from selling bitcoin.

Archive link: https://archive.md/O8Cz9

 

Kind of sharing this because the headline is a little sensationalist and makes it sound like MS is hard right (they are, but not like this) and anti-EU.

I mean, they probably are! Especially if it means MS is barred from monopolies and vertical integration.

13
submitted 5 months ago* (last edited 5 months ago) by [email protected] to c/[email protected]
 

Wish I had a screengrab of this, but occasionally when I open the awful.systems page, it looks like I've logged in as a different user. Just now the username "autumnal" appeared instead of my own. Don't know how to reproduce.

This has happened in chrome on macosx a few times, haven't seen it elsewhere.

1
VoughtCoin (the-boys.fandom.com)
 

TIL that television program “The Boys” has an in universe cryptocurrency as a satire of, well, cryptocurrency in general but also specifically that time when DJT was selling NFTs. They occasionally tweet about it.

It has a listing on the “BSCScan” crypto tracker under the name “VTC” so someone might have actually minted it? It might surprise some of you that I have no way of telling the realness of such a thing.

 

Uncritically sharing this article with naive hope. Is this just PR for a game? Probably. Indies deserve as much free press as possible though.

view more: next ›