ふらっと C#,C♯,C#(初心者用) Part149

■ このスレッドは過去ログ倉庫に格納されています
2020/12/16(水) 11:29:35.35ID:TSvQ057dM
!extend:checked:vvvvv:1000:512
次スレを立てる時は↑を2行冒頭に書くこと(1行分は消えて表示されない為)

「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。
他のスレッドでは書き込めないような低レベルな質問、質問者自身なんだか意味がよく分からない質問、
ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。
内容に応じて他スレ・他板へ行くことを勧められることがあります。ご了承下さい。
なお、テンプレが読めない回答者、議論をしたいだけの人は邪魔なので後述のC#相談室に移動して下さい。
C#に関係の無い話題や荒らしの相手や罵倒レスや酔っぱらいレスはやめてください
>>980を踏んだ人は新スレを建てて下さい。>>980が無理な場合、話し合って新スレを建てる人を決めて下さい。

■前スレ
ふらっと C#,C♯,C#(初心者用) Part148
https://mevius.5ch.net/test/read.cgi/tech/1590578921/
■関連スレ
C#, C♯, C#相談室 Part94
https://mevius.5ch.net/test/read.cgi/tech/1553075856/
■コードを貼る場合は↓を使いましょう。
http://ideone.com/
https://dotnetfiddle.net/

■情報源
https://docs.microsoft.com/ja-jp/dotnet/standard/class-libraries
https://docs.microsoft.com/ja-jp/dotnet/csharp/language-reference/
https://docs.microsoft.com/en-us/dotnet/standard/class-libraries
http://referencesource.microsoft.com/
・Insider.NET > .NET TIPS - @IT
https://www.atmarkit.co.jp/ait/subtop/features/dotnet/dotnettips_index.html
・DOBON.NET .NET Tips
https://dobon.net/vb/dotnet/index.html
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
2021/02/19(金) 19:42:33.49ID:Eig2tonS0
ドキュメント読むのもそうだけど実際 にmousePositionの値を見たら良いと思うよ
2021/02/22(月) 02:08:01.45ID:aMOGcJaK0
構造体とリストどっちがいいとかあるの?
2021/02/22(月) 07:33:16.03ID:DBdQ6Dl10
どちらもいい
2021/02/22(月) 08:40:26.66ID:q2LnICsL0
構造体リストにしよう
2021/02/22(月) 09:21:08.61ID:KlgM0RdP0
>>713
まったく用途が違うから、普通はその二つでどちらにするかを迷うことはない
2021/02/22(月) 11:28:40.84ID:J1FRHNv90
>>713
夕食は弁当と定食どっちがいいと思う?
718デフォルトの名無しさん (ワッチョイ f361-cyI8)
垢版 |
2021/02/22(月) 18:39:45.74ID:5BxgjfJ50
リストじゃなくレコードじゃね?と言ってみるテスト
2021/02/22(月) 19:19:17.10ID:DBdQ6Dl10
structとclassの使い分けだったら質問の意図も分かるけど
720デフォルトの名無しさん (ラクッペペ MM7f-0TpN)
垢版 |
2021/02/22(月) 19:22:09.14ID:rk3Z26pVM
カレーとコンビニ、どっちにする?
721デフォルトの名無しさん (ワッチョイ 035f-pQAD)
垢版 |
2021/02/22(月) 21:06:02.69ID:8s+nkcdt0
スクリプトから条件で画像を表示させたいんですが、張り替えは出来ても新しく出現させることってできない?
2021/02/22(月) 21:22:09.87ID:7Jd6R0uh0
質問下手すぎでしょ
2021/02/22(月) 21:26:08.64ID:6SeUKgvV0
日本語でよろ
2021/02/22(月) 21:42:20.42ID:0aX736QQ0
I want to display an image conditionally from a script,
but can I make it appear new even if I can replace it?
2021/02/22(月) 21:45:15.13ID:/lIHFE+b0
5W1Hでよろ
2021/02/22(月) 23:51:22.27ID:nluN8fGs0
C#でWin32のHeapAlloc(GetProcessHeap(), 0, 0x1000);みたいなことするとGCと競合してバグるったりするの?
727デフォルトの名無しさん (ワッチョイ 035f-pQAD)
垢版 |
2021/02/23(火) 00:10:32.83ID:qmo9+9Uk0
すいませんw
2Dunityでボタンを押したら画像を表示できるようなプログラムを作りたいのですが、
調べてみても元々ある画像をスクリプトによって別の物に変更するものはあれど
ボタンを押して0から画像を表示させることができるようなものを
見つけられなかったので、できないのかなと。。。どうなんでしょう?
2021/02/23(火) 00:26:01.44ID:DnkfMlNP0
できる
729デフォルトの名無しさん (ワッチョイ 035f-pQAD)
垢版 |
2021/02/23(火) 01:56:55.10ID:qmo9+9Uk0
>>728
詳細を教えていただきたいですw(__)
2021/02/23(火) 02:13:02.76ID:6EEdG0Ut0
>>726
アンマネージドだろうから特に影響なさそうだけどね
2021/02/23(火) 09:57:34.63ID:kvat21cB0
Windows下におけるmalloc = HeapAllocだけど
どこかしらでロードせざるを得ないネイティブdll内で当然の如くmallocは行われまくってる訳だからその程度でバグったら言語として成り立たない
2021/02/23(火) 10:05:27.49ID:IRMSQgrY0
バグったらHeapDestroyすれば良いじゃない。by マリー
2021/02/23(火) 10:05:48.25ID:OuCytsjB0
>>727
'c# image 生成' で調べれば?
2021/02/23(火) 10:07:40.79ID:8QyPv/It0
unityでの載せ方がわからないんじゃね?
2021/02/23(火) 10:10:41.92ID:8QyPv/It0
c# image create unity
でググった

