プログラミングのお題スレ Part22 (858レス)
前次1-
抽出解除 レス栞

リロード規制です。10分ほどで解除するので、他のブラウザへ避難してください。
117: デフォルトの名無しさん [sage] 2023/10/02(月) 11:46:19.28 ID:0odvDMYE(1) AAS
>>116
116(1): 17 [] 2023/10/02(月) 01:52:26.35 ID:hWT/DRlk(2/2) AAS
>>104
1. qrencode というプログラムをインストールする。(例: RedHat系Linuxなら yum install qrencode)

2. qrencode で出力に ansi 等を指定して文字列で出力する。

例: qrencode -t ansi やっほー

3. 画面に出て来たQRコードをスマホで撮影する等して確認する。

4. 終わり。
よくできました
蟻ポイント30
139
(1): デフォルトの名無しさん [sage] 2023/10/21(土) 04:08:56.28 ID:TaroWUwV(1) AAS
お題:文字列「せんだ」「みつを」「ナハナハ」がランダムに100行入力される。せんだ、みつを、ナハナハが順番に入力されたときに1と一行出力せよ
163: デフォルトの名無しさん [] 2023/11/26(日) 21:12:35.28 ID:SfQeb61a(1) AAS
>>157
157(1): デフォルトの名無しさん [] 2023/11/25(土) 22:17:37.68 ID:Al0Rw+0l(1) AAS
>>156
R
外部リンク:ideone.com
これだと150001回以上となる場合が本来よりも起こりにくくなってしまい駄目だった。
活かしながら書き換えると 外部リンク:ideone.com
180
(1): 17 [] 2023/12/13(水) 15:17:15.28 ID:WwinWAeQ(1/3) AAS
>>179
179(6): デフォルトの名無しさん [] 2023/12/13(水) 09:27:48.18 ID:NbIWTS6w(1) AAS
お題
ビールの空きビンをN本集めると新品のビール1本と交換してもらえる

あなたが新品のビールをP本持っている

そのとき、あなたが飲めるビールはR本である

N, Pを引数としてRを返す関数を定義してください
Kotlin または Kotlin script

fun beer(n: Int, p: Int) = p + p / n
228: デフォルトの名無しさん [] 2024/02/09(金) 20:11:03.28 ID:xlZlW34G(1) AAS
>>206
206(23): デフォルトの名無しさん [] 2024/02/02(金) 06:41:15.23 ID:CC6U77IS(1) AAS
お題
入力データをグループ分けして出力せよ

入力データの、= の左右は同じグループである。
出力する順番は、入力データの出現順とする

UnionFind を使えば良いかも

入力データ
["a1=a2", "b1=b2", "b3=b2", "c1=c2", "e1=e2",
"a3=a4", "c3=c4", "e1=e3", "a2=a4", "c3=c1",
"b3=a4", "c2=d1", "a4=a5", "d2=c1", "b4=b3", "d3=c3"]

出力
[["a1", "a2", "b1", "b2", "b3", "a3", "a4", "a5", "b4"],
["c1", "c2", "c3", "c4", "d1", "d2", "d3"],
["e1", "e2", "e3"]]

Ruby で、UnionFind を自作してみた。
下はユニットテストです

外部リンク:paiza.io
外部リンク:paiza.io
C#でHashSet型を使用。実効速度は>>224
224(2): デフォルトの名無しさん [] 2024/02/05(月) 23:26:45.85 ID:YjqgZClx(1) AAS
>>206
>>218-219をC#化
外部リンク:ideone.com
>>227
227(2): デフォルトの名無しさん [] 2024/02/06(火) 22:17:05.66 ID:ICpsP2hv(1) AAS
>>206
C#で>>224とは別の解法
外部リンク:ideone.com
より遅い。
外部リンク:ideone.com
237
(1): デフォルトの名無しさん [] 2024/02/14(水) 23:21:42.28 ID:iTsk+dOj(1) AAS
>>236
236(2): デフォルトの名無しさん [sage] 2024/02/14(水) 21:10:48.99 ID:/8p4lTpf(1) AAS
>>234 ocaml
外部リンク:ideone.com

