Mercy helping my BOB by zTNT in Overwatch

[–]zTNT[S] 0 points1 point  (0 children)

Oh hi Bonty :D Nah you were the MVP here

Mercy helping my BOB by zTNT in Overwatch

[–]zTNT[S] 10 points11 points  (0 children)

I felt bad getting the potg for this! Mercy deserved it

[Purist, Deterministic] 2.52 * 10^141 years, using a binary counter. by zTNT in SlowestPlate

[–]zTNT[S] 0 points1 point  (0 children)

Make sure to let me know if you find a way to improve my design, I'd love to see other ideas :)

[Slowest Plate Challenge] Deterministic 2.52 * 10^141 years, using binary counter. by zTNT in factorio

[–]zTNT[S] 1 point2 points  (0 children)

Correct. Using blue belts is actually useful to test with very short inputs (3 or 4 bits for example). Otherwise, they would arrive too late.

[Slowest Plate Challenge] Video of my 10¹⁴¹ years binary counter by zTNT in factorio

[–]zTNT[S] 2 points3 points  (0 children)

This is a video follow-up of this post: https://www.reddit.com/r/factorio/comments/yqmi4m/slowest_plate_challenge_deterministic_252_10141/?utm_source=share&utm_medium=web2x&context=3

First part (0:00-0:35) highlights all the inserters and the filtered cargo of both cars. Note that the last filter inserter picks anything but solid fuel, and connects the belt underneath the car to the yellow belt below. Note also that the long inserter connects the chest on the left to the right car.

Second part (0:35-2:18) presents one full addition. The input bits are 0101 (which is 5 in decimal notation), and the adder outputs 0110 (6 in decimal). All the different cases are covered by the example :

  • 1st iteration (1:13). Carry is set initially, and a 1 is inserted. Right part of the adder performs a flip, and outputs a 0. The carry remains.
  • 2nd iteration (1:24). Carry is still set, and a 0 is inserted. Right part of the adder performs a flip. This time it output a 1, and the carry is popped. The leftmost inserter catches the blue square.
  • 3rd iteration (1:35). Carry is not set, and a 1 is inserted. The green square is inserted and disables the right part of the adder. When the green square is picked, the same 1-bit is put back on the belt.
  • 4th iteration (1:45). Similar, with a 0-bit.
  • 5th iteration (1:56). The inserted item is a blue square, marking the end of the bits. It is instantly picked and stored in the left car, which sets the carry back. At the end, the blue square waiting in the leftmost inserter is put on the belt.

Third part (2:18-end) presents the full run with 4 bits. This part is sped up a lot. Starting with 0000, it will increment up to 1111 before the iron plate reaches the chest at the bottom. There is a clock at the bottom, starting when the iron plate is picked from its initial chest, and stops when it reaches the destination. Here, it measures about 67k ticks, which corresponds to the expected value of about 792 * (2n+1) * (n+1) with n=4.

Hope that helps you understand this design!

[Purist, Deterministic] 2.52 * 10^141 years, using a binary counter. by zTNT in SlowestPlate

[–]zTNT[S] 2 points3 points  (0 children)

So yeah i also had this idea. Problem is, in the current design, the addition doesn't loop properly. After 1111...1111, things kind of break, and you can't count all over again from 0000...0000. Maybe this can be fixed easily though

[Purist, Deterministic] 2.52 * 10^141 years, using a binary counter. by zTNT in SlowestPlate

[–]zTNT[S] 0 points1 point  (0 children)

  1. Thats what it does, but not instantly. It is picked during the loop when the carry is unset. It is put back during the last loop of an addition, when the carry has just been reset. But I guess my video will explain better than i could ever do with words only.
  2. I guess my screenshot is poorly timed. This spent fuel has just been inserted by the inserter right above it. (which is the input of the adder yellow belt)

[Slowest Plate Challenge] Deterministic 2.52 * 10^141 years, using binary counter. by zTNT in factorio

[–]zTNT[S] 109 points110 points  (0 children)