こんなん?
https://teratail.com/questions/42899
736デフォルトの名無しさん (ワッチョイ 035f-pQAD)
垢版 |
2021/02/23(火) 12:52:43.06ID:qmo9+9Uk0
>>735
こちらを参考にSetaActiveを使えばできました!
ありがとうございます。
2021/02/23(火) 17:06:07.35ID:Ke2QO8XG0
質問よろしくお願いします。

uint 型の二つの値 x, y について、

x = 0b_0101, y = 0b_0110

のように最上位の 1 のビットの位置が同じなら true を返し、

x = 0b_0101, y = 0b_0011

のように最上位の 1 のビットの位置が違うなら false を返す関数を
作るというクイズをやっていて、

static bool BitsEquals(uint x, uint y) => (x ^ y) < (x & y);

という答えを考えました。
しかし、どうやらもっと演算の回数が少なくてすむ方法があるらしく、
それがどうしても分かりません。

どなたか良いアイディアをお持ちの方がいらっしゃれば教えていただけないでしょうか。
どうぞよろしくお願いいたします。
2021/02/23(火) 18:54:24.22ID:oVEFpcof0
>>737
あるらしいって、誰かが言ってたならその人に聞けばすむ話でないの?
クイズでも出されたの?
2021/02/23(火) 19:56:17.34ID:8AF7Ea+I0
クイズって書いてあるな・・

>>737
2つ目の例でも最上位ビットはどちらも0で同じように見えるが?
比較する2つの数値はビット長が一緒なのかとか、もうちょい仕様を詳しく
2021/02/23(火) 20:19:12.56ID:lNyBX+Rq0
>>739
最上位ビットではなくて1になってるビットの最上位だぞ
2021/02/23(火) 20:25:36.23ID:BNINfFnp0
>>727
ツー・デュニティって何のことかと思った
2021/02/23(火) 20:26:05.61ID:Ke2QO8XG0
レスありがとうございます!

>>738
> クイズでも出されたの?
おっしゃるとおりです。ネットで調べるのは OK なのですが、
外国語も含めて検索してみても私の力では解決できそうになかったので
こちらで質問させていただきました。


>>739
説明がうまくできなくて申し訳ありません。

x = 0b_0101, y = 0b_0110

の例だと、1 になっているビットで最上位のものが
両方とも下から数えて 3 番目なので true なのですが、

x = 0b_0101, y = 0b_0011

の例だと、x は先ほどと同じですが y のほうは 1 になっているビットで
最上位のものが下から数えて 2 番目なので、false になります。


>>740
補足どうもありがとうございます。
最上位ビット(MSB)というと普通は >>739 さんのおっしゃっているような
意味で捉えられそうなものなので、最初からもう少し丁寧に説明すべきでした。


