プログラミングのお題スレです。
【出題と回答例】
1 名前:デフォルトの名無しさん
お題:お題本文
2 名前:デフォルトの名無しさん
>>1 使用言語
回答本文
結果がある場合はそれも
【ソースコードが長くなったら】 (オンラインでコードを実行できる)
https://ideone.com/
http://codepad.org/
http://compileonline.com/
http://rextester.com/runcode
https://runnable.com/
https://code.hackerearth.com/
http://melpon.org/wandbox
https://paiza.io/
宿題は宿題スレがあるのでそちらへ。
※前スレ
プログラミングのお題スレ Part21
https://mevius.5ch.net/test/read.cgi/tech/1668333636/
探検
プログラミングのお題スレ Part22
1デフォルトの名無しさん
2023/08/03(木) 13:52:13.20ID:/xW45k0z2023/08/27(日) 01:16:42.56ID:xDzSjAxc
まずこの部分が最初のヒントで
>>それって例えば "ABCBAXYZZYX" だったら "ABCBA" と "XYZZYX" が抜き出せれば良いの?
>>途中の "BCB", "C", "YZZY", "ZZ" も抜き出すの?
>途中のもぜんぶっす…
最も長いものを抜き出せばその一部分はその中に含まれている
だから短いのが判明した時点で引き続き長いのも探索しないと多重に無駄に比較が行なわれてしまう
もう一つのポイントは回文は対称系で長さ奇数と偶数の二種類があること
長さ奇数「DCBABCD」と長さ偶数「DCBAABCD」どちらの場合も
比較は対称点となるAからのみ出発して比較していけばよくて
順方向&逆方向へ最長分を比較していけば上述の無駄な比較を減らせる
このような順番で見つかっていくことになる
>>81の実行結果
0~0: A
1~1: B
2~2: C
1~3: BCB
0~4: ABCBA
3~3: B
4~4: A
5~5: X
6~6: Y
7~7: Z
7~8: ZZ
6~9: YZZY
5~10: XYZZYX
8~8: Z
9~9: Y
10~10: X
>>それって例えば "ABCBAXYZZYX" だったら "ABCBA" と "XYZZYX" が抜き出せれば良いの?
>>途中の "BCB", "C", "YZZY", "ZZ" も抜き出すの?
>途中のもぜんぶっす…
最も長いものを抜き出せばその一部分はその中に含まれている
だから短いのが判明した時点で引き続き長いのも探索しないと多重に無駄に比較が行なわれてしまう
もう一つのポイントは回文は対称系で長さ奇数と偶数の二種類があること
長さ奇数「DCBABCD」と長さ偶数「DCBAABCD」どちらの場合も
比較は対称点となるAからのみ出発して比較していけばよくて
順方向&逆方向へ最長分を比較していけば上述の無駄な比較を減らせる
このような順番で見つかっていくことになる
>>81の実行結果
0~0: A
1~1: B
2~2: C
1~3: BCB
0~4: ABCBA
3~3: B
4~4: A
5~5: X
6~6: Y
7~7: Z
7~8: ZZ
6~9: YZZY
5~10: XYZZYX
8~8: Z
9~9: Y
10~10: X
8317
2023/08/27(日) 05:51:19.72ID:A+RJ0qtc >>80
ここはお題スレなのでクローズはない。
ここはお題スレなのでクローズはない。
8417
2023/09/07(木) 20:20:41.05ID:HlrfnodH2023/09/20(水) 14:42:58.26ID:I55f6i4N
お題
abc1.mp4 abc2.mp4 .. abc20.mp4があるとします
これを名前順でソートできるようにするため
abc001.mp4 abc002.mp4 ... abc020.mp4
とリネームしてください
abc1.mp4 abc2.mp4 .. abc20.mp4があるとします
これを名前順でソートできるようにするため
abc001.mp4 abc002.mp4 ... abc020.mp4
とリネームしてください
2023/09/20(水) 18:43:20.77ID:DIo9fsPi
コレでどーかぬ
#!/bin/bash
# ファイル名のプレフィックス
prefix="abc"
# ソート対象のファイルリストを取得
file_list=$(ls ${prefix}*.mp4 | sort)
# ファイルを001、002、...の形式にリネーム
counter=1
for file in $file_list; do
new_name=$(printf "${prefix}%03d.mp4" $counter)
mv "$file" "$new_name"
counter=$((counter + 1))
done
#!/bin/bash
# ファイル名のプレフィックス
prefix="abc"
# ソート対象のファイルリストを取得
file_list=$(ls ${prefix}*.mp4 | sort)
# ファイルを001、002、...の形式にリネーム
counter=1
for file in $file_list; do
new_name=$(printf "${prefix}%03d.mp4" $counter)
mv "$file" "$new_name"
counter=$((counter + 1))
done
2023/09/20(水) 18:50:38.69ID:I55f6i4N
いいだしっぺということで作ってきたら既に投稿が
printfするところは一緒ですね
bash,勉強になります
haskell
import Text.Printf
import System.IO
import System.Directory
import System.FilePath.Glob
import Data.List
import Control.Monad
kaku = ".mp4"
fn = "abc"
main = do
files <- glob (fn <> "*" <> kaku)
zipWithM_ (\a b -> renameFile a b) files (map f files)
where
f l =
let r1 = reverse $ takeWhile ((/=) '/') $ reverse l in
let r2 = (r1 \\ fn) \\ kaku in
fn <> printf "%03d" (read r2 :: Int) <> kaku
printfするところは一緒ですね
bash,勉強になります
haskell
import Text.Printf
import System.IO
import System.Directory
import System.FilePath.Glob
import Data.List
import Control.Monad
kaku = ".mp4"
fn = "abc"
main = do
files <- glob (fn <> "*" <> kaku)
zipWithM_ (\a b -> renameFile a b) files (map f files)
where
f l =
let r1 = reverse $ takeWhile ((/=) '/') $ reverse l in
let r2 = (r1 \\ fn) \\ kaku in
fn <> printf "%03d" (read r2 :: Int) <> kaku
2023/09/22(金) 11:23:46.58ID:R2SvRL0Z
お題:celeronで快適に動作するwebブラウザを作れ
899
2023/09/22(金) 16:53:16.55ID:8M97O6g7 >>85 Perl5
rename "abc$_.mp4", sprintf 'abc%03d.mp4',$_ for 1..20;
※abc1.mp4 abc2.mp4 .. abc20.mp4 があるとしています。
また abc001.mp4 abc002.mp4 ... abc020.mp4 は既存かのチェックは省いています。
rename "abc$_.mp4", sprintf 'abc%03d.mp4',$_ for 1..20;
※abc1.mp4 abc2.mp4 .. abc20.mp4 があるとしています。
また abc001.mp4 abc002.mp4 ... abc020.mp4 は既存かのチェックは省いています。
2023/09/22(金) 17:31:41.64ID:fCKJ4NGF
すごい簡潔ですね!perlすごい
これはワンライナーではないのでしょうか
#!/usr/bin/perl
..
としてperl rename.plを動かすと動きました
ファイルはこれ(bash)で用意できます
for i in {1..20}; do touch abc$i.mp4; done
これはワンライナーではないのでしょうか
#!/usr/bin/perl
..
としてperl rename.plを動かすと動きました
ファイルはこれ(bash)で用意できます
for i in {1..20}; do touch abc$i.mp4; done
2023/09/22(金) 20:45:10.11ID:CSDqgjJn
tcsh のバヤイわこうかぬ
foreach i (`seq 1 20`) # 1から20までの数値を生成
# ファイル名を生成し、touchコマンドでファイルを作成
set filename = "abc$i.mp4"
touch $filename
end
foreach i (`seq 1 20`) # 1から20までの数値を生成
# ファイル名を生成し、touchコマンドでファイルを作成
set filename = "abc$i.mp4"
touch $filename
end
9217
2023/09/24(日) 00:36:54.25ID:FZ40Ia2p9317
2023/09/24(日) 00:44:46.90ID:FZ40Ia2p 1~20を決め打ちして良いならもっと簡単にできたな。まあいいや。
2023/09/24(日) 01:16:14.31ID:nC1Pu7Ba
>>92
なかなかおもろいサイトやぬ
なかなかおもろいサイトやぬ
2023/09/24(日) 01:37:34.83ID:XDqOvN5B
96デフォルトの名無しさん
2023/09/26(火) 17:04:35.08ID:lhHS5sJh お題:32ビット浮動小数点数のnextafter()
32ビット精度(IEEE754のbinary32)の変数aを
64ビット精度(IEEE754のbinary64)の変数bに代入する。
ここで、nextafterf(a, 0)やnextafterf(a, 正の無限)などに相当する操作を
bに対して行え(bを32ビット浮動小数点数に戻すのは無しで)。
操作結果のoverflowやunderflowは考慮しなくてもよい。
32ビット精度(IEEE754のbinary32)の変数aを
64ビット精度(IEEE754のbinary64)の変数bに代入する。
ここで、nextafterf(a, 0)やnextafterf(a, 正の無限)などに相当する操作を
bに対して行え(bを32ビット浮動小数点数に戻すのは無しで)。
操作結果のoverflowやunderflowは考慮しなくてもよい。
2023/09/27(水) 11:02:54.03ID:Jpj1XONB
お題:日本語の文章が入力されるので「、」をカンマに、「。」を改行に変換せよ
98デフォルトの名無しさん
2023/09/27(水) 11:36:52.67ID:uGji0T93 Python
s = input()
s = s.replace("、", ",")
s = s.replace("。", "\n")
print(s)
s = input()
s = s.replace("、", ",")
s = s.replace("。", "\n")
print(s)
2023/09/27(水) 13:01:54.91ID:9Ywamwi5
Haskell
import Data.List.Utils
main = do
s <- getContents
putStrLn $ replace "。" "\n" $ replace "、" "," s
コンパイルはしてないので動かないかも
import Data.List.Utils
main = do
s <- getContents
putStrLn $ replace "。" "\n" $ replace "、" "," s
コンパイルはしてないので動かないかも
100デフォルトの名無しさん
2023/09/27(水) 20:48:13.39ID:hJUMqAFS101デフォルトの名無しさん
2023/09/28(木) 08:18:15.29ID:q8VwFY1b お題
文字列S=abcdefghij(10文字)が与えられて
配列[0,4,7]が与えられる
このときSの0番目を4番目、4番目を7番目、7番目を0番目に移動した文字列を出力するプログラムを書いてください
文字列S=abcdefghij(10文字)が与えられて
配列[0,4,7]が与えられる
このときSの0番目を4番目、4番目を7番目、7番目を0番目に移動した文字列を出力するプログラムを書いてください
102デフォルトの名無しさん
2023/09/28(木) 09:17:20.57ID:iiudb0JA103デフォルトの名無しさん
2023/09/28(木) 13:09:43.08ID:tckV2TlV >>101 Ruby
文字列S='abcdefghij'
配列=[0,4,7]
文字列 = 文字列S.dup
配列.zip( 配列.rotate ).each{|i,j| 文字列[i] = 文字列S[j] }
puts 文字列
文字列S='abcdefghij'
配列=[0,4,7]
文字列 = 文字列S.dup
配列.zip( 配列.rotate ).each{|i,j| 文字列[i] = 文字列S[j] }
puts 文字列
104蟻人間 ◆T6xkBnTXz7B0
2023/09/28(木) 13:15:33.53ID:eLIN3EHU お題: コンソールに指定したUTF-8文字列のQRコードを表示するプログラム。
105デフォルトの名無しさん
2023/09/28(木) 14:55:17.75ID:7+/lnWbq use std::io::{stdin, Read};
use std::error::Error;
use qrcode::QrCode;
fn read() -> Result<String, Box<dyn Error>> {
Ok(stdin().lock().bytes().map(|c| c.expect("char") as char).collect())
}
fn main() -> Result<(), Box<dyn Error>> {
let qr = QrCode::new(read()?.as_bytes())?;
let s = qr.render().light_color(' ').dark_color('#').build();
println!("{}", s);
Ok(())
}
use std::error::Error;
use qrcode::QrCode;
fn read() -> Result<String, Box<dyn Error>> {
Ok(stdin().lock().bytes().map(|c| c.expect("char") as char).collect())
}
fn main() -> Result<(), Box<dyn Error>> {
let qr = QrCode::new(read()?.as_bytes())?;
let s = qr.render().light_color(' ').dark_color('#').build();
println!("{}", s);
Ok(())
}
106蟻人間 ◆T6xkBnTXz7B0
2023/09/28(木) 21:17:30.48ID:yc7Vl2N1 お題: 指定されたフォントのひらがなの各文字について
ひらがなの線に囲まれて閉じた領域の個数を調べ、最もその個数の多い文字ベスト3を出力せよ。
ひらがなの線に囲まれて閉じた領域の個数を調べ、最もその個数の多い文字ベスト3を出力せよ。
107デフォルトの名無しさん
2023/09/28(木) 22:53:24.99ID:8VuS2PIw 自分でやれ
いやできないかすまん
いやできないかすまん
108デフォルトの名無しさん
2023/09/28(木) 22:59:15.05ID:isk1iJ0r pythonならcv2使ってやるかな
10917
2023/09/29(金) 10:58:18.12ID:eBy6R6wt >>97
bash のコマンドラインで以下のように入力すると標準入力から入力して「、」が「,」に、「。」が改行に変換されて標準出力に出力される。
(起動する環境は bash でなければならないということはないと思うが、他のシェルは確認していない)。
sed 's/、/,/g;s/。/\n/g'
もちろん日本語入出力可能な端末を使用して、尚且つ sed がその入力をまともに受け付けてくれなければちゃんと動かない。
bash のコマンドラインで以下のように入力すると標準入力から入力して「、」が「,」に、「。」が改行に変換されて標準出力に出力される。
(起動する環境は bash でなければならないということはないと思うが、他のシェルは確認していない)。
sed 's/、/,/g;s/。/\n/g'
もちろん日本語入出力可能な端末を使用して、尚且つ sed がその入力をまともに受け付けてくれなければちゃんと動かない。
110デフォルトの名無しさん
2023/09/29(金) 11:02:02.85ID:F8aJXNq9 お題: 指定されたフォントのひらがなの各文字について
ひらがなの線に囲まれて閉じた領域の面積を調べ、各文字毎にそれぞれの面積の順序を最も大きい物から順に出力せよ。
またその情報を元に輪郭のhierarchy情報をcv2で利用出来る形で出力せよ
ひらがなの線に囲まれて閉じた領域の面積を調べ、各文字毎にそれぞれの面積の順序を最も大きい物から順に出力せよ。
またその情報を元に輪郭のhierarchy情報をcv2で利用出来る形で出力せよ
111デフォルトの名無しさん
2023/09/30(土) 17:32:44.04ID:xxjzuZuq お題
文字列が入力されます
赤と緑を入れ替えて
黒と白を入れ替えて
黄と青を入れ替えてください
例
入力: 緑のカバンに500万入れて白の紙で黄色のカバン言うて書きながら赤のカバン言いながら置いてくれたら俺黒のカバン言いながら取りに行くわ
出力: 赤のカバンに500万入れて黒の紙で青色のカバン言うて書きながら緑のカバン言いながら置いてくれたら俺白のカバン言いながら取りに行くわ
文字列が入力されます
赤と緑を入れ替えて
黒と白を入れ替えて
黄と青を入れ替えてください
例
入力: 緑のカバンに500万入れて白の紙で黄色のカバン言うて書きながら赤のカバン言いながら置いてくれたら俺黒のカバン言いながら取りに行くわ
出力: 赤のカバンに500万入れて黒の紙で青色のカバン言うて書きながら緑のカバン言いながら置いてくれたら俺白のカバン言いながら取りに行くわ
112デフォルトの名無しさん
2023/09/30(土) 18:00:29.42ID:oqu6hf3+ >>111 node
const swap = (text, [w1, w2]) => text.split(w1).map(v => v.replaceAll(w2, w1)).join(w2)
const swapAll = (text, rules) => rules.reduce(swap, text)
const text = '緑のカバンに500万入れて白の紙で黄色のカバン言うて書きながら赤のカバン言いながら置いてくれたら俺黒のカバン言いながら取りに行くわ'
const rules = [['赤', '緑'], ['黒', '白'], ['黄', '青']]
const replaced = swapAll(text, rules)
// console.log(replaced)
console.log(replaced === '赤のカバンに500万入れて黒の紙で青色のカバン言うて書きながら緑のカバン言いながら置いてくれたら俺白のカバン言いながら取りに行くわ')
// true
const swap = (text, [w1, w2]) => text.split(w1).map(v => v.replaceAll(w2, w1)).join(w2)
const swapAll = (text, rules) => rules.reduce(swap, text)
const text = '緑のカバンに500万入れて白の紙で黄色のカバン言うて書きながら赤のカバン言いながら置いてくれたら俺黒のカバン言いながら取りに行くわ'
const rules = [['赤', '緑'], ['黒', '白'], ['黄', '青']]
const replaced = swapAll(text, rules)
// console.log(replaced)
console.log(replaced === '赤のカバンに500万入れて黒の紙で青色のカバン言うて書きながら緑のカバン言いながら置いてくれたら俺白のカバン言いながら取りに行くわ')
// true
113デフォルトの名無しさん
2023/09/30(土) 19:24:03.19ID:t2v1jL5l114デフォルトの名無しさん
2023/09/30(土) 20:00:09.54ID:iuoy3pEW >>111 ウェブブラウザのJavaScript
https://pastebin.com/YvymwTeN
ユーザースクリプトの体裁で書いたけどブラウザーのConsoleでも動かせる
Firefox: Ctrl+Shift+K
Chrome: Ctrl+Shift+J
https://mevius.5ch.net/test/read.cgi/tech/1691038333/111 を開いてそこで実行
結果はレスに直接追記
重複がないからXPathのtranslate()でいけるな思った、それだけ
https://pastebin.com/YvymwTeN
ユーザースクリプトの体裁で書いたけどブラウザーのConsoleでも動かせる
Firefox: Ctrl+Shift+K
Chrome: Ctrl+Shift+J
https://mevius.5ch.net/test/read.cgi/tech/1691038333/111 を開いてそこで実行
結果はレスに直接追記
重複がないからXPathのtranslate()でいけるな思った、それだけ
11517
2023/10/02(月) 01:36:39.53ID:hWT/DRlk11617
2023/10/02(月) 01:52:26.35ID:hWT/DRlk >>104
1. qrencode というプログラムをインストールする。(例: RedHat系Linuxなら yum install qrencode)
2. qrencode で出力に ansi 等を指定して文字列で出力する。
例: qrencode -t ansi やっほー
3. 画面に出て来たQRコードをスマホで撮影する等して確認する。
4. 終わり。
1. qrencode というプログラムをインストールする。(例: RedHat系Linuxなら yum install qrencode)
2. qrencode で出力に ansi 等を指定して文字列で出力する。
例: qrencode -t ansi やっほー
3. 画面に出て来たQRコードをスマホで撮影する等して確認する。
4. 終わり。
117デフォルトの名無しさん
2023/10/02(月) 11:46:19.28ID:0odvDMYE118デフォルトの名無しさん
2023/10/06(金) 16:54:06.65ID:jg1c5xSH [クライシスアクター」「豊島保養所」←画像検索&拡散!
他スレに丸ごとコピペよろしっく!!
ネットでできる反レプティリアン・反イルミ活動です!!!!!
動画サイトのコメ欄もねらい目だぞーーーー!!!!!!!
他スレに丸ごとコピペよろしっく!!
ネットでできる反レプティリアン・反イルミ活動です!!!!!
動画サイトのコメ欄もねらい目だぞーーーー!!!!!!!
119デフォルトの名無しさん
2023/10/06(金) 16:54:28.09ID:jg1c5xSH [クライシスアクター」「豊島保養所」←画像検索&拡散!
他スレに丸ごとコピペよろしく!!
ネットでできる反レプティリアン・反イルミ活動です!!!!!
動画サイトのコメ欄もねらい目だぞ!!!!!!!
他スレに丸ごとコピペよろしく!!
ネットでできる反レプティリアン・反イルミ活動です!!!!!
動画サイトのコメ欄もねらい目だぞ!!!!!!!
120デフォルトの名無しさん
2023/10/08(日) 19:28:55.20ID:faQf3SiN お題:n階建てのビルに定員4人のエレベーターがある。エレベーターは各階でボタンが押されるとその階に向かう。住人達はエレベータを呼んで乗るとエレベーター内で次に向かう階へのボタンを押す。ボタンを押すのは乗員全員である。乗るのを待っている住人が定員より多かった場合、エレベーターは乗れなかった住人を優先的に回収する。住人は列の先頭から順番にエレベーターに乗り込む。エレベーターは乗員を降ろしている間に住人を追加で乗せることはなく、すべての乗員を降ろしてから次の住人の回収に向かうものとする。
もっとも効率がいいエレベーターの停止順序を求め、入力に対して停止階のリストを出力せよ。
エレベーターの初期位置は1階とする。
入力
階数
乗員数 住人たちがいる階 乗員iが向かう階 乗員iが向かう階 …
5
1 1 5
2 4 3 2
3 2 1 3 5
出力
停止階 停止階 …
1 5 4 3 2 1 3 5
入力
10
5 1 1 2 3 4 4
9 4 10 10 10 1 8 6 6 6 5
出力
1 2 3 4 1 4 1 10 4 6 8 4 5
もっとも効率がいいエレベーターの停止順序を求め、入力に対して停止階のリストを出力せよ。
エレベーターの初期位置は1階とする。
入力
階数
乗員数 住人たちがいる階 乗員iが向かう階 乗員iが向かう階 …
5
1 1 5
2 4 3 2
3 2 1 3 5
出力
停止階 停止階 …
1 5 4 3 2 1 3 5
入力
10
5 1 1 2 3 4 4
9 4 10 10 10 1 8 6 6 6 5
出力
1 2 3 4 1 4 1 10 4 6 8 4 5
1219
2023/10/08(日) 20:24:03.46ID:zYJ3wh+h122デフォルトの名無しさん
2023/10/09(月) 13:56:36.62ID:V7NN5mnX >>121
2.移動した階数の和が最も小さい
2.移動した階数の和が最も小さい
123デフォルトの名無しさん
2023/10/09(月) 19:10:41.03ID:5dE8x2G+124デフォルトの名無しさん
2023/10/09(月) 22:18:18.11ID:5dE8x2G+125デフォルトの名無しさん
2023/10/12(木) 11:02:46.67ID:u59ybXeV スイカゲームを自動操縦するプログラムを造れ
126デフォルトの名無しさん
2023/10/12(木) 12:31:12.32ID:hnj5q8Ch while (true) push(BUTTON_A)
127デフォルトの名無しさん
2023/10/14(土) 00:00:08.85ID:sMwx6jpS お題:角カッコの列が入力されるのでカッコの対応が取れていたら1,取れていなかったら0と表示せよ
< [[]]
> 1
< [[]
> 0
< [[]]
> 1
< [[]
> 0
12817
2023/10/14(土) 02:22:24.53ID:BgrcFKKf >>127
Perl
bash 等のシェルのコマンドラインで以下のように入力すると標準入力から入力して結果を標準出力に出力する。
perl -ne '$n=0;while(/(.)/g){if($1eq"["){$n++}elsif($1eq"]"){$n--}}$f=$n==0?1:0;print"$f\n"'
実行例
[[]]
1
[[]
0
[[[[]][[]]]
0
[[[[]][[]]]]
1
Perl
bash 等のシェルのコマンドラインで以下のように入力すると標準入力から入力して結果を標準出力に出力する。
perl -ne '$n=0;while(/(.)/g){if($1eq"["){$n++}elsif($1eq"]"){$n--}}$f=$n==0?1:0;print"$f\n"'
実行例
[[]]
1
[[]
0
[[[[]][[]]]
0
[[[[]][[]]]]
1
12917
2023/10/14(土) 04:16:14.71ID:BgrcFKKf130デフォルトの名無しさん
2023/10/14(土) 10:19:17.10ID:BRbCCPQd >>127 Ruby
%W( [[]] [[] [[[[]][[]]] [[[[]][[]]]] ][ #{} ).each{|s|
w = s.dup
{} while w.sub!( /\[\]/, '' )
puts "#{(s != '' && w == '')? 1 : 0} #{s.inspect}"
}
# 1 "[[]]"
# 0 "[[]"
# 0 "[[[[]][[]]]"
# 1 "[[[[]][[]]]]"
# 0 "]["
# 0 ""
%W( [[]] [[] [[[[]][[]]] [[[[]][[]]]] ][ #{} ).each{|s|
w = s.dup
{} while w.sub!( /\[\]/, '' )
puts "#{(s != '' && w == '')? 1 : 0} #{s.inspect}"
}
# 1 "[[]]"
# 0 "[[]"
# 0 "[[[[]][[]]]"
# 1 "[[[[]][[]]]]"
# 0 "]["
# 0 ""
131デフォルトの名無しさん
2023/10/14(土) 22:38:53.08ID:5dUK8HoW132デフォルトの名無しさん
2023/10/16(月) 08:51:26.93ID:kgcCjrnK 1)
BY
RG
2)
RG
BY
3)
GR
YB
1-3を回転対称で同じとみなせるグループと線対称で同じとみなせるグループに分類せよ
4色を2x2の升にランダムに一つづつ配置して4x3x2通りのパターンを作成し
それぞれを上の基準でグループ分けせよ
BY
RG
2)
RG
BY
3)
GR
YB
1-3を回転対称で同じとみなせるグループと線対称で同じとみなせるグループに分類せよ
4色を2x2の升にランダムに一つづつ配置して4x3x2通りのパターンを作成し
それぞれを上の基準でグループ分けせよ
133デフォルトの名無しさん
2023/10/17(火) 07:02:57.86ID:InaHR8fg134デフォルトの名無しさん
2023/10/18(水) 20:40:59.79ID:4ifgnZXl お題:Pythonのmath.ulp()と同機能の関数
引数が正規化数限定のサブセットでも可(その旨を明記)。
Pythonで実装する場合は(もちろん)math.ulp()を使ってはならない。
引数が正規化数限定のサブセットでも可(その旨を明記)。
Pythonで実装する場合は(もちろん)math.ulp()を使ってはならない。
136デフォルトの名無しさん
2023/10/18(水) 20:56:02.06ID:L3TY2GGf import struct
def my_ulp(x):
# 浮動小数点数xをバイト列に変換
b = struct.pack("d", x)
# バイト列を整数に変換
i = int.from_bytes(b, "little")
# 符号部(1ビット)を取り出す
s = i >> 63
# 指数部(11ビット)を取り出す
e = (i >> 52) & 0x7ff
# 仮数部(52ビット)を取り出す
m = i & 0xfffffffffffff
# 指数部が0や最大値ならエラー
if e == 0 or e == 0x7ff:
raise ValueError("x is not a normalized number")
# 仮数部の最下位ビット(1ビット)を求める
lsb = m & 1
# 符号部と指数部を元に戻す
i = (s << 63) | ((e - lsb) << 52)
# 整数をバイト列に変換
b = i.to_bytes(8, "little")
# バイト列を浮動小数点数に変換
return struct.unpack("d", b)[0]
def my_ulp(x):
# 浮動小数点数xをバイト列に変換
b = struct.pack("d", x)
# バイト列を整数に変換
i = int.from_bytes(b, "little")
# 符号部(1ビット)を取り出す
s = i >> 63
# 指数部(11ビット)を取り出す
e = (i >> 52) & 0x7ff
# 仮数部(52ビット)を取り出す
m = i & 0xfffffffffffff
# 指数部が0や最大値ならエラー
if e == 0 or e == 0x7ff:
raise ValueError("x is not a normalized number")
# 仮数部の最下位ビット(1ビット)を求める
lsb = m & 1
# 符号部と指数部を元に戻す
i = (s << 63) | ((e - lsb) << 52)
# 整数をバイト列に変換
b = i.to_bytes(8, "little")
# バイト列を浮動小数点数に変換
return struct.unpack("d", b)[0]
137134
2023/10/18(水) 21:44:13.43ID:4ifgnZXl >>135
間違えましたorz
間違えましたorz
139デフォルトの名無しさん
2023/10/21(土) 04:08:56.28ID:TaroWUwV お題:文字列「せんだ」「みつを」「ナハナハ」がランダムに100行入力される。せんだ、みつを、ナハナハが順番に入力されたときに1と一行出力せよ
140デフォルトの名無しさん
2023/10/21(土) 23:03:24.39ID:x0YGunAE141デフォルトの名無しさん
2023/10/25(水) 07:23:48.08ID:gFkqcLnH お題:
(1)Python3.12以降の、math.nextafter()のサブセット
(実装はPythonでなくても構いません)
64ビット長程度の整数iを引数として、
a)iがゼロ:foo(i) = 0.0
b)i > 0:foo(i) = nextafter(0, inf, steps=i)
c)i < 0:foo(i) = nextafter(0, -inf, steps=-i)
を満たすfoo()を書く。
Python3.12を使う場合は、nextafter()を使ってはならない。
(2)(1)の逆関数。
(1)Python3.12以降の、math.nextafter()のサブセット
(実装はPythonでなくても構いません)
64ビット長程度の整数iを引数として、
a)iがゼロ:foo(i) = 0.0
b)i > 0:foo(i) = nextafter(0, inf, steps=i)
c)i < 0:foo(i) = nextafter(0, -inf, steps=-i)
を満たすfoo()を書く。
Python3.12を使う場合は、nextafter()を使ってはならない。
(2)(1)の逆関数。
142141
2023/10/25(水) 07:27:56.03ID:gFkqcLnH 補足:(1)(2)いずれも実用的な時間内で求める事(steps=1相当のnextafter()をループで回すのは不可)。
143デフォルトの名無しさん
2023/10/25(水) 12:47:47.78ID:Bgy3SEXp なんだnextafterって
144141
2023/10/25(水) 23:22:03.23ID:gFkqcLnH14521-923
2023/10/26(木) 00:31:46.93ID:7aLp+Ojb 前スレの補足:
V8やLLVMは、自前でstrtod()的なものを実装してました。
tps://arxiv.org/abs/2101.11408
V8やLLVMは、自前でstrtod()的なものを実装してました。
tps://arxiv.org/abs/2101.11408
146デフォルトの名無しさん
2023/10/28(土) 20:54:22.44ID:U0JINWpQ >>101 octave
https://ideone.com/87WGBO
function s = f(s, i)
s(circshift(i, -1, 2)) = s(i);
end
>>127 ocaml
https://ideone.com/IY1dWU
let chars s =
let rec aux acc i =
if i < 0 then acc else aux (s.[i] :: acc) (i - 1)
in aux [] ((String.length s) - 1)
let f s =
let rec aux = function
([], []) -> 1
| (_, []) -> 0
| ('['::bs, ']'::cs) -> aux (bs, cs)
| (bs, c::cs) -> aux (c::bs, cs)
in aux ([], (chars s))
https://ideone.com/87WGBO
function s = f(s, i)
s(circshift(i, -1, 2)) = s(i);
end
>>127 ocaml
https://ideone.com/IY1dWU
let chars s =
let rec aux acc i =
if i < 0 then acc else aux (s.[i] :: acc) (i - 1)
in aux [] ((String.length s) - 1)
let f s =
let rec aux = function
([], []) -> 1
| (_, []) -> 0
| ('['::bs, ']'::cs) -> aux (bs, cs)
| (bs, c::cs) -> aux (c::bs, cs)
in aux ([], (chars s))
147デフォルトの名無しさん
2023/10/31(火) 00:00:13.24ID:mywig6Xf >>3 c
https://ideone.com/BnNzUC
int has26(const char *p) {
int c, count[26] = {0};
for (; c = tolower(*p); p++) if (isalpha(c)) count[c - 'a']++;
for (c = 'a'; c <= 'z'; c++) if (count[c - 'a'] < 1) return 0;
return 1;
}
const char *f(const char **lines, int n) {
const char *found = 0;
int i, len, minlen;
for (i = 0; i < n; i++)
if (has26(lines[i]))
if (!found)
found = lines[i], minlen = strlen(lines[i]);
else if (len = strlen(lines[i]) < minlen)
found = lines[i], minlen = len;
return found;
}
https://ideone.com/BnNzUC
int has26(const char *p) {
int c, count[26] = {0};
for (; c = tolower(*p); p++) if (isalpha(c)) count[c - 'a']++;
for (c = 'a'; c <= 'z'; c++) if (count[c - 'a'] < 1) return 0;
return 1;
}
const char *f(const char **lines, int n) {
const char *found = 0;
int i, len, minlen;
for (i = 0; i < n; i++)
if (has26(lines[i]))
if (!found)
found = lines[i], minlen = strlen(lines[i]);
else if (len = strlen(lines[i]) < minlen)
found = lines[i], minlen = len;
return found;
}
148デフォルトの名無しさん
2023/11/02(木) 14:01:24.52ID:4TnUpiLT14917
2023/11/05(日) 02:55:01.08ID:w6RhJs5K >>148
ChatGPT にそのままテキストを読ませたらこう答えた。
-------------------------------------------------------------------------------------------------
通学に自転車を使わない学生は34人、自転車を使うがバスを使わない学生は39人、バスを使うが自転車を使わない学生は18人です。
100人の学生全体からこれらの人数を引いた残りの学生がバスと自転車の両方を使っている学生の数です。
100人 - 34人 (自転車を使わない学生) - 39人 (バスを使わない学生) - 18人 (自転車を使わない学生) = 9人
したがって、通学にバスと自転車の両方を使う学生は9人です。
-------------------------------------------------------------------------------------------------
ここで徒歩については考慮しないのかとツッコミを入れたらこう答えた。
-------------------------------------------------------------------------------------------------
申し訳ありません、徒歩の学生についての情報が提供されていなかったため、上記の計算では徒歩を選択した学生については考慮されていませんでした。徒歩を選択した学生の数についての情報がなければ、バスと自転車の両方を使う学生の正確な数を計算することはできません。
-------------------------------------------------------------------------------------------------
ChatGPT にそのままテキストを読ませたらこう答えた。
-------------------------------------------------------------------------------------------------
通学に自転車を使わない学生は34人、自転車を使うがバスを使わない学生は39人、バスを使うが自転車を使わない学生は18人です。
100人の学生全体からこれらの人数を引いた残りの学生がバスと自転車の両方を使っている学生の数です。
100人 - 34人 (自転車を使わない学生) - 39人 (バスを使わない学生) - 18人 (自転車を使わない学生) = 9人
したがって、通学にバスと自転車の両方を使う学生は9人です。
-------------------------------------------------------------------------------------------------
ここで徒歩については考慮しないのかとツッコミを入れたらこう答えた。
-------------------------------------------------------------------------------------------------
申し訳ありません、徒歩の学生についての情報が提供されていなかったため、上記の計算では徒歩を選択した学生については考慮されていませんでした。徒歩を選択した学生の数についての情報がなければ、バスと自転車の両方を使う学生の正確な数を計算することはできません。
-------------------------------------------------------------------------------------------------
15017
2023/11/05(日) 02:58:00.24ID:w6RhJs5K そして更にこういうツッコミを入れる。
最初の34人は自転車を使っていないだけで密かにバスを使っているかも知れないのだが、そのことは考慮しないのか?
ChatGPT
申し訳ありません、私の以前の回答は不完全でした。確かに、最初の34人のうち自転車を使っていないという情報だけでは、彼らがバスを使っているかどうかを確定することはできません。そのため、正確な答えを得るためには追加の情報が必要です。
もし最初の34人のうち何人かが実際にはバスを利用している場合、それを考慮する必要があります。与えられた情報だけからは、バスと自転車の両方を使う学生の正確な数を特定することはできません。必要な情報が揃わない限り、正確な答えを提供することはできません。
最初の34人は自転車を使っていないだけで密かにバスを使っているかも知れないのだが、そのことは考慮しないのか?
ChatGPT
申し訳ありません、私の以前の回答は不完全でした。確かに、最初の34人のうち自転車を使っていないという情報だけでは、彼らがバスを使っているかどうかを確定することはできません。そのため、正確な答えを得るためには追加の情報が必要です。
もし最初の34人のうち何人かが実際にはバスを利用している場合、それを考慮する必要があります。与えられた情報だけからは、バスと自転車の両方を使う学生の正確な数を特定することはできません。必要な情報が揃わない限り、正確な答えを提供することはできません。
151デフォルトの名無しさん
2023/11/06(月) 00:02:49.99ID:fuk9k4cf お題:単方向リストを逆順にせよ
152デフォルトの名無しさん
2023/11/06(月) 00:48:06.04ID:uPzAm2Gi153デフォルトの名無しさん
2023/11/11(土) 20:39:33.71ID:iU/7lT3J >>85
Ruby で作った。
FileUtils::DryRun を使っているので、実際には変更されません
require 'fileutils'
HEAD = 'abc' # 先頭文字
EXT = '.mp4' # 末尾の拡張子
HEAD_LEN = HEAD.length # 3文字
EXT_LEN = EXT.length # 4文字
# 絶対パスのディレクトリ名の後ろに、* を付けること!
# . で始まる、隠し directory, file を除く
glob_pattern = "C:/Users/Owner/Documents/test/*#{ EXT }"
target_dir = File.dirname( glob_pattern ) # ディレクトリパスだけを取り出す
# 元のファイル名の配列
fname_src_ary = Dir.glob( glob_pattern )
.select { |full_path| File.file?( full_path ) } # ファイルのみ
.select do |full_path|
file_name = File.basename( full_path )
# 先頭文字が abc かつ、末尾が .mp4 だけに絞り込む
file_name.start_with?( HEAD ) && file_name.end_with?( EXT )
end
.map { |full_path| File.basename( full_path ) }
次へ続く
Ruby で作った。
FileUtils::DryRun を使っているので、実際には変更されません
require 'fileutils'
HEAD = 'abc' # 先頭文字
EXT = '.mp4' # 末尾の拡張子
HEAD_LEN = HEAD.length # 3文字
EXT_LEN = EXT.length # 4文字
# 絶対パスのディレクトリ名の後ろに、* を付けること!
# . で始まる、隠し directory, file を除く
glob_pattern = "C:/Users/Owner/Documents/test/*#{ EXT }"
target_dir = File.dirname( glob_pattern ) # ディレクトリパスだけを取り出す
# 元のファイル名の配列
fname_src_ary = Dir.glob( glob_pattern )
.select { |full_path| File.file?( full_path ) } # ファイルのみ
.select do |full_path|
file_name = File.basename( full_path )
# 先頭文字が abc かつ、末尾が .mp4 だけに絞り込む
file_name.start_with?( HEAD ) && file_name.end_with?( EXT )
end
.map { |full_path| File.basename( full_path ) }
次へ続く
154153
2023/11/11(土) 20:41:20.19ID:iU/7lT3J # 変更後のファイル名の配列
fname_dest_ary = fname_src_ary.map do |file_name|
str = String.new( file_name )
# 先頭文字の abc と、末尾の .mp4 を取り除いて、数字だけにする
str.slice!(-EXT_LEN, EXT_LEN)
str.slice!(0, HEAD_LEN)
# 10進数の数値型に変換してから、3桁0埋め文字にする
HEAD + "%03d" % Integer( str, 10 ) + EXT
end
require 'set'
# 変更後のファイル名が既に存在しているか、チェックする。
# abc100.mp4 など、3桁以上の数値もエラー!
fname_src_set = Set.new( fname_src_ary ) # 集合
fname_dest_ary.each { |file_name|
raise "ファイル名: #{ file_name } が重複しています" if
fname_src_set.include?( file_name )
}
# ファイル名を変更する
fname_src_ary.zip( fname_dest_ary ) do |src_filename, dest_filename|
src_path = target_dir + "/" + src_filename
dest_path = target_dir + "/" + dest_filename
FileUtils::DryRun.move( src_path, dest_path )
end
出力
mv C:/Users/Owner/Documents/test/abc0.mp4
C:/Users/Owner/Documents/test/abc000.mp4
mv C:/Users/Owner/Documents/test/abc99.mp4
C:/Users/Owner/Documents/test/abc099.mp4
fname_dest_ary = fname_src_ary.map do |file_name|
str = String.new( file_name )
# 先頭文字の abc と、末尾の .mp4 を取り除いて、数字だけにする
str.slice!(-EXT_LEN, EXT_LEN)
str.slice!(0, HEAD_LEN)
# 10進数の数値型に変換してから、3桁0埋め文字にする
HEAD + "%03d" % Integer( str, 10 ) + EXT
end
require 'set'
# 変更後のファイル名が既に存在しているか、チェックする。
# abc100.mp4 など、3桁以上の数値もエラー!
fname_src_set = Set.new( fname_src_ary ) # 集合
fname_dest_ary.each { |file_name|
raise "ファイル名: #{ file_name } が重複しています" if
fname_src_set.include?( file_name )
}
# ファイル名を変更する
fname_src_ary.zip( fname_dest_ary ) do |src_filename, dest_filename|
src_path = target_dir + "/" + src_filename
dest_path = target_dir + "/" + dest_filename
FileUtils::DryRun.move( src_path, dest_path )
end
出力
mv C:/Users/Owner/Documents/test/abc0.mp4
C:/Users/Owner/Documents/test/abc000.mp4
mv C:/Users/Owner/Documents/test/abc99.mp4
C:/Users/Owner/Documents/test/abc099.mp4
15517
2023/11/21(火) 04:31:35.72ID:aOoah041156デフォルトの名無しさん
2023/11/25(土) 20:07:06.40ID:zpqT0hBE お題:ランダムに1から9999までの整数を得た時、何回で全種類出揃うか確認せよ
擬似乱数列生成法については指定しないものとする
ruby
https://ideone.com/rucuHk
require 'set'
r = 1..9999
c = r.to_a.fill(0)
s = r.to_set
while !s.empty?
n = rand(r)
c[n - r.first] += 1
s.delete n
end
p c.sum
↓
84736
擬似乱数列生成法については指定しないものとする
ruby
https://ideone.com/rucuHk
require 'set'
r = 1..9999
c = r.to_a.fill(0)
s = r.to_set
while !s.empty?
n = rand(r)
c[n - r.first] += 1
s.delete n
end
p c.sum
↓
84736
157デフォルトの名無しさん
2023/11/25(土) 22:17:37.68ID:Al0Rw+0l158デフォルトの名無しさん
2023/11/26(日) 10:44:04.74ID:dd78ITN+ プログラミングの依頼はここでいいでしょうか。
ココナラで依頼したのですが見送りになってしまいました。
お金は出すので製品版を作って欲しいです。
できないなら何が定義できていないのか教えて下さい。
AIによる詩作成
まずAIが詩を作成するための学習ツールを作ります
AIがリンゴの形相を分解するには辞書が必要となる
リンゴを検索し辞書を比較し関連性の高いワード
リンゴ⊇(赤い、丸い、果物…)を拾うのだ
これが学習ツールであり
一致したワードからさらに形相に分解する
リンゴ⊇(赤い、丸い、果物、酸っぱい…)
その中の果物を形相分解するには
果物⊇(リンゴ、サクランボ、なし…)
その中のなしを様相分解すると
なし⊇(果物、丸い、黄緑…)
ここから詩を作るには『黄緑のリンゴ』などになる
形相分解すると客観的な『深さ』(今回は三段階)を持った詩になる
ココナラで依頼したのですが見送りになってしまいました。
お金は出すので製品版を作って欲しいです。
できないなら何が定義できていないのか教えて下さい。
AIによる詩作成
まずAIが詩を作成するための学習ツールを作ります
AIがリンゴの形相を分解するには辞書が必要となる
リンゴを検索し辞書を比較し関連性の高いワード
リンゴ⊇(赤い、丸い、果物…)を拾うのだ
これが学習ツールであり
一致したワードからさらに形相に分解する
リンゴ⊇(赤い、丸い、果物、酸っぱい…)
その中の果物を形相分解するには
果物⊇(リンゴ、サクランボ、なし…)
その中のなしを様相分解すると
なし⊇(果物、丸い、黄緑…)
ここから詩を作るには『黄緑のリンゴ』などになる
形相分解すると客観的な『深さ』(今回は三段階)を持った詩になる
159デフォルトの名無しさん
2023/11/26(日) 10:50:43.54ID:d/KzVdDP160デフォルトの名無しさん
2023/11/26(日) 11:41:26.07ID:1iIVw+fD161158
2023/11/26(日) 12:29:54.58ID:dd78ITN+ 製品版なら10万円出します
AIでなくても詩作成ツールでいいです
AIでなくても詩作成ツールでいいです
162デフォルトの名無しさん
2023/11/26(日) 13:43:11.68ID:4uIV+oN2163デフォルトの名無しさん
2023/11/26(日) 21:12:35.28ID:SfQeb61a16417
2023/11/27(月) 10:19:46.26ID:VB+FhCy9 >>158
ここは誰かがお題を出して答えたい人が答えるスレなので、どんなお題を書いても構わないが、誰も答えないことはよくある。
また、バグがあっても気づかずにそのままになる事もある。多分大半のプログラムは作った本人以外は検証しないので。
ごく稀に他人がバグを発見することはあるが、発見されてもわざわざ指摘するとは限らないし修正もされないかも知れない。
ここは誰かがお題を出して答えたい人が答えるスレなので、どんなお題を書いても構わないが、誰も答えないことはよくある。
また、バグがあっても気づかずにそのままになる事もある。多分大半のプログラムは作った本人以外は検証しないので。
ごく稀に他人がバグを発見することはあるが、発見されてもわざわざ指摘するとは限らないし修正もされないかも知れない。
16517
2023/11/27(月) 10:35:37.58ID:VB+FhCy9166デフォルトの名無しさん
2023/11/27(月) 12:57:15.00ID:lzpjbGZv16717
2023/11/27(月) 13:09:30.74ID:VB+FhCy9 >>156
また Kotlin
https://paiza.io/projects/yYQ9bdMb0_d91607skNw4Q
今度は add ではなく remove でやるようにした。
これでその Ruby の例に近くはなるがカウントする方法は前と同じで個別にはやってない。
また Kotlin
https://paiza.io/projects/yYQ9bdMb0_d91607skNw4Q
今度は add ではなく remove でやるようにした。
これでその Ruby の例に近くはなるがカウントする方法は前と同じで個別にはやってない。
168デフォルトの名無しさん
2023/11/27(月) 18:30:50.07ID:O6HTjvgJ169156
2023/11/27(月) 20:35:49.92ID:VuTnBSK2 >>156 c
https://ideone.com/K1fD78
・lispのひとの(>>162)をパク…参考にしました
・乱数生成部分は https://c-faq.com/lib/randrange.html からコピペしました
int main() {
int a[9999] = {0}, size = sizeof a / sizeof *a, sum, min, max, r, i, j, k;
srand(time(0));
#define randi(size) ((int)((double)rand() / ((double)RAND_MAX + 1) * (size)))
for (r = size; 0 < r; ) if (!a[randi(size)]++) r--;
for (sum = min = max = a[0], i = 1; i < size; i++) {
sum += a[i];
min = min < a[i] ? min : a[i];
max = a[i] < max ? max : a[i];
}
printf("%d\n%f\n[%d, %d]\n", sum, (double)sum / size, min, max);
for (i = min; i <= max; i++) {
for (k = j = 0; j < size; j++) if (i == a[j]) k++;
printf("%d\t%d\n", i, k);
}
return 0;
}
https://ideone.com/K1fD78
・lispのひとの(>>162)をパク…参考にしました
・乱数生成部分は https://c-faq.com/lib/randrange.html からコピペしました
int main() {
int a[9999] = {0}, size = sizeof a / sizeof *a, sum, min, max, r, i, j, k;
srand(time(0));
#define randi(size) ((int)((double)rand() / ((double)RAND_MAX + 1) * (size)))
for (r = size; 0 < r; ) if (!a[randi(size)]++) r--;
for (sum = min = max = a[0], i = 1; i < size; i++) {
sum += a[i];
min = min < a[i] ? min : a[i];
max = a[i] < max ? max : a[i];
}
printf("%d\n%f\n[%d, %d]\n", sum, (double)sum / size, min, max);
for (i = min; i <= max; i++) {
for (k = j = 0; j < size; j++) if (i == a[j]) k++;
printf("%d\t%d\n", i, k);
}
return 0;
}
17017
2023/11/28(火) 15:35:44.30ID:cIauX08C >>156
今度はC言語
https://paiza.io/projects/c6ALnYb4rksMFGZT03mcCw
1~9999ではなく実際には0~9998でやっているが、表示する必要もないし一々1足したり後で引いたりも馬鹿らしいのでそのままにした。
今度はC言語
https://paiza.io/projects/c6ALnYb4rksMFGZT03mcCw
1~9999ではなく実際には0~9998でやっているが、表示する必要もないし一々1足したり後で引いたりも馬鹿らしいのでそのままにした。
171デフォルトの名無しさん
2023/11/30(木) 06:46:26.20ID:/rzYr39l お題:英字の羅列された文字列が与えられる。この文字列を分析して数字列を出力せよ。数字の表記ルールは、その文字の両隣の文字がASCIIコードにおける奇数だったら1、そうでなければ0.
172デフォルトの名無しさん
2023/11/30(木) 09:19:30.52ID:AZ5oWFgm 前提としてエラー入力はなくて
出力は両隣がある時のみでいいのかな
use itertools::{Itertools, assert_equal};
fn convert(input: &[u8]) -> Vec<u8> {
input
.iter()
.tuple_windows()
.map(|(prev, _curr, next)| (prev & next & 1) + b'0')
.collect()
}
fn main() {
assert_equal(&convert(b"ABC"), b"1");
assert_equal(&convert(b"abcIJKpqrXYZ"), b"1001010000");
}
出力は両隣がある時のみでいいのかな
use itertools::{Itertools, assert_equal};
fn convert(input: &[u8]) -> Vec<u8> {
input
.iter()
.tuple_windows()
.map(|(prev, _curr, next)| (prev & next & 1) + b'0')
.collect()
}
fn main() {
assert_equal(&convert(b"ABC"), b"1");
assert_equal(&convert(b"abcIJKpqrXYZ"), b"1001010000");
}
173デフォルトの名無しさん
2023/11/30(木) 20:13:06.94ID:tzHzM+FM >>171 octave
https://ideone.com/mx954D
function a = f(s)
o = rem([0 uint8(s) 0], 2) == 1;
a = o(1:end-2) & o(3:end);
end
>>171 c
https://ideone.com/VsnqKu
void f(const char *s, int *out, int *len) {
int i;
for (*len = strlen(s), i = 0; i < *len; i++)
out[i] = (i == 0 || i == *len - 1) ? 0 : s[i - 1] & s[i + 1] & 1;
}
https://ideone.com/mx954D
function a = f(s)
o = rem([0 uint8(s) 0], 2) == 1;
a = o(1:end-2) & o(3:end);
end
>>171 c
https://ideone.com/VsnqKu
void f(const char *s, int *out, int *len) {
int i;
for (*len = strlen(s), i = 0; i < *len; i++)
out[i] = (i == 0 || i == *len - 1) ? 0 : s[i - 1] & s[i + 1] & 1;
}
174デフォルトの名無しさん
2023/11/30(木) 20:40:22.09ID:2Igm/ys/17517
2023/12/02(土) 14:30:47.66ID:FLL1Kaqa >>171
Kotlin
https://paiza.io/projects/xZXVc46Ys3qUlGX4DAIxzw
両隣が存在する文字のみを対象に処理をするようにした。なので3文字未満はエラーになる。3文字の場合は2文字目だけを対象にして一つ結果を出す。
Kotlin
https://paiza.io/projects/xZXVc46Ys3qUlGX4DAIxzw
両隣が存在する文字のみを対象に処理をするようにした。なので3文字未満はエラーになる。3文字の場合は2文字目だけを対象にして一つ結果を出す。
176デフォルトの名無しさん
2023/12/04(月) 20:26:07.07ID:LtCaDuZa >>171 Ruby
def solution1( str )
a = 0
str.chars.inject(''){|s,c|
s << ( (5 & (a = 7 & a << 1 | c.ord & 1) == 5)? '1' : '0' )
}[2..-1] || ''
end
solution( '' ) #=> ""
solution( 'AB' ) #=> ""
def solution1( str )
a = 0
str.chars.inject(''){|s,c|
s << ( (5 & (a = 7 & a << 1 | c.ord & 1) == 5)? '1' : '0' )
}[2..-1] || ''
end
solution( '' ) #=> ""
solution( 'AB' ) #=> ""
177デフォルトの名無しさん
2023/12/08(金) 09:07:44.84ID:Fcz3Modv178デフォルトの名無しさん
2023/12/10(日) 17:41:17.00ID:Dj8Ho2Ik179デフォルトの名無しさん
2023/12/13(水) 09:27:48.18ID:NbIWTS6w お題
ビールの空きビンをN本集めると新品のビール1本と交換してもらえる
あなたが新品のビールをP本持っている
そのとき、あなたが飲めるビールはR本である
N, Pを引数としてRを返す関数を定義してください
ビールの空きビンをN本集めると新品のビール1本と交換してもらえる
あなたが新品のビールをP本持っている
そのとき、あなたが飲めるビールはR本である
N, Pを引数としてRを返す関数を定義してください
18017
2023/12/13(水) 15:17:15.28ID:WwinWAeQ18117
2023/12/13(水) 15:19:45.81ID:WwinWAeQ ごめん。これだと1回分しか計算してないね。ということで >>180 はボツ。
レスを投稿する
ニュース
- 中国国営メディア「沖縄は日本ではない」… ★6 [BFU★]
- 高市政権にパイプ役不在…日中高まる緊張 公明党の連立離脱影響、自民内にも懸念「自分でまいた種は自分で刈り取ってもらわないと」★2 [ぐれ★]
- 【速報】 日経平均の下落率3%超す、財政懸念で長期金利上昇 [お断り★]
- ナイツ塙が指摘のローソンコーヒーカップ、ロゴ「L」で誤解生みデザイン変更へ 在庫使い切る3か月後にリニューアル [muffin★]
- 政府、株式の配当など金融所得を高齢者の医療保険料や窓口負担に反映する方針を固めた [バイト歴50年★]
- 【速報】 高市政権、「日本版DOGE」を立ち上げ 米国で歳出削減をした「政府効率化省(DOGE)」になぞらえたもの [お断り★]
- 高市早苗「……なんて言ってみたw」中国「なんだ、言ってみただけかw」👈これで全部元通りになるという事実 [782460143]
- 【悲報】早速高市首相のせいで全国の民泊でキャンセルラッシュwwwwwwwwwwww 経営者も嘆き「こんな事は初めてだ…」😲 [871926377]
- 中国「高市が謝罪撤回しないとこれ全部なくなるけどどうする?」 [931948549]
- んなっしょい🍬禁止🈲のお🏡
- 映画「ゼルダの伝説」、リンクとゼルダ姫が白人になってしまう。日本のものは日本人だろうが!! [592058334]
- 高市早苗「株やってる奴ザマァwww格差是正のためにも、もっと暴落した方がいいよwww」(´・ω・`)確かに。 [252835186]