>>234 rust
外部リンク:ideone.com
PowerShell
外部リンク:ideone.com
257: デフォルトの名無しさん [] 2024/02/18(日) 18:26:09.28 ID:ovKjFpQ6(1) AAS
>>253-256 アスペで不合格w
287
(1): デフォルトの名無しさん [] 2024/02/24(土) 22:30:55.28 ID:mNVJyIZh(2/2) AAS
>>282
282(16): ◆QZaw55cn4c [sage] 2024/02/24(土) 14:25:41.40 ID:NZEL8Kud(1) AAS
異なる自然数 a, b (a > b) における a^3 - b^3 を「a, b の三乗差」と呼ぶことにする。
異なる5通りの組(a, b) (c, d) ... (j, k) について三乗差がすべて相等しいとき
その組(a, b)...(j, k) および三乗差自体を求めよ
異なる6通りの組で三乗差が相等しい場合があるかも検討せよ
aが5000以下限定で>>283
283(1): デフォルトの名無しさん [] 2024/02/24(土) 16:47:38.19 ID:KRWvIUHe(1) AAS
>>282
[(1134, 357), (1155, 504), (1246, 805), (2115, 2004), (4746, 4725)]
a^3 - b^3 == 1412774811
の解はRで5秒以内に求められた。8〜9行目は下三角行列の要素番号から
行番号と列番号を求めているだけで、>>282を解く特別なアルゴリズムというわけではない。
外部リンク:ideone.com
478: 警備員[Lv.18] [] 2025/01/12(日) 04:14:11.28 ID:zWON4EbF(1/2) AAS
>>464
464(9): デフォルトの名無しさん [] 2025/01/03(金) 13:22:57.82 ID:dEYOS8Dq(1/2) AAS
お題
AのあとにAと同じ数だけBが続く言語エビがあるとします
文字列が入力されたときそれがエビ言語であるか判定するプログラムを作成してください

→ true
A → false
B → false
AB → true
ABB → false
AAB → false
AABB → true
ABAABBAAABBB→ true
Kotlin
外部リンク:paiza.io
676
(1): デフォルトの名無しさん [sage] 2025/03/15(土) 19:04:58.28 ID:GCbQqql0(1) AAS
>>673
673(1): デフォルトの名無しさん [sage] 2025/03/14(金) 02:30:00.58 ID:wjeVVi0w(2/2) AAS
>>670 Rust 逆文字列を生成しない&整数ジェネリック版
use num::{BigInt, CheckedAdd, CheckedMul, CheckedSub, FromPrimitive};

fn chars_to_integer<X>(input: impl Iterator<Item = char>) -> Option<X>
 where X: FromPrimitive + CheckedMul + CheckedAdd,
{
 let (zero, ten) = (X::from_u32(0).unwrap(), X::from_u32(10).unwrap());
 input
  .map(|c| X::from_u32(c.to_digit(10)?))
  .try_fold(zero, |acc, x| acc.checked_mul(&ten)?.checked_add(&x?))
}

fn odai<X>(input: &str) -> Option<X>
 where X: FromPrimitive + CheckedMul + CheckedAdd + CheckedSub,
{
 let x = chars_to_integer::<X>(input.chars())?;
 let y = chars_to_integer::<X>(input.chars().rev())?;
 x.checked_sub(&y)
}

fn main() {
 assert_eq!(odai::<i64>("12345"), Some(-41976));
 assert_eq!(odai::<BigInt>("4922235242952026704037113243122008064"), Some("314233029528909399960910650696685770".parse::<BigInt>().unwrap()));
}
これらのwhere~は何という名称ですか?

> where X: FromPrimitive + CheckedMul + CheckedAdd,
> where X: FromPrimitive + CheckedMul + CheckedAdd + CheckedSub,
683
(2): 9 [sage] 2025/03/18(火) 16:07:07.28 ID:GYPHuJM6(2/5) AAS
>>682
682(1): 9 [sage] 2025/03/18(火) 16:05:22.66 ID:GYPHuJM6(1/5) AAS
>>680 Perl5、ナイーブな処理方式だと時間がかかり過ぎで最後まで解けないおそれがあるが、なかなかほかに回答者が現れないし、
出現傾向を見るだけでも…と思って、16進数の桁にa-fの現れる値をskipするナイーブな処理方法で。