どうぞよろしくお願いいたします。
2021/02/23(火) 20:26:52.22ID:iu17pC6m0
>>739
> 比較する2つの数値はビット長が一緒なのか
さすがにそれは仮定してもいいんじゃね?
2021/02/23(火) 20:47:25.97ID:8AF7Ea+I0
それなら
2*x<y
でいいんじゃないの?
trueなら一番左の1の位置は同じ
2021/02/23(火) 20:57:42.88ID:iu17pC6m0
>>744
x = 1, y = 1 がfalseになるんですけど…
2021/02/23(火) 21:04:05.18ID:8AF7Ea+I0
それは失礼w

難しいね
y:123456789abcdef
x:12 4   8
2021/02/23(火) 21:55:49.11ID:26JD/Fyv0
演算の回数っていうのがよくわからないが、
BitOperations.LeadingZeroCount(val)
の比較じゃダメなの?
2021/02/23(火) 22:04:06.39ID:6EEdG0Ut0
>>747
普通に考えたら命令ステップ数のことだろうな

今の時点でビット演算2つと比較が1つなので、boolを返す以上は比較は外せないから、これより少ない(軽い)となると、なかなか難しいね
2021/02/23(火) 22:07:00.98ID:iu17pC6m0
>>737みたいに4bit同士程度ならテーブル引くとかでもいいかも
2021/02/23(火) 22:14:05.32ID:6EEdG0Ut0
>>749
uint でって指定されてるわけだから、4ビットで書かれてるのはあくまで例でわかりやすくしてくれてるだけでしょ
2021/02/23(火) 22:33:00.48ID:W3jldd/z0
>>746
return x==y || (2x<y && y<=x);

って感じか?わかりづれぇw
2021/02/23(火) 22:53:10.92ID:W3jldd/z0
なんか違うな。
要は>>746に書いてある通り、xとyが1,2,4,8,16,32・・・みたいに
一番左の1が立ってる同じグループにいるかでしょ?
酔っぱらってて頭まわらんw
2021/02/24(水) 00:39:34.09ID:bQ0lAzRD0
(x^y)<(x<y?x:y)
こんなのはいいのかな?
細かくテストしてないからバグってたらごめん
演算1回比較2回だから演算回数は減ったとも言える
どっちが早いかは最適化とかCPUとか次第な気もするけど
2021/02/24(水) 00:52:24.83ID:jmWlpF6B0
皆様レスどうもありがとうございます。

>>743
> > 比較する2つの数値はビット長が一緒なのか
> さすがにそれは仮定してもいいんじゃね?
補足ありがとうございます。
ひとまず、符号なし32ビット長整数ということにさせてください。

>>744
> 2*x<y
> でいいんじゃないの?
実際、(x ^ y) < (x & y) より簡単なものを探そうとすると
もうそのくらい簡単なものくらいしか候補に残らないですよね。
もしくは、何か発想の転換が必要なんでしょうか。。。

>>745
> x = 1, y = 1 がfalseになるんですけど…
このレスを読んで思ったのですが、
(x ^ y) < (x & y) という計算も x = 0, y = 0 のときは
false になるんですよね。
最上位の 1 の位置を比較するのが目的なので
x や y が 0 のときは気にしなくてもいいのかもしれませんが、
やはりちょっと不自然なので (x ^ y) <= (x & y) のように
等号付き不等号にしたほうがベターでしょうか。
(ただ、
 Math.Floor(Math.Log(2, x)) == Math.Floor(Math.Log(2, y))
 という式は x = 0, y = 0 のとき false になるようです)
2021/02/24(水) 00:54:09.63ID:jmWlpF6B0
>>747
> BitOperations.LeadingZeroCount(val)
> の比較じゃダメなの?
なるほど!こんな関数があるんですね。
BitOperations クラスのドキュメントを読んでみると
「これらのメソッドでは、基になるプラットフォームで使用可能な場合、
 ハードウェアの組み込みを使用します。」
と書いてあるので、良い答えになりそうです。
アドバイスどうもありがとうございます。

>>748
> 今の時点でビット演算2つと比較が1つなので、boolを返す以上は比較は外せないから、
> これより少ない(軽い)となると、なかなか難しいね
難しいですよね?!
普通の演算子だけを使うなら考えられるパターンは限られているので、
やはり拡張命令を使うとかテーブルを用意するとか、
なにか根本的な発想の転換が必要なのかもしれません。