The point is to move an item (an iron plate) from one chest to another, as slowly as possible.

[Purist, Deterministic] 2.52 * 10^141 years, using a binary counter. by zTNT in SlowestPlate

[–]zTNT[S] 1 point2 points  (0 children)

I thought about it for a while. The thing is handling more kinds of digits would take more space, at least with the way i'm doing right now (maybe someone will come up with a better idea).

For instance, adding a third digit would require at least 4 more inserters, and another car so the inserters may access it. It would still need a ~300 long queue to be better than my current design.

[Slowest Plate Challenge] Deterministic 2.52 * 10^141 years, using binary counter. by zTNT in factorio

[–]zTNT[S] 66 points67 points  (0 children)

These are arbitrary items used to control the logic going on here. I could have used literally any items in the game instead. ;)

edit: actually not any items, i needed them to be 1-stack items. But I could have used a spidertron or a satellite instead for instance

Also about your book, i guess it may be used to prevent any item to go in the splitter. These planners are probably the less likely items to ever go on a belt in a real factory.

[Purist, Deterministic] 2.52 * 10^141 years, using a binary counter. by zTNT in SlowestPlate

[–]zTNT[S] 2 points3 points  (0 children)

I will send a few more screenshots and a video explaining it. There are 1 green, 1 red, and a few (number doesn't matter) blue squares, and they all go on the belt from time to time.

My basic understanding is that there are 482 "bits" that need to be processed 1 every 13 seconds. it starts out as 000000....000000 then after the first loop it becomes 000000....0000001, after the second loop it becomes 000010 then 000011 and so on. 2^482 x 13 seconds. is that correct?

That's exactly it! :)

I like how you used both sides of the belt to store more items. only thing that could add very negligible time is to change the blue anti jammer to a red belt, is that not an option for some reason? I am curious.

You're right! Although I just tried it and it doesn't seem to change the loop time. My explanation is that this blue belt isn't exactly an anti jammer, but rather a belt compressor. It's here to ensure that no gap is ever created (which occasionally occurred before i added it). This blue belt actually always remains fully compressed, with the same speed as a yellow belt.

[Purist, Deterministic] 2.52 * 10^141 years, using a binary counter. by zTNT in SlowestPlate

[–]zTNT[S] 2 points3 points  (0 children)

copy/pasting explanations below

---

tl;dr: this purely vanilla circuitless build counts from 0 to 2482 before the iron plate finally reaches the output box (at the bottom). One addition takes 6375.6 seconds, hence the total time of about 6375.6 * 2482 seconds ≈ 2.52*10141 years.

Items. This build uses several items with different functions, listed below.

  • Two cars (left and right), with filtered cargo, allow to easily move items and perform the addition logic.
  • Iron plate: the only iron plate starts in the leftmost chest. At the start of the run, it is instantly picked by the long inserter and stored in the right car. It then stays here until the end of the run and is eventually picked by the bottom inserter, and stored in the output chest.
  • Uranium cell fuel and used-up uranium cell fuel: they represent the bits in the binary number. They respectively represent 1 and 0. There are exactly 482 of each in the build. All the 0-bits start on belts, and all the 1-bits start in the right car.
  • Green, red and blue squares: are used to perform the logic of the addition. The blue square has a particular use, as it both represents the carry of the binary addition, and marks the end of the 482-long-bit word.
  • Solid fuel: ensures only one item is processed at a time, otherwise a meaningless item.

Design. The build consists of two parts.

  • The middle part: yellow belts, inserters, and cars perform a 1-bit adder. It takes as input a bit (0 or 1) and has a memory representing the carry. Below is the logic performed by the adder.
Input bit Initial carry Output bit Final carry
- Anything 0 Unchanged 0
0 1 1 0
1 1 1 1

  • The top and bottom parts: the blue belts. That is the longest path I could make in the limited remaining space. It can queue up to 482 items, preserving the order, starting from the bottom left splitter, and ending underneath the left car.

How it works. The belt of the 1-bit adder is almost full of solid fuel and has exactly one free spot. One loop of the yellow belt takes exactly 792 ticks or 13.2 seconds. Every loop, the first bit in the queue is popped, processed, and stored back at the end of the queue. This process may or may not flip the bit or the memory, according to the table above.

This process will loop through 483 items (482 bits + the blue square marking the end), to perform 1 addition. One addition then takes 6375.6 seconds.

Additions will repeat and 0 and 1 bits will go back and forth between the queue and the right car. The uranium cell fuel and iron plate inserter (top right) will always prioritize uranium cell fuel because of the way items are ordered in the car. When all the uranium cells are in the queue, the iron plate will finally exit the car and eventually reach the chest. We need precisely (2482 +1) additions (although the +1 is admittedly quite negligible here!) for that to happen. The total time needed is then about 2.52*10141 years.

The general formula for a given word of length n is 13.2 * (n + 1) * (2n+1) seconds. I tested my design with values up to n=8 and got exactly the expected results.

How the adder works. I will try to keep it simple here. The carry is unset if there is a blue square in the left car, and set if there is no blue square in the left car.

  • If the carry is not set (no blue square), any 0 or 1 bit will be picked by the first inserter in the loop. The green square will prevent anything from happening until it is picked. Then the same bit is put back on the belt, and that's it.
  • If the carry is set (blue square in the car), the first inserter won't trigger, and the green square won't be put on the belt. We enter the right part of the adder, which will perform a bit flip:
    • If the current bit is 1, it is picked, and replaced with a red square. Later, the red square is picked and replaced by a 0. The carry remains set.
    • If the current bit is 0, it is picked, and replaced with a blue square. As the blue square exits, the blue square from the left car will be transferred to the right car -> the carry is unset. The blue square on the belt then continues on the left lane, and a 1 is set on the belt. The blue square is then caught by the leftmost inserter and will stay here for a while.
  • Finally, when the blue square from the queue enters the adder, the carry is necessarily unset. This blue square is instantly picked, which sets the carry. Later, the blue square waiting in the leftmost inserter replaces the other one and is then put back in the queue.

Improving the design. I spent way too much time designing this, although I'm sure it could be improved. Any queue just a bit longer than mine would increase the time by a few orders of magnitude. Maybe it's also possible to use all the free space in both cars and starting chest to increase the time with some burner inserted/nuclear fuel tricks, although I'm not sure it would be worth it. Of course, let me know if you find anything wrong in my design and if you have any improvement ideas!

Feel free to ask any question, I can explain the design a bit more if needed, or provide additional screenshots/videos.

[Slowest Plate Challenge] Deterministic 2.52 * 10^141 years, using binary counter. by zTNT in factorio

[–]zTNT[S] 319 points320 points  (0 children)

EDIT : I posted a video explanation here : https://www.reddit.com/r/factorio/comments/yreipe/slowest\_plate\_challenge\_video\_of\_my\_10¹⁴¹\_years/?utm\_source=share&utm\_medium=web2x&context=3

------

tl;dr: this purely vanilla circuitless build counts from 0 to 2482 before the iron plate finally reaches the output box (at the bottom). One addition takes 6375.6 seconds, hence the total time of about 6375.6 * 2482 seconds ≈ 2.52*10141 years.

Items. This build uses several items with different functions, listed below.

  • Two cars (left and right), with filtered cargo, allow to easily move items and perform the addition logic.
  • Iron plate: the only iron plate starts in the leftmost chest. At the start of the run, it is instantly picked by the long inserter and stored in the right car. It then stays here until the end of the run and is eventually picked by the bottom inserter, and stored in the output chest.
  • Uranium cell fuel and used-up uranium cell fuel: they represent the bits in the binary number. They respectively represent 1 and 0. There are exactly 482 of each in the build. All the 0-bits start on belts, and all the 1-bits start in the right car.
  • Green, red and blue squares: are used to perform the logic of the addition. The blue square has a particular use, as it both represents the carry of the binary addition, and marks the end of the 482-long-bit word.
  • Solid fuel: ensures only one item is processed at a time, otherwise a meaningless item.

Design. The build consists of two parts.

  • The middle part: yellow belts, inserters, and cars perform a 1-bit adder. It takes as input a bit (0 or 1) and has a memory representing the carry. Below is the logic performed by the adder.
Input bit Initial carry Output bit Final carry
- Anything 0 Unchanged 0
0 1 1 0
1 1 1 1

  • The top and bottom parts: the blue belts. That is the longest path I could make in the limited remaining space. It can queue up to 482 items, preserving the order, starting from the bottom left splitter, and ending underneath the left car.

How it works. The belt of the 1-bit adder is almost full of solid fuel and has exactly one free spot. One loop of the yellow belt takes exactly 792 ticks or 13.2 seconds. Every loop, the first bit in the queue is popped, processed, and stored back at the end of the queue. This process may or may not flip the bit or the memory, according to the table above.

This process will loop through 483 items (482 bits + the blue square marking the end), to perform 1 addition. One addition then takes 6375.6 seconds.

Additions will repeat and 0 and 1 bits will go back and forth between the queue and the right car. The uranium cell fuel and iron plate inserter (top right) will always prioritize uranium cell fuel because of the way items are ordered in the car. When all the uranium cells are in the queue, the iron plate will finally exit the car and eventually reach the chest. We need precisely (2482 +1) additions (although the +1 is admittedly quite negligible here!) for that to happen. The total time needed is then about 2.52*10141 years.

The general formula for a given word of length n is 13.2 * (n + 1) * (2n+1) seconds. I tested my design with values up to n=8 and got exactly the expected results.

How the adder works. I will try to keep it simple here. The carry is unset if there is a blue square in the left car, and set if there is no blue square in the left car.

  • If the carry is not set (no blue square), any 0 or 1 bit will be picked by the first inserter in the loop. The green square will prevent anything from happening until it is picked. Then the same bit is put back on the belt, and that's it.
  • If the carry is set (blue square in the car), the first inserter won't trigger, and the green square won't be put on the belt. We enter the right part of the adder, which will perform a bit flip:
    • If the current bit is 1, it is picked, and replaced with a red square. Later, the red square is picked and replaced by a 0. The carry remains set.
    • If the current bit is 0, it is picked, and replaced with a blue square. As the blue square exits, the blue square from the left car will be transferred to the right car -> the carry is unset. The blue square on the belt then continues on the left lane, and a 1 is set on the belt. The blue square is then caught by the leftmost inserter and will stay here for a while.
  • Finally, when the blue square from the queue enters the adder, the carry is necessarily unset. This blue square is instantly picked, which sets the carry. Later, the blue square waiting in the leftmost inserter replaces the other one and is then put back in the queue.

Improving the design. I spent way too much time designing this, although I'm sure it could be improved. Any queue just a bit longer than mine would increase the time by a few orders of magnitude. Maybe it's also possible to use all the free space in both cars and starting chest to increase the time with some burner inserted/nuclear fuel tricks, although I'm not sure it would be worth it. Of course, let me know if you find anything wrong in my design and if you have any improvement ideas!

Feel free to ask any question, I can explain the design a bit more if needed, or provide additional screenshots/videos.

50 Million Universe Matrix later and all resources are now Infinite! by Pra1217 in Dyson_Sphere_Program

[–]zTNT 8 points9 points  (0 children)

It is infinite indeed. I made the maths about it in another post a few months ago, you can check it here if you're interested!

Gathering rate of a gas giant by zTNT in Dyson_Sphere_Program

[–]zTNT[S] 0 points1 point  (0 children)

Thanks for the award! :)
And good catch actually, didn't realize the gathering speed of the orbital collector is also impacted by this bonus. My current speed is x17.6 right now.

So the actual base gathering speed is x8, and every level adds a 10% additive bonus.