$m = sprintf '%x', 9 x 15; # 10進で15桁まで
print $m . ' '. hex($m)."\n";
$m =~ s/[a-f]/9/g;
print "1 .. 0x$m\n";
print "".localtime."\n";
for (1 .. $m) {
 $d = hex($_);
 if (0 <= index($d, $_)) {
  $n++;
  print "$d, 0x$_\n";
 }
}
print "".localtime."\n";
print "$n count found";
実行結果 (改行数を減らすため適度につなげてます)
$ perl 22_680_hex_substr_1.pl
38d7ea4c67fff 999999999999999
1 .. 0x3897994967999
Tue Mar 18 09:15:31 2025
1, 0x1   2, 0x2   3, 0x3   4, 0x4   5, 0x5   6, 0x6   7, 0x7   8, 0x8   9, 0x9
357440, 0x57440   357441, 0x57441   357442, 0x57442   357443, 0x57443   357444, 0x57444
357445, 0x57445   357446, 0x57446   357447, 0x57447   357448, 0x57448   357449, 0x57449
1079653, 0x107965   1081713, 0x108171   1122966, 0x112296   1123079, 0x112307   1123080, 0x112308
2246166, 0x224616   3369253, 0x336925   3371313, 0x337131   3412566, 0x341256
4494393, 0x449439   4494400, 0x449440   4535653, 0x453565
5658739, 0x565873   5658740, 0x565874   5660793, 0x566079   5660800, 0x566080   5702166, 0x570216
6783879, 0x678387   6783880, 0x678388   6784000, 0x678400
6825253, 0x682525   7948339, 0x794833   7948340, 0x794834   7950393, 0x795039   7950400, 0x795040
2182104640, 0x82104640   2182104641, 0x82104641   2182104642, 0x82104642   2182104643, 0x82104643   2182104644, 0x82104644
2182104645, 0x82104645   2182104646, 0x82104646   2182104647, 0x82104647   2182104648, 0x82104648   2182104649, 0x82104649
1263629042727, 0x12636290427   1307655353654, 0x13076553536   2573583194436, 0x25735831944   2617616245848, 0x26176162458
3330782168640, 0x30782168640   3330782168641, 0x30782168641   3330782168642, 0x30782168642   3330782168643, 0x30782168643
3330782168644, 0x30782168644   3330782168645, 0x30782168645   3330782168646, 0x30782168646   3330782168647, 0x30782168647
3330782168648, 0x30782168648   3330782168649, 0x30782168649   3883544086630, 0x38835440866   3927569962533, 0x39275699625
3927570397557, 0x39275703975

Core i7-8559U で6時間ほど実行してここまで高々13桁。
やはり想定通り気の利いた高速解放が要りますテヘペロ。
772
(1): デフォルトの名無しさん [sage] 2025/07/25(金) 20:46:23.28 ID:dyl0C+2U(1) AAS
>>771
771(22): デフォルトの名無しさん [sage] 2025/07/25(金) 12:30:11.02 ID:CjDQVF2B(1) AAS
【問題】
整数のリストが与えられたとき、そのリストを昇順に安定ソートした時の各要素のインデクス(0開始)を対応させたリストを作成せよ

【例】
入力: 1 100 10 10000 1000
出力: 0 2 1 4 3

入力: 3 1 4 1 5 9 2
出力: 3 0 4 1 5 6 2

入力: 0 1 0 1 0 1 0 1
出力: 0 4 1 5 2 6 3 7

実際に必要になって実装したけどスマートな方法があったら知りたい
例がおかしい
わかりやすい最後の例で示すと

入力: 0 1 0 1 0 1 0 1
出力: 0 4 1 5 2 6 3 7 間違い
出力: 0 2 4 6 1 3 5 7 正解

安定ソートなので同値は順序を保ってこうなる
794: デフォルトの名無しさん [] 2025/08/07(木) 07:21:55.28 ID:W/yAWgo4(1) AAS
これからはメソッドの時代
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.034s