>>749
> 4bit同士程度ならテーブル引くとかでもいいかも
>>750
> uint でって指定されてるわけだから、4ビットで書かれてるのはあくまで例でわかりやすくしてくれてるだけでしょ
>>750 さんが言ってくださっているとおりなのですが、
逆にわかりにくくなってしまったかもしれません。失礼しました。
ただ、普通の演算子を組み合わせるだけの方法ではどうにも手詰まりな気がしてきたので、
テーブルというアイディア自体は検討する価値がありそうです。どうもありがとうございます。
2021/02/24(水) 00:54:22.31ID:bQ0lAzRD0
boolのために比較が必要という前提なら比較は6種
== != < <= > >=
2項演算子は加減乗除商、シフト、and or xorくらい?
演算→比較の順に評価することになるので1比較1演算のパターンはそんなに多くない
全部試したわけじゃないけど無理じゃない?
2021/02/24(水) 00:58:28.94ID:jmWlpF6B0
>>751
> return x==y || (2x<y && y<=x);

>>753
> (x^y)<(x<y?x:y)

色々と考えてくださってどうもありがとうございます。

>>745 さんの猿まねですが、
>>751 さんが書いてくださった式は x = 2, y = 3 のときに false となり、
>>753 さんが書いてくださった式は x = 1, y = 3 のときに true になってしまいますねw

ただ、こうやって苦労を分かち合ってくださるのはとても心が救われます。
本当にどうもありがとうございます。
2021/02/24(水) 01:04:08.81ID:jmWlpF6B0
>>756
> boolのために比較が必要という前提なら比較は6種
> == != < <= > >=
> 2項演算子は加減乗除商、シフト、and or xorくらい?
> 演算→比較の順に評価することになるので1比較1演算のパターンはそんなに多くない
> 全部試したわけじゃないけど無理じゃない?

レスどうもありがとうございます。確かにおっしゃるとおりのような気がしてきているところです。
とりあえずこの前提の場合だけでも (x ^ y) < (x & y) が最善なのかどうか結論を出したいので、
全パターンを網羅して確認するプログラムの作成に挑戦してみたいと思います。(できるかな…(汗)
2021/02/24(水) 01:07:30.18ID:OSOzzlvda
>>737
0を排除できるなら、たぶん
x/y + y/x == 1
になるような気がする。
全然演算の量が減ってる気はしないけどw
2021/02/24(水) 01:08:45.27ID:OSOzzlvda
あ、これじゃX == yの時2になるからダメかw
2021/02/24(水) 01:11:25.71ID:jmWlpF6B0
>>756
全部網羅と簡単に書きましたが、
例えば仮に (20210224 * x ^ y) < 12345 が正解だとして、
しらみつぶしに探してこれを見つけるのは至難のワザですよね。
う〜ん、難しい。。。。
2021/02/24(水) 01:15:30.76ID:bQ0lAzRD0
>>757
もともと提示された式と比較すると同じ結果になるんだけど?
https://sharplab.io/#v2:C4LgTgrgdgNAJiA1AHwAICYAMBYAUBgRjzwDMB7MACgDcBDMAAgEsGBeBzAbmYYB53MAIwD6mAuO5NEiAJR4GChuSp1GAKzYduG/hxFiJDNdLm5F55iQaUAxgAsApjYDWmSkxhqZDAITt7Ts4E7p4yphYRDKgEAJyUACQARFBkwAwOAI4QtAA2IADeTAC+MAz5akWJMpzykebE+AQAbAyCZGQ5DAEubkxQaQAepX1pAJ7erAB81gMMAHoM43wzDABki9V40S1tHV2OLsEjDEPM/Rts05SzC0u8K/ejDAD8JwwgGzW4QA
2021/02/24(水) 01:20:20.17ID:jmWlpF6B0
>>759
> 0を排除できるなら、たぶん
> x/y + y/x == 1
> になるような気がする。

!!!
確かにこれ自体は違うかもしれませんし、計算量も減っているとは思いませんが、
発想の新鮮さは私にとって正直感動を覚えるほどでした。

私は問題文にビットという言葉が出ている時点で数値をビットの並びとしか捉えていなくて、
このレスを読むまで数値を数値として扱うという発想がまったくもって出てきていませんでした。

貴重なアイディアどうもありがとうございます。
2021/02/24(水) 01:22:06.74ID:xxKZPG3j0
>>761
演算子のコストは概ね下記のようになってるので、今のところ 737 の式が一番高速だな

代入、加算、減産、ビット演算 < 乗算 < 分岐 < 除算
765デフォルトの名無しさん (ブーイモ MMe7-Dcdc)
垢版 |
2021/02/24(水) 09:43:01.27ID:BstpO7i2M
NOT(x ^ y) &x &y
766デフォルトの名無しさん (ブーイモ MMe7-Dcdc)
垢版 |
2021/02/24(水) 09:47:44.01ID:BstpO7i2M
ビット反転は ~か
~(x ^ y) &x &y
2021/02/24(水) 10:19:17.50ID:TFahGwNV0
>>764
代入とかってアセンブラ上はmov1命令だけど実際内部ではxorクリアしてから|=してるだろうからビット演算と同列で並べちゃダメだろ
2021/02/24(水) 16:56:51.55ID:seoVzzn4a
仕事でJavaをやるとC#って快適だったんだなと実感する
Javaは開発環境の準備からなにから全てが辛い
2021/02/24(水) 18:14:53.26ID:edAGB3A30
というかjavaはプロジェクト自体が辛いことが多い
客先しかり他のエンジニアしかり
2021/02/24(水) 19:34:45.11ID:lrBUkyKZ0
単価安いし
2021/02/24(水) 21:35:26.39ID:KW+DlOc20
この流れに乗って質問するが、
おまいらはこれからC#とどう付き合っていくつもり?

C#をとことん極めて、新しいバージョンが出れば追い、このまま一生C#と骨をうずめるつもり?
それとも、C#は腰かけ程度と考えて適当に付き合い、もっと良い言語が出たら乗り換えるつもり?

質問を言い換えると、C#ってあと何年ぐらい人気言語の一つとして君臨していられると思う?

Javaがオラ狂うによってほぼほぼ有償化された今、
Javaが失速するのは間違いない
あのJavaが、だ

C#だってそんな日が来るんじゃないの?
来るとしたらどんなオチ?
それとも、親方マイクロソフトだから大丈夫?
772デフォルトの名無しさん (ブーイモ MMff-cyI8)
垢版 |
2021/02/24(水) 21:58:03.72ID:NDokwu7RM
友達以上愛人未満
2021/02/24(水) 22:08:07.59ID:F5qWAR4O0
別れたいけど、できちゃったので。
2021/02/24(水) 22:13:18.72ID:KW+DlOc20
>>772
無駄に幅広いな
2021/02/24(水) 22:17:05.12ID:KW+DlOc20
>>773
惰性で一緒になっても幸せになれんぞ
2021/02/24(水) 22:58:18.77ID:UF3ntcxf0
都合のいい友人
2021/02/24(水) 23:51:18.96ID:K88oDGnD0
テキストエディタとWindowsにデフォで入ってるcsc.exeでできる範囲で付き合っていくわ
GUIもWinFormsで十分
2021/02/25(木) 02:48:18.40ID:A477YYD30
15年前にいつかは消えると思ってたjsが気づけば最前線にいるんだ
先のことなんてわからんからその時の仕事に合わせて適当に付き合ってくだけよ
2021/02/25(木) 07:47:32.19ID:ljkJPR6C0
>>771
プロダクトに最適な言語を使うだけよ
どんな業界でも、年々道具は新しくなるだろ?
プログラミング言語もそれと同じ

中には代々受け継がれた道具しか使わないような職もあるが、それは一般的じゃない
2021/02/25(木) 09:38:17.80ID:BkBvtXEC0
この問題をc#で解こうと思い
https://atcoder.jp/contests/abc106/tasks/abc106_c
このように書いてみたのですが入力例 3が通りません
https://pastebin.pl/view/raw/cbf5d3cd

大変お手数ですがご指摘いただけるとありがたいです。
2021/02/25(木) 09:38:17.80ID:BkBvtXEC0
この問題をc#で解こうと思い
https://atcoder.jp/contests/abc106/tasks/abc106_c
このように書いてみたのですが入力例 3が通りません
https://pastebin.pl/view/raw/cbf5d3cd

大変お手数ですがご指摘いただけるとありがたいです。
2021/02/25(木) 11:44:12.11ID:zlGf24tO0
文字数計算のためのCalcDだと思うけど正常に計算できてなさそう
何日後も引数にして、2日後とか3日後で想定した戻り値になってることをテストしてみた方がいいよ
メソッドを分離することとメソッド毎にテストすることの大切さがわかる典型例だな
2021/02/25(木) 11:45:33.33ID:Kp+Bp4Dl0
>>781
pow(2, 5000兆)の時点で制約のK番目のKはpow(10, 18)以下を楽々超えるな
要するに最初のシード値を律儀に全部計算するまでもない
2021/02/25(木) 13:46:32.79ID:5iIS9NC9a
>>781
https://ideone.com/mLheCz
書きなぐりで何の検証もしてないから違うかも
問題を間違って理解してなければ全然難しいと思わなかったよ
2021/02/25(木) 13:54:37.81ID:HJ9YlmBf0
ソースコード見えないけど5000兆なんて時間計算量も空間計算量も現実的な値にならんから愚直に文字列計算する方法じゃ無理
最初が1以外なら答えは常に最初の桁の数字になって、そうじゃないときは1じゃなくなるまでの桁数よりKが小さいか同じなら1でKがそれより大きいなら1以外で最初に現れた数字が答え
786デフォルトの名無しさん (アウアウエー Sadf-pQAD)
垢版 |
2021/02/25(木) 13:58:47.94ID:5iIS9NC9a
パラメータの与え方が間違ってるなw
Console.WriteLine(mi.GetDigit((long)5e15, 9460730472580800));
2021/02/25(木) 14:32:33.73ID:zlGf24tO0
>>785
競技プログラミングでそんなひねくれた回答に何の意味があるの?
知らんけどとんち問題じゃないんだから実行時間2sメモリ976MBという制限で作れてるのか、出来てなかったら減点とかそういう感じでしょ
2021/02/25(木) 14:45:28.54ID:lgRHqN3Y0
解法を自然言語で書き下しただけなのに対してひねくれた回答ってどういうことだ
2021/02/25(木) 14:48:23.79ID:Odue14P30
競技プログラミングって
そういうやつなのか
2021/02/25(木) 14:56:27.68ID:lnJvnVl60
処理時間短縮のために工夫したアルゴリズムを文章で書いただけじゃん
捻くれたと捉える方がどうかしてる
2021/02/25(木) 15:06:03.06ID:cAbWQIRq0
>>787
競技プログラミングってある種のとんち問題だぞ
2021/02/25(木) 15:24:52.06ID:A477YYD30
競技プログラミングって問題文を読み解きいかに計算量を少なくする解法を見つけるかに特化した問題が多い
プログラミング知識より数学的知識やひらめきのほうが重要なこと多い
大抵の問題はメモリも処理速度も大して必要とせずに数秒以内で解けるような解法が存在してる
2021/02/25(木) 16:05:21.75ID:WNWuE6ey0
若いなあ
2021/02/25(木) 17:09:26.66ID:zlGf24tO0
プログラミング技術を競うものかと思ってたけど関係ないのも多いんだな
まあ今回の問題がそうだったって感じなのかもしれないけど数値設定がやってくれと言わんばかりにおかしいもんな
2021/02/25(木) 17:23:13.48ID:Kp+Bp4Dl0
ちゃんとインプットのチェックロジックを作れば初っ端に気付ける事なんだよ
pow(10, 18)はqword範囲内なのに対して1以外の文字長は最小の2だとしても余裕で範囲外だからな
2021/02/25(木) 17:30:29.82ID:BkBvtXEC0
>>784
ありがとうございます、参考になります
でもこのコードだと入力が
1
1

1121
2
の時2を出力してしまうので不正解になります、正解は両方とも1です。

>>785
たぶん785さんが正解だと思います。私は問題文を愚直にシミュレートしたコードを
書いてしまいがちなせいでよく制限時間をオーバーします

>>794
プログラミングの技術力向上のためと思い、やり始めたのですが
これはむしろ算数、数学力の競い合いだなと感じています
2021/02/25(木) 17:46:07.28ID:zlGf24tO0
>>795
一応数学的な話で 2^5000兆>10^18 の比較になる
こんなんチェックしなくても一目で問題ないことがわかる
2021/02/25(木) 18:28:40.93ID:Kp+Bp4Dl0
>>797
だからこそ標準入力から渡された桁数指定であるKが10^18以下であるかのチェック構文をちゃんと書けばその時点で気付けるって話
781のコードはそれが書かれてないから「Kは10^18以下」っていう制約自体を見逃してるんだろうな
799デフォルトの名無しさん (エムゾネ FF1f-pQAD)
垢版 |
2021/02/25(木) 18:53:48.04ID:rcOltu0HF
>>789
競プロっていわゆる普通のプログラミングとか数学とかとは別の世界だと思う
2021/02/25(木) 19:05:19.81ID:mcXAAtHya
>>796
どっちもケースもちゃんと1を出力するよ
可読性重視で冗長に書いたけど合ってるんじゃないかな?
知らんけど。

非OOPで短く書き直すとこう
https://ideone.com/f58hKP
801デフォルトの名無しさん (ワッチョイ ffe6-0TpN)
垢版 |
2021/02/25(木) 19:49:45.24ID:BqNXMQx70
新聞紙を100回折りたたむと厚みが宇宙と同じぐらいになるって奴ね
2021/02/25(木) 20:05:35.05ID:84+MX2N/0
>>785
おまえアタマいいな。
自分は3分考えて分からなかった。

792 の言うようにひらめきの世界だわ。
3分の間にアタマに引っかかっていたところに手が届いてれば正解に行き着いてたかも、とか 785 を読んで思いましたまる
2021/02/25(木) 21:52:33.13ID:cAbWQIRq0
Math.Pow(2, 5e15)はInfinityになって計算できてないの気持ち悪いな
Kが10 ^ 19まで広がると日付次第ではバグる
2021/02/25(木) 22:02:36.79ID:OCB2UzGya
あーなるほどそういう問題なのね
まったく気づかなかったw
冷静に数字見りゃそりゃそうだよね

こんなスレでそんなひねくれた問題が出てくると夢にも思ってないし
2021/02/26(金) 15:03:06.02ID:JTr0u2pq0
Benchmark.netにてAllocatedのサイズは見れるんですが、何のオブジェクトかの内訳詳細は見れないんでしょうか?
2021/03/03(水) 21:31:29.25ID:GRpGW1SM0
closedxml初めて触ったけどすごいね
エクセル操作プログラミングで毎回うんざりしてたのがウソみたいに快適
gasのスプレッドシート制御と同じような感覚で書けるしusingも使える
2021/03/04(木) 12:19:55.97ID:RGW+RZMQ0
以下のような2つの構造体リストを重複除外して結合したいのですがどうすれば良いでしょうか。
Unionをすると重複したまま結合されてしまうので困っています。

public struct Menber
{
/// <summary>
/// 部署
/// </summary>
public int Id;
/// <summary>
/// 名前
/// </summary>
public string Name;
}

List<Menber> list1
list[0].id = 1
list[0].Name = 田中

List<Menber> list2
list[0].id = 1
list[0].Name = 鈴木
list[1].id = 1
list[1].Name = 田中
list[2].id = 2
list[2].Name = 吉田
2021/03/04(木) 12:41:03.43ID:7LtyX+sHa
>>807
Unionのドキュメントぐらい読もうよ。
IEquatable<T>を実装しろって書いてあるでしょ

構造体の場合はEqualsは全フィールドとプロパティが等価なら
trueを返すように自動実装されるはずだと思ったけど、UnionはEqualsの方は
使ってくれないんでしょうたぶん。

知らんけど。
2021/03/04(木) 14:28:31.44ID:JHtiE7pvM
デフォルト実装で特に問題無いけどな
https://dotnetfiddle.net/UIfYBX
2021/03/04(木) 18:58:02.93ID:wo0nxJ5c0
>>809
だよな。騙されてるんだよ、相手するだけ無駄。
2021/03/06(土) 02:12:29.40ID:t6oqPQ7k0
なんか久しぶりにc#に戻ってきたら
public int GetIntVal
{
get => _intVal;
}

とかプロパティの取得に=>とか使ってて意味がわからなかった
この手の構文って今から憶えるとしたらどこのサイトを見たらいいでしょう
2021/03/06(土) 02:24:50.57ID:+wsnPdhjM
MSのリファレンス
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況